Um arquivo de imagem ISO é um sistema de arquivos por si só?

45

Estou tentando entender qual a relação de um xxx.isoarquivo com os outros aspectos de um dispositivo de bloco, por exemplo, partições e um sistema de arquivos.

É comum as pessoas descreverem como acessar ou tornar um .isoutilizável como "montagem do ISO".

Então, para colocar a questão de outra maneira: se eu, ou algum software, quis "montar" um xxx.isoarquivo em um dispositivo USB, é necessário ter uma partição pré-existente completa com o sistema de arquivos (por exemplo, FAT x ou ext X ) ou o .isoarquivo - uma vez no estado "montado" - é uma construção de nível inferior que desempenha a mesma / semelhante função que um sistema de arquivos (ou mesmo uma partição) desempenha?

the_velour_fog
fonte
15
Apenas uma observação: o termo "arquivo ISO" na maioria dos casos significa um arquivo que contém um sistema de arquivos no padrão ISO 9660 para mídia de disco óptico. Você pode obter um arquivo ISO copiando um CD ou DVD-ROM usando dd, por exemplo.
quer
4
Montar em um USB? Você quer dizer como fazer o conteúdo ISO aparecer como parte da árvore do VFS sob o ponto de montagem do pen drive? Você quer dizer como mount /dev/my_usb_stick /media/usb_stick && mount -o loop,ro foo.iso /media/usb_stick/some_dir? (Do Linux mountcomandos suporta a loopopção de montagem para configurar um dispositivo de bloco loop, porque querendo montar FS imagens como um .iso é comum.)
Peter Cordes
Você está usando o arquivo como um dispositivo de bloco quando monta um ISO.

Respostas:

64

Um arquivo ISO não é um sistema de arquivos. Ele contém um sistema de arquivos. Do ponto de vista do uso, ele funciona da mesma maneira que um disco rígido, dispositivo USB ou DVD - você precisa ter um ponto de montagem, ou seja, um local no seu sistema de arquivos onde você possa montá-lo para obter o conteúdo.

Jenny D
fonte
1
obrigado, então a iso - uma vez em um estado montado - seria mais análoga a um dispositivo de bloco ou partição nesse caso? - ou não é possível traçar uma analogia direta, já que um iso é uma coisa totalmente diferente?
the_velour_fog
@the_velour_fog Essa é uma analogia muito boa!
Jenny D
19
O motivo pelo qual você não pode gravar não é porque é um arquivo regular montado em vez de um arquivo especial do dispositivo, mas porque o driver do sistema de arquivos não o suporta. Se a imagem contivesse outro sistema de arquivos como FAT32 ou EXT2 em vez de ISO9660, você seria capaz de ler / gravar.
Rexkogitans
4
@rexkogitans: ... ou UDF , também conhecido como ISO 13346. Esse é o formato de arquivo usado pelos CD-R regraváveis.
precisa saber é o seguinte
1
@ Hobbs: pen drives, HDDs, etc. também não precisam ter partições. Dispositivos de bloco sem partição são chamados de "SuperFloppy" s. Não há necessidade de particionar algo quando você coloca apenas uma partição nele. É que alguns sistemas operacionais simplesmente esperam que uma tabela de partição esteja lá e não reconhecem um sistema de arquivos diretamente no dispositivo de bloco. Os SOs incorporados nas câmeras digitais point & shoot, por exemplo, costumam se recusar a montar cartões SD no formato SuperFloppy.
Jörg W Mittag
42

Existem três conceitos separados aqui:

  • Um dispositivo de bloco , que é um dispositivo físico ou virtual que representa uma série de blocos de dados de tamanho igual. HDDs são dispositivos de bloco. O mesmo acontece com os CDs de dados.
  • Um sistema de arquivos , que define uma maneira de armazenar dados em um dispositivo de bloco que representa uma série de arquivos e diretórios e outras informações do sistema de arquivos. ext3 é um sistema de arquivos, assim como ISO9660.
  • Um arquivo de imagem é uma cópia dos dados em um dispositivo de bloco, na forma de um arquivo (em outro sistema de arquivos). Os arquivos de imagem podem ter qualquer extensão; .imgé comum.

Um .isoarquivo geralmente é um arquivo de imagem de um dispositivo de bloco que contém um sistema de arquivos ISO9660 . Ele contém uma representação exata dos dados armazenados em um CD. Analogamente, você pode ter um .imgarquivo ( .ext3se preferir), que é um arquivo de imagem de um dispositivo de bloco que contém um sistema de arquivos ext3 . Essa é uma maneira comum de distribuir imagens USB ou de disquete inicializáveis. O nome é arbitrário, .isoé exatamente o que chamamos de arquivos de imagem que contêm um sistema de arquivos ISO9660 (ou, às vezes, um sistema de arquivos UDF, que é mais moderno).

Você não pode montar arquivos de imagem diretamente, pois eles não são dispositivos de bloco, mas apenas uma cópia dos dados em um dispositivo de bloco. No entanto, o Linux e outros sistemas operacionais possuem um recurso chamado dispositivos de loop, que permite que um arquivo de imagem seja acessado como um dispositivo de bloco. Para montar um arquivo ISO, primeiro crie um dispositivo de loop que represente um dispositivo de bloco virtual com o mesmo conteúdo que o arquivo ISO. Em seguida, você pode montá-lo como faria com um CD físico ou como uma unidade USB contendo um sistema de arquivos ext3 ou qualquer outra coisa. O mountcomando pode fazer isso por você automaticamente, mas, sob o capô, são etapas separadas.

Partições são uma maneira de dividir um dispositivo de bloco em vários dispositivos de bloco lógicos menores. Partições são opcionais. Um CD é análogo a uma unidade USB não particionada ou a um disquete nesse sentido, em que o sistema de arquivos é armazenado em todo o dispositivo sem tabela de partição. Os arquivos ISO, portanto, não contêm uma tabela de partição. Nada impede, por exemplo, a criação de um sistema de arquivos ISO9660 em uma partição de disco rígido. Quando você faz tem partições, um arquivo de imagem pode ser de uma única partição ou de todo o dispositivo físico, incluindo a tabela de partição, mas CDs não são divididos, por isso, a distinção é irrelevante para imagens ISO.

Você não precisa montar um dispositivo - ou um arquivo de imagem - para acessar os arquivos contidos nele. Alguns aplicativos e bibliotecas têm a capacidade de acessar os dados diretamente, sem envolver o sistema operacional. Eles simplesmente entendem o sistema de arquivos diretamente e possuem código que imita o que o sistema operacional faz quando acessa arquivos em um sistema de arquivos. É por isso que existem ferramentas que podem mostrar o conteúdo de um arquivo ISO, sem realmente montá-lo pelo sistema operacional. Montagem é um conceito de sistema operacional, mas não é a única maneira de acessar dados em um dispositivo de bloco. Algumas pessoas podem considerar a mera ação de fazer isso "montar" de uma maneira.

O que você monta um dispositivo (ou um arquivo ISO através de um dispositivo de loopback) é irrelevante. É exatamente aí que, na hierarquia do caminho, você solicita ao sistema operacional que mostre o conteúdo de um dispositivo. No Linux, você normalmente escolhe um diretório em algum sistema de arquivos já montado. Mas nada impede você, digamos, de inicializar a partir de um CD e pede ao kernel para montá-lo como o sistema de arquivos raiz. Obviamente, como um arquivo ISO é, bem, um arquivo, ele provavelmente existe em algum sistema de arquivos, que você precisa montar em algum lugar para acessar o ISO.

Marcan
fonte
11

Não, o arquivo de imagem ISO não é um sistema de arquivos por si só. Assim como uma partição pode conter um sistema de arquivos, mas não é um sistema de arquivos, um arquivo de imagem ISO contém um sistema de arquivos, mas não é um sistema de arquivos.

Mas você precisa de um sistema de arquivos para duas coisas:

  • um local para armazenar o arquivo .iso (supondo que não seja um disco prateado brilhante)
  • um diretório onde montar, por exemplo /mnt/isotmp

Depois disso, se um caminho for resolvido para algo abaixo /mnt/isotmp, o código do sistema de arquivos de imagem ISO fará a resolução, abertura, etc.

Anthon
fonte
bom, o arranjo que você descreve é ​​semelhante ao modo como um disco rígido é montado, ou seja, tendo um block device/partition/filesystem/montado em /some/directory. então estou certo de assumir que o iso basicamente executa a função de um sistema de arquivos?
the_velour_fog
Eu não diria isso. O arquivo ISO contém um sistema de arquivos. Assim como uma partição contém um sistema de arquivos. Você não diria que uma partição é um sistema de arquivos ou (espero)
Anthon
Como isso é diferente de dizer "um arquivo png contém uma imagem, mas não é uma imagem", ou seja, uma distinção boba e inútil?
Nick Matteo
@ the_velour_fog: Mais preciso dizer que o iso executa basicamente a função do dispositivo de bloco.
TMN