我一直在研究将文件作为文件系统,比如加密卷之类的东西。本教程使用losetup
和/dev/loopX
设备来促进安装过程。然而,另一个教程没有,他们只是mount file.fs /mnt/tmp
。
/dev/loop 方法是最佳实践吗?我无法让第一个教程(使用losetup
)的第一个示例按原样工作,尽管mount -o /dev/loopX
对我来说是可行的。第二个教程也运行良好,尽管它看起来像是基于df
它自动创建的/dev/loopX
...所以这种方法有什么不同吗?
这个问题类似,但不完全是,它询问有关环回之上的日志记录。https://superuser.com/a/266177/617695
答案1
这种方法有什么不同吗?
不。Modernmount
足够智能,可以自动执行该过程,因此您无需手动调用losetup
。以下片段手册是相关的[强调我的]:
循环装置
另一种可能的类型是通过循环设备挂载。例如,命令
mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop3
将设置循环设备
/dev/loop3
与文件相对应/tmp/disk.img
,然后将此设备挂载在 上/mnt
。如果没有明确提到循环设备(但只
-o loop
给出了一个选项),那么mount
将尝试查找一些未使用的循环设备并使用它,例如mount /tmp/disk.img /mnt -o loop
该
mount
命令会自动从常规文件创建循环设备如果未指定文件系统类型或已知文件系统libblkid
,例如:mount /tmp/disk.img /mnt mount -t ext4 /tmp/disk.img /mnt
这种类型的挂载有三个选项,分别是和
loop
,分别是offset
sizelimit
真的选择losetup(8)
. (除了特定于文件系统类型的选项外,还可以使用这些选项。)自 Linux 2.6.25 起支持循环设备的自动销毁,这意味着 分配的任何循环设备都将由独立
mount
释放。umount
/etc/mtab
losetup -d
您也可以使用或手动释放循环设备umount -d
。自
util-linux
v2.29 起,如果某些具有相同和的循环设备已经使用了相同的备份文件,mount 命令将重新使用循环设备,而不是初始化新设备offset
。sizelimit
这对于避免文件系统损坏是必要的。