cat
pára se encontrar um erro de leitura ou gravação.
Se você estiver preocupado com a possibilidade de haver setores ilegíveis em sua unidade de origem, consulte ferramentas como ddrescue
.
Eu gostaria de clonar um disco grande (um SSD de 500GB, pelo que vale a pena), e estou inclinado a usar cat
, como sugerido por Gilles aqui . Mas o que me deu uma pausa é que eu realmente não sei o que o cat
faz em erros de leitura. Eu sei como dd
se comporta nesses casos, ou seja, o comando
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
não pára para erros de leitura e preenche o erro de leitura com zeros (a opção sync
) para que os dados permaneçam sincronizados. Infelizmente, isso é feito preenchendo-se os zeros no final do bloco a ser gravado, para que um único erro em uma leitura inicial de 512 bytes atrapalhe todos os 64 K de dados (ainda pior com os maiores , tamanhos de bloco mais rápidos).
Estou pensando: posso fazer melhor / diferentemente com cat
? Ou devo apenas passar para o Clonezilla ?
cat
pára se encontrar um erro de leitura ou gravação.
Se você estiver preocupado com a possibilidade de haver setores ilegíveis em sua unidade de origem, consulte ferramentas como ddrescue
.
Eu recomendaria o Clonezilla . É mais seguro porque são checkpoints (perguntas se você quiser continuar)
cat
e dd
e ddrescue
presumem que você sabe exatamente o que fazer e que você verifique novamente antes de pressionar a tecla Enter. 'Eles fazem o que você manda fazer sem qualquer pergunta, mesmo que você diga para limpar as fotos da família'.
Além disso, o Clonezilla é inteligente o suficiente para copiar apenas blocos usados (e pular blocos livres), o que torna a clonagem muito mais rápida.
Concordo com @StevenKitt que ddrescue
é uma boa ferramenta. As páginas de informações contêm um bom tutorial,
info ddrescue