¿Es un archivo de imagen ISO un sistema de archivos por derecho propio?

45

Estoy tratando de entender cuál es la relación xxx.isoque tiene un archivo con los otros aspectos de un dispositivo de bloque, por ejemplo, particiones y un sistema de archivos.

Es común que las personas describan .isocómo acceder o hacer un uso como "montar el ISO".

Entonces, para plantear la pregunta de otra manera: si yo, o alguna pieza de software, quisiera "montar" un xxx.isoarchivo en un dispositivo USB, ¿es necesario tener una partición preexistente completa con un sistema de archivos (por ejemplo, FAT x o ext X ) ¿o es el .isoarchivo, una vez en el estado "montado", una construcción de nivel inferior que realiza la misma función / similar que un sistema de archivos (o incluso una partición)?

the_velour_fog
fuente
15
Solo una observación: el término "archivo ISO" en la mayoría de los casos significa un archivo que contiene un sistema de archivos en el estándar ISO 9660 para discos ópticos. Puede obtener un archivo ISO copiando un CD o DVD-ROM utilizando dd, por ejemplo.
Dubu
44
Montar en un USB? ¿Quiere decir que los contenidos ISO aparezcan como parte del árbol VFS debajo del punto de montaje de la memoria USB? ¿Quieres decir como mount /dev/my_usb_stick /media/usb_stick && mount -o loop,ro foo.iso /media/usb_stick/some_dir? (El mountcomando de Linux admite la loopopción de montaje para configurar un dispositivo de bloque de bucle, ya que el deseo de montar imágenes FS como un .iso es común.)
Peter Cordes
Está utilizando el archivo como un dispositivo de bloque cuando monta un ISO.

Respuestas:

64

Un archivo ISO no es un sistema de archivos. Que contiene un sistema de archivos. Desde el punto de vista del uso, funciona de la misma manera que un disco duro o un dispositivo USB o DVD: debe tener un punto de montaje, es decir, un lugar en su sistema de archivos donde pueda montarlo para acceder al contenido.

Jenny D
fuente
1
gracias, entonces, ¿la iso, una vez en un estado montado, sería más análoga a un dispositivo de bloque o una partición en ese caso? ¿O no es posible dibujar una analogía directa ya que una iso es una cosa totalmente diferente de nuevo?
the_velour_fog
@the_velour_fog ¡Esa es una muy buena analogía!
Jenny D
19
La razón por la que no puede escribir no es porque es un archivo regular montado en lugar de un archivo especial del dispositivo, sino porque el controlador del sistema de archivos no lo admite. Si la imagen contiene otro sistema de archivos como FAT32 o EXT2 en lugar de ISO9660, podrá leer y escribir.
rexkogitans
44
@rexkogitans: ... o UDF , también conocido como ISO 13346. Este es el formato de archivo utilizado por los CD-R regrabables.
MSalters
1
@hobbs: las memorias USB, los discos duros, etc. tampoco necesitan tener particiones. Los dispositivos de bloque sin particiones a veces se denominan "SuperFloppy". No hay necesidad de particionar algo cuando solo le pones una partición. Es solo que algunos sistemas operativos simplemente esperan que haya una tabla de particiones y no reconocen un sistema de archivos directamente en el dispositivo de bloque. Los sistemas operativos integrados en las cámaras digitales de apuntar y disparar, por ejemplo, a menudo se niegan a montar tarjetas SD en formato SuperFloppy.
Jörg W Mittag
42

Hay tres conceptos separados aquí:

  • Un dispositivo de bloque , que es un dispositivo físico o virtual que representa una serie de bloques de datos de igual tamaño. Los discos duros son dispositivos de bloque. También lo son los CD de datos.
  • Un sistema de archivos , que define una forma de almacenar datos en un dispositivo de bloque que representa una serie de archivos y directorios y otra información del sistema de archivos. ext3 es un sistema de archivos, como lo es ISO9660.
  • Un archivo de imagen es una copia de los datos en un dispositivo de bloque, en forma de archivo (en otro sistema de archivos). Los archivos de imagen pueden tener cualquier extensión; .imgEs común.

Un .isoarchivo suele ser un archivo de imagen de un dispositivo de bloque que contiene un sistema de archivos ISO9660 . Contiene una representación exacta de los datos almacenados en un CD. De forma análoga, podría tener un .imgarchivo (llámelo .ext3si lo prefiere) que es un archivo de imagen de un dispositivo de bloque que contiene un sistema de archivos ext3 . Esta es una forma común de distribuir imágenes de inicio USB o disquete. El nombre es arbitrario, .isoes lo que llamamos archivos de imagen que contienen un sistema de archivos ISO9660 (o, a veces, un sistema de archivos UDF, que es más moderno).

No puede montar directamente archivos de imagen, ya que no son dispositivos de bloque, sino simplemente una copia de los datos en un dispositivo de bloque. Sin embargo, Linux y otros sistemas operativos tienen una característica llamada dispositivos de bucle que permite acceder a un archivo de imagen como un dispositivo de bloque. Para montar un archivo ISO, primero cree un dispositivo de bucle que represente un dispositivo de bloque virtual con el mismo contenido que el archivo ISO. Luego puede montarlo como si fuera un CD físico, o como si fuera una unidad USB que contiene un sistema de archivos ext3, o cualquier otra cosa. El mountcomando puede hacer esto por usted automáticamente, pero debajo del capó hay pasos separados.

Las particiones son una forma de dividir un dispositivo de bloque en múltiples dispositivos de bloque lógicos más pequeños. Las particiones son opcionales. Un CD es análogo a una unidad USB no particionada o un disquete a este respecto, uno donde el sistema de archivos se almacena en todo el dispositivo sin una tabla de particiones. Los archivos ISO por lo tanto no contienen una tabla de particiones. Sin embargo, nada le impide crear un sistema de archivos ISO9660 en una partición HDD. Al hacerlo tener particiones, un archivo de imagen puede ser de una sola partición o de todo el dispositivo físico que incluye la tabla de particiones, pero los CD no se dividen, por lo que la distinción es irrelevante para las imágenes ISO.

Usted no tiene que montar un dispositivo - o un archivo de imagen - con el fin de acceder a los archivos contenidos en su interior. Algunas aplicaciones y bibliotecas tienen la capacidad de acceder a los datos directamente, sin involucrar al sistema operativo. Simplemente entienden el sistema de archivos directamente y tienen un código que imita lo que hace el sistema operativo cuando accede a los archivos en un sistema de archivos. Es por eso que existen herramientas que pueden mostrarle el contenido de un archivo ISO, sin realmente montarlo a través del sistema operativo. El montaje es un concepto de sistema operativo, pero no es la única forma de acceder a los datos en un dispositivo de bloque. Algunas personas podrían considerar la simple acción de hacer este "montaje" de alguna manera.

Lo que monta un dispositivo (o un archivo ISO a través de un dispositivo de bucle invertido) es irrelevante. Ahí es donde, en la jerarquía de rutas, le pide al sistema operativo que muestre el contenido de un dispositivo. En Linux, normalmente elegiría un directorio en algún sistema de archivos ya montado. Pero nada le impide, por ejemplo, arrancar desde un CD y pedirle al núcleo que lo monte como el sistema de archivos raíz. Por supuesto, dado que un archivo ISO es, bueno, un archivo, probablemente exista en algún sistema de archivos para empezar, que debe haber montado en algún lugar para acceder al ISO.

marcan
fuente
11

No, el archivo de imagen ISO no es un sistema de archivos en sí mismo. Al igual que una partición puede contener un sistema de archivos, pero no es un sistema de archivos, un archivo de imagen ISO contiene un sistema de archivos, pero no es un sistema de archivos.

Pero necesitas un sistema de archivos para dos cosas:

  • un lugar para almacenar el archivo .iso (suponiendo que no venga como un disco plateado brillante)
  • un directorio donde montar, por ejemplo /mnt/isotmp

Después de eso, si una ruta se resuelve con algo debajo /mnt/isotmp, el código para el sistema de archivos de imagen ISO hará la resolución, apertura, etc.

Anthon
fuente
bueno, la disposición que ha descrito es similar a cómo se monta un disco duro, es decir, tener un block device/partition/filesystem/montaje en /some/directory. Entonces, ¿estoy en lo cierto al asumir que la iso básicamente realiza la función de un sistema de archivos?
the_velour_fog
No lo pondría así. El archivo ISO contiene un sistema de archivos. Al igual que una partición contiene un sistema de archivos. Tampoco diría que una partición es un sistema de archivos (espero)
Anthon
¿En qué se diferencia esto de decir "un archivo png contiene una imagen, pero no es una imagen", es decir, una distinción tonta e inútil?
Nick Matteo
@the_velour_fog: es más preciso decir que la iso básicamente realiza la función del dispositivo de bloque.
TMN