Un fichier image ISO est-il un système de fichiers à part entière?

45

J'essaie de comprendre la relation entre un xxx.isofichier et les autres aspects d'un périphérique en mode bloc, par exemple des partitions et un système de fichiers.

Il est courant que des personnes décrivent comment accéder ou créer un objet .isoutilisable comme "monter l'ISO".

Donc, pour poser la question autrement: si moi, ou un logiciel, voulons "monter" un xxx.isofichier sur un périphérique USB, est-il nécessaire de disposer d'une partition préexistante avec système de fichiers (par exemple, FAT x ou ext X ) ou le .isofichier - une fois dans l'état "monté" - est-il une construction de niveau inférieur qui remplit le même rôle / un rôle similaire à celui d'un système de fichiers (ou même d'une partition)?

the_velour_fog
la source
15
Juste une remarque: le terme "fichier ISO" désigne dans la plupart des cas un fichier contenant un système de fichiers de la norme ISO 9660 pour les supports de disque optique. Vous pouvez obtenir un fichier ISO en copiant un CD ou un DVD-ROM en utilisant dd, par exemple.
Dubu
4
Monter sur une clé USB? Vous voulez dire que le contenu ISO apparaît dans l’arborescence VFS sous le point de montage de la clé USB? Tu veux dire comme mount /dev/my_usb_stick /media/usb_stick && mount -o loop,ro foo.iso /media/usb_stick/some_dir? (La mountcommande de Linux prend en charge l' loopoption de montage pour configurer un périphérique à blocage de boucle, car il est courant de monter des images FS comme un .iso.)
Peter Cordes
Vous utilisez le fichier en tant que périphérique bloc lorsque vous montez une image ISO.

Réponses:

64

Un fichier ISO n'est pas un système de fichiers. Il contient un système de fichiers. Du point de vue de l’utilisation, il fonctionne de la même manière qu’un disque dur, un périphérique USB ou un DVD - vous devez disposer d’un point de montage, c’est-à-dire d’un emplacement dans votre système de fichiers où vous pouvez le monter pour obtenir le contenu.

Jenny D
la source
1
merci, alors l'iso - une fois dans un état monté - serait-il plus analogue à un périphérique bloc ou à une partition dans ce cas? - ou n'est-il pas possible de faire une analogie directe, car une iso est encore une chose totalement différente?
the_velour_fog
@the_velour_fog C'est une très bonne analogie!
Jenny D
19
La raison pour laquelle vous ne pouvez pas écrire dessus n’est pas due au fait qu’il s’agit d’un fichier ordinaire monté et non d’un fichier spécial de périphérique, mais bien du fait que le pilote du système de fichiers ne le prend pas en charge. Si l'image contenait un autre système de fichiers tel que FAT32 ou EXT2 au lieu de ISO9660, vous seriez en mesure de lire / écrire.
rexkogitans
4
@ rexkogitans: ... ou UDF , ou ISO 13346. Il s'agit du format de fichier utilisé par les CD-R réinscriptibles.
MSalters
1
@ Hobbs: Les clés USB, disques durs, etc. n'ont pas besoin de partitions. Les périphériques en mode bloc sans partition sont parfois appelés "SuperFloppy". Il n'est pas nécessaire de partitionner quelque chose lorsque vous ne mettez qu'une seule partition dessus. Certains systèmes d’exploitation attendent simplement une table de partition et ne reconnaissent pas un système de fichiers directement sur le périphérique en mode bloc. Les systèmes d’exploitation embarqués dans les appareils photo numériques, par exemple, refusent souvent de monter des cartes SD au format SuperFloppy.
Jörg W Mittag
42

Il y a trois concepts distincts ici:

  • Un périphérique de bloc , qui est un périphérique physique ou virtuel qui représente une série de blocs de données de taille égale. Les disques durs sont des périphériques bloqués. Il en va de même pour les CD de données.
  • Un système de fichiers , qui définit un moyen de stocker des données dans un périphérique en mode bloc, qui représente une série de fichiers et de répertoires et d'autres informations sur le système de fichiers. ext3 est un système de fichiers, tout comme ISO9660.
  • Un fichier image est une copie des données sur un périphérique en mode bloc, sous la forme d'un fichier (sur un autre système de fichiers). Les fichiers image peuvent avoir n'importe quelle extension. .imgest commun.

Un .isofichier est généralement un fichier image d'un périphérique bloc contenant un système de fichiers ISO9660 . Il contient une représentation exacte des données stockées sur un CD. De manière analogue, vous pourriez avoir un .imgfichier (appelez-le .ext3si vous préférez) qui est un fichier image d'un périphérique en mode bloc contenant un système de fichiers ext3 . C’est un moyen courant de distribuer des images de démarrage USB ou des disquettes. Le nom est arbitraire, .isoc'est ce que nous appelons des fichiers image contenant un système de fichiers ISO9660 (ou, parfois, un système de fichiers UDF, qui est plus moderne).

Vous ne pouvez pas monter directement des fichiers image, car ce ne sont pas des périphériques en mode bloc, mais simplement une copie des données d'un périphérique en bloc. Toutefois, Linux et les autres systèmes d’exploitation ont une fonctionnalité appelée périphériques en boucle qui permet d’accéder à un fichier image en tant que périphérique bloc. Pour monter un fichier ISO, vous devez d'abord créer un périphérique de boucle qui représente un périphérique de bloc virtuel avec le même contenu que le fichier ISO. Ensuite, vous pouvez le monter exactement comme vous le feriez sur un CD physique ou sur un lecteur USB contenant un système de fichiers ext3, ou autre. La mountcommande peut le faire automatiquement, mais sous le capot, il s'agit d'étapes distinctes.

Les partitions sont un moyen de diviser un périphérique bloc en plusieurs périphériques blocs logiques plus petits. Les partitions sont optionnelles. Un CD est analogue à un lecteur USB non partitionné ou à une disquette, dans lequel le système de fichiers est stocké sur l’ensemble du périphérique sans table de partition. Les fichiers ISO ne contiennent donc pas de table de partition. Rien ne vous empêche, par exemple, de créer un système de fichiers ISO9660 sur une partition de disque dur. Lorsque vous n'avez des partitions, un fichier image peut être d'une seule partition ou du périphérique physique complet , y compris la table de partition, mais les CD ne sont pas cloisonné, de sorte que la distinction est hors de propos pour les images ISO.

Vous n'avez pas besoin de monter un périphérique - ou un fichier image - pour accéder aux fichiers qu'il contient. Certaines applications et bibliothèques peuvent accéder aux données directement, sans impliquer le système d'exploitation. Ils comprennent simplement le système de fichiers directement et ont un code qui imite ce que fait le système d'exploitation lorsqu'il accède aux fichiers d'un système de fichiers. C'est pourquoi des outils existent pour vous montrer le contenu d'un fichier ISO sans le monter via le système d'exploitation. Le montage est un concept de système d'exploitation, mais ce n'est pas le seul moyen d'accéder aux données sur un périphérique en mode bloc. Certaines personnes pourraient considérer le simple fait de faire ce "montage" d'une certaine manière.

Ce sur quoi vous montez un périphérique (ou un fichier ISO via un périphérique de bouclage) est sans importance. C'est là que dans la hiérarchie des chemins, vous demandez au système d'exploitation d'afficher le contenu d'un périphérique. Sous Linux, vous choisissez généralement un répertoire sur un système de fichiers déjà monté. Mais rien ne vous empêche, par exemple, d’amorcer à partir d’un CD et de demander au noyau de le monter en tant que système de fichiers racine. Bien sûr, étant donné qu’un fichier ISO est, eh bien, un fichier, il existe probablement déjà sur un système de fichiers que vous devez avoir monté quelque part pour pouvoir accéder à l’ISO.

Marcan
la source
11

Non, le fichier image ISO n'est pas un système de fichiers à part entière. Tout comme une partition peut contenir un système de fichiers, mais ce n’est pas un système de fichiers, un fichier image ISO contient-il un système de fichiers, mais ce n’est pas un système de fichiers.

Mais vous avez besoin d’un système de fichiers pour deux choses:

  • un emplacement pour stocker le fichier .iso (à condition qu'il ne vienne pas comme un disque argenté brillant)
  • un répertoire où monter, par exemple /mnt/isotmp

Après cela, si un chemin est résolu en dessous /mnt/isotmp, le code du système de fichiers d'image ISO se chargera de la résolution, de l'ouverture, etc.

Anthon
la source
sympa, l’arrangement que vous décrivez est similaire à la façon dont un disque dur est monté, c’est-à-dire qu’il est block device/partition/filesystem/monté sur /some/directory. Ai-je raison de supposer que l'ISO remplit essentiellement la fonction de système de fichiers?
the_velour_fog
Je ne le dirais pas tel. Le fichier ISO contient un système de fichiers. Tout comme une partition contient un système de fichiers. Vous ne diriez pas non plus qu'une partition est un système de fichiers (j'espère)
Anthon
En quoi est-ce différent de dire "un fichier png contient une image, mais ce n'est pas une image", c'est-à-dire une distinction idiote et inutile?
Nick Matteo
@ the_velour_fog: Plus précis, l'iso remplit essentiellement la fonction du périphérique bloc.
TMN