Acabei de fazer um backup de um disco rígido inteiro (50 GB) ssh
via:
dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Qual é agora a melhor maneira de verificar a integridade do arquivo image.img
, ou seja, como verificar se tudo foi copiado corretamente?
Respostas:
Se o comando foi finalizado com êxito, o backup está correto, exceto uma falha de hardware (que poderia afetar igualmente qualquer verificação que você possa executar). Posteriormente, poderá ficar incorreto se o hardware estiver com defeito, mas a maioria dos hardwares de armazenamento detecta corrupção.
Há uma ressalva aqui: em um pipeline, o shell não relata erros do lado esquerdo. (Isso ocorre devido a um cenário bastante comum, no qual o lado direito não precisa ler todos os dados, por exemplo
some_command | head
, e o lado esquerdo morre porque sua saída não é mais desejada.) Portanto, aqui um erro de leituradd
seria ser ignorado. No bash, defina apipefail
opção para relatar erros de todas as partes do pipeline.Além disso, cuidado com isso
dd bs=…
ignora alguns erros edd
geralmente é mais lento que as alternativas . Eu recomendo não usardd
nada: não há benefícios em copiar apenas um arquivo inteiro. Ao contrário do que você pode ter lido em algum lugar,dd
não há um comando de acesso ao disco de baixo nível com propriedades especiais, não há absolutamente nenhuma mágicadd
, a mágica está/dev/hda
.No entanto, se você deseja verificar o backup, a melhor maneira é pegar uma soma de verificação criptográfica de cada lado e compará-las. Por exemplo:
Verifique se as duas somas de verificação são idênticas.
Observe que isso testa se o backup e o original são idênticos no momento da verificação. Qualquer coisa que você altere
/dev/hda
, incluindo montar e desmontar um sistema de arquivos, mesmo sem fazer nenhuma alteração (que atualizará a última data de montagem em muitos sistemas de arquivos), alterará a soma de verificação. Se você deseja verificar a integridade posteriormente, anote a soma de verificação do disco no momento do backup em algum lugar.fonte
/dev/hda
mudou desde o backup foi feito os hashes não irá corresponder.Como o Darnir & Giles mencionou, a melhor coisa a fazer é executar hashes criptográficos imediatamente após o backup antes que algo seja alterado no disco de origem. Se, no entanto, você tiver usado o disco desde então, os hashes provavelmente não serão correspondentes. Mesmo alterar um byte no disco resultará em um hash completamente diferente.
Embora seja muito abaixo do ideal, você pode verificar a imagem montando-a. No sistema em que a imagem do disco está, execute o seguinte (crie
/mnt/disk
se não existir ou use um local alternativo):Você pode navegar
/mnt/disk
e ver todos os arquivos. Verifique os hashes sha1 dos arquivos críticos dentro da imagem em relação aos originais para verificar sua integridade.fonte
Use o comando qemu-img
fonte