做实验需要在.img格式镜像中导入文件,并挂载到系统的/mnt目录,然而遇到了很多错误导致挂载失败。这里提供一种简单可用的写入.img镜像并挂载的解决方案。
loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用。在使用之前,一个 loop 设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统(比如img镜像),那么这个文件就可以像一个磁盘设备一样被 mount 起来。之所以叫loop设备(回环),其实是从文件系统这一层来考虑的,因为这种被 mount 起来的镜像文件它本身也包含有文件系统,通过loop设备把它mount起来,它就像是文件系统之上再绕了一圈的文件系统,所以称为 loop。
我这里得到的结果是/dev/loop9
终端下会给出分区的信息,可以看到使用的分区,然后即可挂载
成功挂载如下图所示,就可在/mnt目录 *** 作镜像里的文件了:
参考链接:
linux挂载img镜像文件
mount挂载img文件提示:错误的文件类型
1、将下载完的光盘映像文件iso下载到C盘之外的分区,比如下载到F盘,右键使用WinRAR等工具解压到当前文件夹或指定文件夹,不能解压到C盘和桌面,否则无法安装。
2、d出对话框,执行光盘映像文件解压过程,需要等待几分钟。
3、解压之后,我们打开安装目录,找到【安装系统.exe】程序。
4、双击【安装系统.exe】打开这个安装界面,选择【还原系统】,映像文件路径选择win7.gho文件,勾选要安装的位置C盘,如果不是显示C盘,要根据卷标或容量来判断C盘,再勾选【执行完成后重启】,最后点击【执行】。
5、d出提示框,提示映像文件即将还原到分区C,点击确定继续。
6、这时候电脑会重启,进入到这个界面,默认选择SysCeo Recovery项启动。
7、启动进入这个界面,执行C盘格式化以及系统映像安装到C盘的部署过程,需要等待3-5分钟。
8、上述执行完成后会自动重启,进入这个界面,执行系统驱动安装和配置过程。
9、整个重装过程5-10分钟,最后启动进入全新系统桌面,光盘映像文件安装结束。
1.用sudo loseup -f查看一个空闲的loop设备,应该会得到一个/dev/block/loopxx(xx代表数字)的输出,不管路径是什么只要最后loopxx字符串就应该没问题;记下这串字符。2.sudo losetup /dev/block/loopxx(也就是上一步的输出) *要挂载的镜像路径*/*镜像名*.img
3.sudo mount /dev/block/loopxx(第一步的输出) /*要挂载到的路径*
4.卸载再挂载后文件仍可读,
因为我不再需要这个功能,所以懒得去做更严谨的验证,不过应该是成功了。
局限性:
1.尽管挂载成功但一般情况下也只有特定的进程可以访问(即使你在其它终端用sudo也不行,在有权限的情况下其它应用尽管可以写入该目录但是但并不代表它同时写入了虚拟磁盘,链接到其它位置也是没用的,因为在其它进程眼里根本没有镜像被挂载到这,不过可以试试用adb shell执行以上指令能否解决。)
2.难卸载;一个终端内除非有两个进程能获得root权限且能任意切换否则就会报错umount: /*路径*: Device or resource busy(这个其实影响不大)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)