我有一个名为 .iso 的 iso 文件ubuntu.iso
。
我可以mount
用命令:mount ubuntu.iso /mnt
. 安装后,我可以从命令中看到它df -h
: /dev/loop0 825M 825M 0 100% /mnt
。
但是,如果我执行 command mount -o loop ubuntu.iso /mnt
,我会得到相同的结果。
据我所知,loop device允许我们作为设备访问iso文件,我想这就是我们添加选项的原因-o loop
。但是我可以访问我的 iso 文件,即使我只执行mount ubuntu.iso /mnt
.
mount
所以我看不出和之间的区别mount -o loop
。
两个版本都使用循环设备,并产生相同的结果;短版依赖
mount
于近几年增加的“聪明”。mount -o loop
明确告诉mount
使用循环设备;它将循环设备本身mount
保留为 ,它将寻找可用的设备,对其进行设置并使用它。(您也可以使用例如mount -o loop=/dev/loop1
指定设备。)聪明之处在于,当给定一个要挂载的文件时,
mount
会在必要时自动使用循环设备来挂载它——即,未指定文件系统,或者libblkid
确定文件系统仅在块设备上受支持(因此需要循环设备将文件转换为块设备)。mount
手册页的循环设备部分有更多详细信息。该
loop
设备主要由losteup
命令控制。因此losetup -a
,为您提供有关使用的循环设备和附件的概述。该mount
命令只能挂载块设备。循环设备可以从文件(字符设备)创建虚拟块设备。实际上,这些命令之间存在很大差异,因为在较旧的 Linux 系统上,
mount
无法将文件识别为要挂载的正确设备,但是在挂载命令完成期间具有很多功能,因此它现在可以自行决定尝试调用 lostup 命令并挂载结果。但是如果你得到一个不是iso格式的整个磁盘映像,但例如在开始时使用MBR,则mount命令无法识别它,你必须自己找到可用的分区(例如使用parted disk_image.raw unit B print
命令),然后使用完整选项mount comman安装它作为 :在此语法中,未指定循环设备,并假定系统选择第一个空闲(
/dev/loop0
等/dev/loop1
)mount 命令的其他新功能之一是您无需指定已安装块设备的文件系统类型(在您的情况下-t iso9660
)如果安装了文件系统支持。mount ubuntu.iso /mnt
和之间没有区别mount -o loop ubuntu.iso /mnt
。第一个被透明地处理,就好像您使用了第二个一样。