Чи файл файлів ISO-файлів є власною файловою системою?


45

Я намагаюся зрозуміти, яке відношення має xxx.isoфайл до інших аспектів блокового пристрою, наприклад, розділів та файлової системи.

Люди звичайно описують доступ чи .isoвикористання придатних як "встановлення ISO".

Отже, щоб поставити питання іншим способом: Якщо я, або якийсь фрагмент програмного забезпечення, хотів "встановити" xxx.isoфайл на USB-пристрій, чи потрібно мати попередньо існуючий розділ разом із файловою системою (наприклад, FAT x або ext X ) або .isoфайл - опинившись у «змонтованому» стані - конструкція нижчого рівня, яка виконує ту ж / схожу роль, яку виконує файлова система (або навіть розділ)?


15
Лише зауваження: Термін "файл ISO" у більшості випадків означає файл, який містить файлову систему в стандарті ISO 9660 для оптичних носіїв дисків. Ви можете отримати файл ISO, скопіювавши компакт-диск або DVD-диск dd, наприклад, використовуючи.
Дубу

4
Підключити USB? Ви маєте на увазі, як зробити так, щоб вміст ISO відображався як частина дерева VFS під точкою кріплення USB-накопичувача? Ви маєте на увазі, як mount /dev/my_usb_stick /media/usb_stick && mount -o loop,ro foo.iso /media/usb_stick/some_dir? ( mountКоманда Linux підтримує loopопцію кріплення для встановлення блокового блоку пристрою, тому що бажати монтувати зображення FS типу .iso є загальним.)
Пітер Кордес,

Ви використовуєте файл як блок пристрою під час монтажу ISO.

Відповіді:


64

Файл ISO - це не файлова система. Він містить файлову систему. З точки зору використання, він функціонує так само, як жорсткий диск або USB-пристрій або DVD - вам потрібно мати точку кріплення, тобто місце у вашій файловій системі, де ви зможете встановити його, щоб потрапити на вміст.


1
дякую, то чи буде тоді iso - колись у змонтованому стані - було б аналогічним блоковому пристрою чи партії в такому випадку? - чи неможливо провести пряму аналогію, оскільки ізо - це зовсім інша річ?
the_velour_fog

@the_velour_fog Це дуже хороша аналогія!
Дженні Д

19
Причина, по якій ви не можете писати до нього, полягає не в тому, що це встановлений звичайний файл замість спеціального файлу пристрою, а в тому, що драйвер файлової системи не підтримує його. Якби зображення замість ISO9660 містило іншу файлову систему на зразок FAT32 або EXT2, ви могли б читати і записувати.
rexkogitans

4
@rexkogitans: ... або UDF , він же ISO 13346. Це формат файлів, використовуваний перезаписними CD-R.
MSalters

1
@hobbs: USB-накопичувачі, жорсткі диски тощо також не повинні мати розділів. Блокові пристрої, що не містять розділів, іноді називають "SuperFloppy" s. Не потрібно щось розділяти, коли ви кладете на нього лише один розділ. Просто деякі операційні системи просто очікують, що там буде розміщена таблиця розділів, і не розпізнають файлову систему безпосередньо на блоковому пристрої. Наприклад, вбудовані ОС у точкові та знімати цифрові камери, наприклад, часто відмовляються монтувати SD-карти у форматі SuperFloppy.
Йорг W Міттаг

42

Тут є три окремих поняття:

  • Блоковий пристрій , яке є фізичним або віртуальним пристроєм , яке представляє собою ряд однакових по розміру блоків даних. Жорсткі диски - це блокові пристрої. Так само компакт-диски з даними.
  • Файлова система , яка визначає спосіб зберігання даних в блоковий пристрій , яке представляє собою набір файлів і директорій та іншої інформації файлової системи. ext3 - файлова система, як і ISO9660.
  • Файл зображення є копією даних на блоковому пристрої, у вигляді файлу (на інший файлової системи). Файли зображень можуть мати будь-яке розширення; .imgє загальним.

.isoФайл зазвичай являє собою файл зображення з блочного пристрою , що містить файлову систему ISO9660 . Він містить точне подання даних, що зберігаються на компакт-диску. Аналогічно, ви могли б мати .imgфайл (назвемо його , .ext3якщо ви віддаєте перевагу) , який представляє собою файл зображення з блочного пристрою , що містить файлову систему ext3 . Це поширений спосіб розповсюдження завантажуваного USB або дискети. Назва довільна - .isoце саме те, що ми називаємо файлами зображень, що містять файлову систему ISO9660 (або, іноді, файлову систему UDF, яка є більш сучасною).

Ви не можете безпосередньо монтувати файли зображень, оскільки вони не є блоковими пристроями, а лише копією даних на блочному пристрої. Однак у Linux та інших ОС є функція, що називається петльовими пристроями, яка дозволяє отримати доступ до файлу зображень як блочного пристрою. Щоб змонтувати файл ISO, спочатку створіть циклічний пристрій, який представляє віртуальний блок пристрою з тим самим вмістом, що і файл ISO. Тоді ви можете змонтувати його так само, як фізичний компакт-диск, або як USB-накопичувач, що містить файлову систему ext3, або що-небудь інше. mountКоманда може зробити це автоматично, але під капотом вони є окремими кроками.

Розділи - це спосіб розбиття блокового пристрою на кілька, менших, логічних блокових пристроїв. Перегородки необов’язкові. У цьому відношенні компакт-диск є аналогом нерозділеного USB-накопичувача або дискети, де файлова система зберігається на всьому пристрої без таблиці розділів. Отже, файли ISO не містять таблиці розділів. Однак, ніщо не заважає вам створити файлову систему ISO9660 на HDD-розділі. Коли ви робите є розділи, файл зображення може бути з одного розділу або всього фізичного пристрою , включаючи таблицю розділів, але диски не розподіляли, тому різниця не має значення для зображень ISO.

Вам не потрібно монтувати пристрій - або файл зображення - для доступу до файлів, що містяться в ньому. Деякі програми та бібліотеки мають можливість доступу до даних безпосередньо, не залучаючи операційну систему. Вони просто розуміють файлову систему безпосередньо та мають код, який імітує те, що робить ОС, коли вона отримує доступ до файлів у файловій системі. Ось чому існують інструменти, які можуть показувати вам вміст файлу ISO, фактично не встановлюючи його через ОС. Монтаж - це концепція операційної системи, але це не єдиний спосіб доступу до даних на блоковому пристрої. Деякі люди можуть певним чином вважати просту дію робити це "кріплення".

Те, на чому ви монтуєте пристрій (або файл ISO через пристрій зворотного зв'язку), не має значення. Ось тільки де в ієрархії контурів ви просите ОС показати вміст пристрою. У Linux зазвичай вибираєте каталог у вже встановленій файловій системі. Але ніщо не зупиняє вас від, скажімо, завантаження з компакт-диска та прохання ядра встановити його як кореневу файлову систему. Звичайно, оскільки файл ISO - це, ну, файл, він, мабуть, існує в якійсь файловій системі для початку, яку вам потрібно десь встановити, щоб взагалі отримати доступ до ISO.


11

Ні, файл ISO-файлу сам по собі не є файловою системою. Подібно до того, як розділ може містити файлову систему, але це не файлова система, так і файл зображень ISO містить файлову систему, але це не файлова система.

Але вам потрібна файлова система для двох речей:

  • місце для зберігання .iso-файлу (якщо припустити, що він не виходить блискучим срібним диском)
  • каталог, куди можна встановити, наприклад /mnt/isotmp

Після цього, якщо шлях вирішиться до чогось під /mnt/isotmp, код для файлової системи зображень ISO виконає вирішення, відкриття тощо.


Приємно, розташування, яке ви описуєте, схоже на те, як встановлено жорсткий диск, тобто block device/partition/filesystem/встановити його /some/directory. тож я маю рацію припустити, що iso в основному виконує функцію файлової системи?
the_velour_fog

Я б не ставив такого. Файл ISO містить файлову систему. Так само, як розділ містить файлову систему. Ви б не сказали, що і розділ є файловою системою (сподіваюся)
Антон,

Чим це відрізняється від того, щоб сказати: "png-файл містить зображення, але не зображення", тобто нерозумне і марне розрізнення?
Нік Маттео

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