Яка різниця між монтом і монтом -o циклом


28

У мене є ім'я файлу iso ubuntu.iso.

Я можу mountйого за допомогою команди: mount ubuntu.iso /mnt. Після установки, я можу бачити його з Outout команди df -h: /dev/loop0 825M 825M 0 100% /mnt.

Однак якщо я виконаю команду mount -o loop ubuntu.iso /mnt, я отримаю той самий результат.

Як я знаю, циклічний пристрій дозволяє нам відвідувати ізо-файл як пристрій, я думаю, саме тому ми додаємо цю опцію -o loop. Але я можу відвідати свій файл iso, навіть якщо тільки виконую mount ubuntu.iso /mnt.

Тому я не бачу різниці між mountі mount -o loop.


Також важливою річчю є те, що іноді монтувати не вдається налаштувати пристрій із зворотним зв'язком із відповідними накресленнями. Наприклад: mount ubuntu.iso /mntвін не встановлює пристрій лише для читання, а mount /image.squashfs /mntтакож не встановлює DIO( losetup --direct-io=on) циклічний пристрій.
неграмотний

Відповіді:


47

Обидві версії використовують петлеві пристрої та дають однаковий результат; коротка версія покладається на «кмітливість», яку додають mountостанні роки. mount -o loopговорить mountявно використовувати циклічний пристрій; він залишає сам циклічний пристрій mount, який буде шукати доступний пристрій, налаштовувати його і використовувати це. (Ви також можете вказати пристрій, наприклад,. mount -o loop=/dev/loop1 )

Розумність полягає в тому, що при наданні файлу на монтаж, mountвін автоматично використовує циклічний пристрій, щоб змонтувати його при необхідності - тобто файлова система не вказана, або libblkidвизначає, що файлова система підтримується лише на блокових пристроях (і, отже, циклічний пристрій потрібен для перекладу файлу в блок пристрою).

У розділі "петлевий пристрій" на mountсторінці "man" є більше деталей.


1
Не те * що * давно не було опції "-o loop" в монтажі, і вам доведеться вручну створити циклічний пристрій за допомогою команди losetup.
Edheldil

@ Еджелділ, це залежить від вашого поняття "давно" ;-). util-linux2.11 підтримували mount -o loopу 2001 році, і, думаю, у 2.10 це було також, принаймні, роком раніше.
Стівен Кітт

Так, але чи часто використовувані стабільні дистрибутиви в 2001 році вже використовували util-linux 2.11?
rackandboneman

2
@rackandboneman Я пішов копати трохи більше, і виявляється, що підтримка -o loopбула додана десь між util-linux2,4 і 2,5j; Debian 1.1 мав останнє і було випущено в червні 1996 року. Таким чином, ця опція була доступна у дистрибутивах вже понад двадцять років.
Стівен Кітт

Перевага цієї кмітливості: якщо / коли нова функція "прямого монтажу файлів" для розробників XFS (без необхідності в циклічних пристроях) досягне ядра, mountзможе прозоро перейти до цього механізму (принаймні, протягом перших 15 хвилин, поки він не стане виявляється, це зламало чийсь оболонку оболонки, і всі повинні повернутися до циклічних пристроїв) , на відміну від того, mount -o loopщо все ще прямо вимагає старий (поточний) механізм.
grawity

9

loopПристрій головним чином управляється за допомогою losteupкоманди. Таким чином, losetup -aви отримуєте огляд використаних циклічних пристроїв та вкладених файлів. mountКоманда може встановити тільки блоковий пристрій . Пристрій циклу може створити віртуальний блок пристрою з файлу (символьного пристрою).

Насправді існує велика різниця між цими командами, оскільки в старих системах Linux mountне можна було розпізнати файл як правильний пристрій, який потрібно встановити, але під час виконання команди mount було багато функцій, отже, тепер він може самостійно вирішити спробуйте зателефонувати команді lotup та встановити результат. Але якщо ви отримали ціле зображення диска не в форматі iso, а, наприклад, з MBR на початку, команда mount не змогла розпізнати його, і вам доведеться знайти розділ, що використовується (наприклад, за допомогою parted disk_image.raw unit B printкоманди) yoursef, і ніж змонтувати його з повною програмою comman mount mount як:

mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}

У цьому синтаксисі пристрій цикл не був визначений , і передбачається , що система вибрати перший вільний ( /dev/loop0, і /dev/loop1т.д.) Серед інших нових можливостей команди монтування є те , що вам не потрібно вказати тип файлової системи, що монтується блоковий пристрій (в вашому випадку -t iso9660) якщо була встановлена ​​підтримка файлової системи


7

Різниці між mount ubuntu.iso /mntі mount -o loop ubuntu.iso /mnt.

Перший прозоро обробляється так, ніби ви використовували другий.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.