在各种教程中我看到以下命令:
mount -o ro,loop,offset=123 harddrive.img /mnt/loop
但通过阅读文档,我无法理解什么是循环设备。为什么harddrive.img
需要不同的选项/dev/sba
?
从我自己的测试来看,mount -o ro,offset=123 harddrive.img /mnt/loop
似乎工作正常,那么这个选项的意义和意义是什么?
答案1
你需要一个循环装置(这基本上是一个由常规文件支持的“假”块设备)因为mount
需要一个块设备。
并且您不需要指定,-o loop
因为如果不指定,当您尝试挂载文件时,将自动创建循环设备。从安装手册页:
如果未指定文件系统类型或 libblkid 已知文件系统,则 mount 命令会自动从常规文件创建循环设备
你可以看到即使不使用循环设备仍然被创建-o loop
:
$ sudo mount disk.img /mnt/test
$ lsblk /dev/loop0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 100M 0 loop /mnt/test
$ cat /proc/mounts | grep test
/dev/loop0 /mnt/test ext4 rw,seclabel,relatime 0 0
-o loop
如果您想手动指定未使用或手动创建的循环设备,例如-o loop=/dev/loop3
,那么最需要使用so 。