O que acontece quando eu faço "cat debian.iso> / dev / sdX"?

10

Estou criando um live-USB e não entendo exatamente: o que acontece quando copio um arquivo (ou mesmo um sistema de arquivos) diretamente para um nó do dispositivo (ao contrário de um sistema de arquivos)?

Boris Burkov
fonte

Respostas:

16

O shell abrirá o dispositivo /dev/sdX. Toda a saída do catcomando, que acaba sendo o conteúdo debian.iso, é gravada diretamente nesse dispositivo.

O resultado final é que debian.isoé gravado byte a byte no início do disco subjacente /dev/sdX.

Com efeito, o nó do dispositivo faz parecer que o conteúdo de baixo nível da mídia de armazenamento se comporta como um único arquivo. Você está gravando neste "arquivo" e, portanto, gravando na mídia de armazenamento. Essa filosofia é conhecida como "tudo é um arquivo" e é considerada uma das características definidoras de um sistema Unix.

Jim Paris
fonte
9
Este comando é diferente dd if=debian.iso of=/dev/sdX?
2
@htor, não significativamente, mas ddoferece mais controle sobre os tamanhos dos blocos, o padrão depende da implementação (por exemplo, 1 ou 512 bytes). Com ddvocê, você pode potencialmente escolher um tamanho melhor para o seu dispositivo de bloco, como 4096 bytes.
Mrb 15/09/12
Obrigado Jim. Isso significa que, ao executar este comando, sobrescrevi o MBR com a tabela de partições e a partição FAT no meu flash e preenchi-o com o sistema de arquivos ISO-9660 com seus setores de 2048 bytes e carregador de inicialização em algum lugar? Eu não sei, como ele deve funcionar, porque a especificação de CD inicializável El Torito permite vários modos de ação dessa imagem de CD - emulação de disquete, emulação de disco rígido e nenhuma emulação. Você também poderia explicar, que sentido faz dizer ao dd (se eu usá-lo), qual o tamanho dos blocos que ele deve usar, se o tamanho do bloco é determinado pelo sistema de arquivos (ou seja, eles devem ter 2048 bytes na ISO)
Boris Burkov
2
@Bob Exceto nas unidades de fita, o tamanho do bloco que você passa ddinfluencia o desempenho, mas não os dados que são lidos e gravados. Não há relação entre o ddtamanho do bloco e o tamanho do bloco do CD ou o tamanho do bloco do sistema de arquivos. Alguns megabytes normalmente oferecem o melhor desempenho, embora catpossam ser mais rápidos que dd.
Gilles 'SO- stop be evil'
2
E quanto ao setor de inicialização, o / dev / sdX será inicializado posteriormente como a imagem do CD / DVD?
math