Eu tive alguns problemas para instalar o Linux em um determinado netbook e tive que reiniciá-lo do zero várias vezes. Re-digitando os mesmos comandos para configurar a rede e fazer o bootstrap, a instalação era onerosa, então tentei usar um pendrive, mas não consegui montá-lo. O sistema viu o dispositivo de bloco, mas não conseguiu entender o vfat. No final, usei o dd para escrever o arquivo tar diretamente no dispositivo.
tar -c stuff-i-needed | sudo dd of=/dev/disk3
Demorou apenas um segundo. Então eu liguei o stick USB no sistema alvo, apontei diretamente para o dispositivo de bloco ...
dd if=/dev/sdc | tar -x
e logo os arquivos que eu precisava apareceram. Mas, apesar de todos os arquivos no tarball estarem completos, o tar -x continuou funcionando. E correndo. E correndo.
O disco USB tem uma capacidade de 512 GB. Então, suponho que isso explica por que o tar continuou lendo, em um nível alto. Mas o tar não tem algum tipo de mecanismo para saber se o fim do tarfile foi alcançado? Por que o tar continuou lendo do disco e o que ele faria com todos esses dados sem sentido?
Tags tar block-device