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 .iso
arquivo 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 .img
arquivo ( .ext3
se 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 mount
comando 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.
dd
, por exemplo.