Является ли файл образа ISO собственной файловой системой?

45

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

Люди часто описывают доступ или .isoиспользование как «монтаж ISO».

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

the_velour_fog
источник
15
Просто замечание: термин «файл ISO» в большинстве случаев означает файл, который содержит файловую систему в стандарте ISO 9660 для оптических дисков. Вы можете получить файл ISO, скопировав, например, CD- или DVD-ROM 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 - когда-то в смонтированном состоянии - быть более аналогичным блочному устройству или разделу в этом случае? - или нельзя провести прямую аналогию, потому что iso - это совершенно другая вещь?
the_velour_fog
@the_velour_fog Это очень хорошая аналогия!
Дженни Д
19
Причина, по которой вы не можете записать в него, не в том, что это смонтированный обычный файл вместо специального файла устройства, а в том, что драйвер файловой системы не поддерживает его. Если образ содержит другую файловую систему, такую ​​как FAT32 или EXT2 вместо ISO9660, вы сможете читать и писать.
rexkogitans
4
@rexkogitans: ... или UDF , он же ISO 13346. Этот формат файла используется перезаписываемыми CD-R.
MSalters
1
@hobbs: USB-накопители, жесткие диски и т. д. также не должны иметь разделов. Блочные устройства без разделов иногда называют «SuperFloppy». Нет необходимости разделять что-либо, когда вы помещаете на него только один раздел. Просто некоторые операционные системы просто ожидают появления таблицы разделов и не распознают файловую систему непосредственно на блочном устройстве. Например, встраиваемые операционные системы типа «наведи и снимай» часто отказываются устанавливать SD-карты в формате SuperFloppy.
Йорг Миттаг
42

Здесь есть три отдельных понятия:

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

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

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

Разделы - это способ разбить блочное устройство на несколько меньших логических блочных устройств. Разделы не являются обязательными. В этом отношении компакт-диск аналогичен нераспределенному USB-накопителю или дискете, где файловая система хранится на всем устройстве без таблицы разделов. Поэтому файлы ISO не содержат таблицы разделов. Однако ничто не мешает вам создать файловую систему ISO9660 в разделе жесткого диска. Когда вы делаете есть разделы, файл изображение может быть из одного раздела или всего физического устройства , включая таблицу разделов, но диски не распределяли, поэтому различие не имеет значения для изображений ISO.

Вам не нужно монтировать устройство - или файл образа - чтобы получить доступ к файлам, содержащимся в нем. Некоторые приложения и библиотеки имеют возможность доступа к данным напрямую, без участия операционной системы. Они просто понимают файловую систему напрямую и имеют код, который имитирует действия ОС при обращении к файлам в файловой системе. Вот почему существуют инструменты, которые могут показать вам содержимое файла ISO, без фактического монтирования его через ОС. Монтирование - это концепция операционной системы, но это не единственный способ доступа к данным на блочном устройстве. Некоторые люди могут подумать о простом действии сделать это «монтаж» в пути.

То, на что вы монтируете устройство (или файл ISO через устройство обратной связи), не имеет значения. Именно в этой иерархии путей вы просите ОС показать содержимое устройства. В Linux вы обычно выбираете каталог в уже смонтированной файловой системе. Но ничто не мешает вам, скажем, загрузиться с компакт-диска и попросить ядро ​​смонтировать его как корневую файловую систему. Конечно, поскольку файл ISO - это, ну, файл, вероятно, он существует в некоторой файловой системе для начала, которую нужно где-то смонтировать, чтобы вообще получить доступ к ISO.

Marcan
источник
11

Нет, файл образа ISO сам по себе не является файловой системой. Точно так же, как раздел может содержать файловую систему, но не является файловой системой, файл образа ISO содержит файловую систему, но не является файловой системой.

Но вам нужна файловая система для двух вещей:

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

После этого, если путь разрешается к чему-либо в соответствии с /mnt/isotmp, код для файловой системы образа ISO будет выполнять разрешение, открытие и т. Д.

Энтон
источник
хорошее, расположение у Вас есть описание аналогично тому , как жесткий диск получает установлен, т.е. имеющие block device/partition/filesystem/установленные на /some/directory. так что я прав тогда предположить, что iso в основном выполняет функцию файловой системы?
the_velour_fog
Я бы так не сказал. Файл ISO содержит файловую систему. Также как раздел содержит файловую систему. Вы бы не сказали, что раздел также является файловой системой (надеюсь)
Anthon
Чем это отличается от высказывания «файл png содержит изображение, но не изображение», то есть глупое и бесполезное различие?
Ник Маттео
@the_velour_fog: Точнее сказать, что iso в основном выполняет функцию блочного устройства.
TMN