问题
:我手里有一个压缩起来的SquashFS镜像文件,由于我想查看此镜像文件中的内容,常做的就是将其挂载(mount)到一个空白的文件夹。然而当我mount时,报错mount: test.mnt: failed to setup loop device for /home/jlm/Applications/test.squashfs.
。
如截图所示:
在网上经过几番查找,将问题解决,记录如下:
原因及解决思路
:了解到,通常遇到这种情况,是因为mount
命令没有正确地将这个SquashFS镜像文件关联到一个循环设备(loop device)。因此,可以考虑使用$ losetup -f
找到了一个空闲的循环设备(如/dev/loop20
),并将文件关联到这个循环设备,然后再用mount
命令将这个循环设备挂载到目标文件夹。挂载的大致过程为:镜像文件 -> 空闲循环设备 -> 目标空闲文件夹
详细步骤
:
1、查询当前空闲的循环设备
命令:$ losetup -f
此处增加一个查看当前所有循环设备的命令$ losetup -a
,由图中可知当前空闲的循环设备是/dev/loop6
。
2、关联SquashFS镜像文件到循环设备
命令:$ sudo losetup /dev/loop6 test.squashfs
挂载完成后,可通过命令$ losetup -a
查看当前循环设备的关联情况,可见当前空闲设备/dev/loop6
已与目标镜像文件相关联。
3、挂载循环设备到指定目标文件
命令:$ sudo mount /dev/loop6 test.mnt/
挂载完成后,可通过命令$ mount | grep test.mnt
和$ ls test.mnt/
查看这个文件是否挂载正确。
4、解挂载镜像文件
命令:$ sudo umount test.mnt
5、断开与循环设备的关联
命令:$ sudo losetup -d /dev/loop6
在解挂载镜像文件后,需断开循环设备的关联。