У меня есть ISO-файл с именем ubuntu.iso
.
Я могу mount
его с помощью команды: mount ubuntu.iso /mnt
. После установки, я могу видеть его из Outout команды df -h
: /dev/loop0 825M 825M 0 100% /mnt
.
Однако, если я выполню команду mount -o loop ubuntu.iso /mnt
, я получу тот же результат.
Как я знаю, устройство loop позволяет нам просматривать iso-файл как устройство, поэтому я думаю, что именно поэтому мы добавили эту опцию -o loop
. Но я могу посетить свой iso-файл, даже если я только выполню mount ubuntu.iso /mnt
.
Так что я не вижу разницы между mount
и mount -o loop
.
mount ubuntu.iso /mnt
оно не устанавливает петлевое устройство только для чтения иmount /image.squashfs /mnt
не устанавливает петлевое устройствоDIO
(losetup --direct-io=on
).Ответы:
Обе версии используют петлевые устройства и дают одинаковый результат; короткая версия опирается на «ум», добавленный
mount
в последние годы.mount -o loop
говоритmount
явным образом использовать устройство обратной связи; он оставляет само устройство петли доmount
, которое будет искать доступное устройство, настраивать его и использовать его. (Вы также можете указать устройство с помощью, напримерmount -o loop=/dev/loop1
.)Хитрость заключается в том, что когда предоставляется файл для монтирования,
mount
он автоматически использует циклическое устройство для монтирования, когда это необходимо - то есть файловая система не указана илиlibblkid
определяет, что файловая система поддерживается только на блочных устройствах (и, следовательно, устройство петли необходимо для преобразования файла в блочное устройство).Раздел «Устройство цикла» на
mount
странице руководства содержит более подробную информацию.источник
util-linux
2.11 поддерживаетсяmount -o loop
в 2001 году, и я думаю, что 2.10 тоже, по крайней мере, годом ранее.-o loop
была добавлена где-то междуutil-linux
2.4 и 2.5j; У Debian 1.1 была последняя версия, и она была выпущена в июне 1996 года. Так что эта опция доступна в дистрибутивах более двадцати лет.mount
она сможет прозрачно переключиться на этот механизм (по крайней мере, в течение первых 15 минут, пока оказывается, он сломал чей-то шеллскрипт, и все должны вернуться к устройствам цикла) , в отличие отmount -o loop
которых все еще явно запрашивается старый (текущий) механизм.loop
Устройство главным образом управляется с помощьюlosteup
команды. Так чтоlosetup -a
дает вам обзор используемых петлевых устройств и прикрепленных файлов. Командаmount
может монтировать только блочное устройство . Устройство цикла может создать виртуальное блочное устройство из файла (символьное устройство).На самом деле между этими командами есть большая разница, потому что в старых системах Linux
mount
не удалось распознать файл как правильное устройство для монтирования, но в то время, когда команда монтирования была выполнена с большим количеством функций, следовательно, теперь она может самостоятельно решить попробуйте вызвать команду losttup и смонтировать результат. Но если у вас есть весь образ диска не в формате iso, а, например, с MBR в начале, команда mount не может его распознать, и вам нужно найти используемый раздел (например, с помощьюparted disk_image.raw unit B print
команды) yoursef, а затем смонтировать его с полным параметром mount comman как :В этом синтаксисе петлевое устройство не было указано, и предполагается, что система выбирает первое свободное (
/dev/loop0
и/dev/loop1
т. Д.). Среди других новых функций команды mount является то, что вам не нужно указывать тип файловой системы смонтированного блочного устройства (в вашем случае-t iso9660
) если поддержка файловой системы была установлена.источник
Там нет никакой разницы между
mount ubuntu.iso /mnt
иmount -o loop ubuntu.iso /mnt
.Первый прозрачно обрабатывается, как если бы вы использовали второй.
источник