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?
cat
no lugar dedd
ao fazer liveUSBsRespostas:
Um arquivo ISO é uma imagem completa e formatada do sistema de arquivos. Tudo
cat
oudd
faz é 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
cat
faz é escrever essa coleção de bytes. Ele não interpreta.iso
nada, 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
write
com 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
.iso
arquivo 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, umext4
sistema de arquivos, ecat
em uma partição.fonte
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.fonte