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

43

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

É comum as pessoas descreverem o acesso ou a utilização de .iso como "montagem da ISO".

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

    
por the_velour_fog 25.04.2016 / 08:50

3 respostas

63

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

    
por 25.04.2016 / 09:41
41

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 tamanhos iguais. Os HDDs são dispositivos de bloco. Assim são 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. O ext3 é um sistema de arquivos, assim como o 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). Arquivos de imagem podem ter qualquer extensão; .img é comum.

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

Você não pode montar diretamente os arquivos de imagem, pois eles não são dispositivos de bloco, mas meramente uma cópia dos dados em um dispositivo de bloco. No entanto, o Linux e outros sistemas operacionais possuem um recurso chamado loop devices que permite que um arquivo de imagem seja acessado como um dispositivo de bloco. Para montar um arquivo ISO, você primeiro cria um dispositivo de loop que representa um dispositivo de bloco virtual com o mesmo conteúdo do arquivo ISO. Então você pode montá-lo como se fosse um CD físico, ou como se fosse um drive USB contendo um sistema de arquivos ext3, ou qualquer outra coisa. O comando mount pode fazer isso para você automaticamente, mas sob o capô são etapas separadas.

As 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 aspecto, em que o sistema de arquivos é armazenado em todo o dispositivo sem tabela de partições. Os arquivos ISO, portanto, não contêm uma tabela de partição. Nada impede você de, digamos, criar um sistema de arquivos ISO9660 em uma partição HDD. Quando você faz 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ções, mas os CDs não são particionados, portanto a distinção é irrelevante para imagens ISO. / p>

Você não tem para 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 têm código que imita o que o SO 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 através do sistema operacional. A 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 simples ação de fazer isso "montagem" de uma forma.

O que você monta um dispositivo (ou um arquivo ISO através de um dispositivo de loopback) é irrelevante. É exatamente aí que na hierarquia de caminho você pergunta ao sistema operacional para mostrar o conteúdo de um dispositivo. No Linux, você normalmente escolheria um diretório em algum sistema de arquivos já montado. Mas nada impede que você, digamos, inicialize de um CD e peça ao kernel para montá-lo como o sistema de arquivos raiz. É claro que, como um arquivo ISO é, bem, um arquivo, ele provavelmente existe em algum sistema de arquivos para começar, o que você precisa ter montado em algum lugar para acessar o ISO.

    
por 25.04.2016 / 18:31
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, e. %código%

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

    
por 25.04.2016 / 09:34