Como / Por que o gato escreve um ISO inicializável em um dispositivo


15

Descobri recentemente que posso criar uma chave USB inicializável a partir de um arquivo ISO simplesmente usando cat(ou dd).

Não consigo encontrar nenhuma informação sobre como isso funciona. Por que:

cat my.iso > /dev/sdb && sync

pegar esse arquivo e gravar todos os arquivos que ele contém, no formato inicializável, em um dispositivo?


Eu nunca pensado para uso catno lugar de ddao fazer liveUSBs
Rob

3
Estava nas instruções para "Tails", a imagem ao vivo do Tor. Eu pesquisei um pouco (antes de perguntar aqui) e parece que dd era o que as pessoas costumavam usar para esse tipo de coisa, mas o gato parece ser a ferramenta preferida agora. Eu acho que é mais fácil, pois você não precisa se preocupar em especificar parâmetros nomeados para detalhes de entrada / saída.

Respostas:


14

Um arquivo ISO é uma imagem completa e formatada do sistema de arquivos. Tudo catou ddfaz é fazer uma cópia bit a bit dessa imagem do sistema de arquivos na mídia de destino.

Não há mágica acontecendo nos bastidores. A preparação do sistema de arquivos ISO foi feita previamente (geralmente por uma ferramenta especializada). Tudo o que catfaz é escrever essa coleção de bytes. Ele não interpreta .isonada, nem entende que está tentando criar uma mídia removível inicializável.
Requer suporte adequado do kernel e do driver de dispositivo para fazer writecom que eles funcionem nessa mídia. Um pouco de "mágica" acontece lá, pois a mídia óptica gravável não opera exatamente da mesma maneira que os discos rígidos convencionais. Mas essa mágica não envolve a interpretação do conteúdo do arquivo ISO.

Você pode montar o .isoarquivo diretamente sem gravá-lo usando uma montagem em loop (se algo estiver disponível no seu sistema operacional). Da mesma forma, você pode criar um arquivo que contenha, por exemplo, um ext4sistema de arquivos, e catem uma partição.


1
e depois simplesmente garantir que os dados realmente escrito para você partição (em vez de apenas tamponado)
yuyichao

A sincronização @yuyichao deve cobrir isso, certo? Edit: Acabei de perceber que respondi a um comentário de 6 anos #
Manchineel

5

Isso funciona porque a imagem iso foi processada com isohybrid, que instala um carregador de inicialização syslinux normal na imagem iso. Isso é possível porque o iso9660 normalmente não usa os primeiros setores da imagem; portanto, um carregador de inicialização de disco rígido mais ou menos normal pode ser colocado lá. Quando gravado em um disco óptico, ele é ignorado e a bios inicializa o disco usando o método convencional de inicialização do CD-ROM. Quando a imagem é colocada em uma unidade flash, o setor de inicialização do syslinux é carregado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.