Eu usaria o comando
cmp /dev/hda /dev/hdb
ele irá parar no primeiro byte diferente, escrevendo seu offset, ou em EOF no menor.
Existe algum utilitário (ou alguma mágica de shell) que me permita comparar dois dispositivos de bloco?
Detalhes: Tenho um dispositivo RAID grande (0,5 TB) que copiei para um dispositivo SATA um pouco maior usando dd. O dispositivo tem várias partições, mas eu copio do dispositivo 'pai' e não dos nós do dispositivo particionado (por exemplo, eu copio / dev / hda e não / dev / hda1 por exemplo).
Gostaria de verificar se o backup está correto / correto.
Pensei em executar o md5sum em cada dispositivo, no entanto, isso não me dará um resultado preciso, já que o segundo dispositivo é um pouco maior que o primeiro e, portanto, os bytes extras alteram o hash.
Dependendo de quão completo as unidades são, pode ser mais rápido montar os sistemas de arquivos e fazer
diff -qr /mnt/root1 /mnt/root2
Caso contrário, eu diria algo assim:
diff -q <(dd bs=1M count=500K if=/dev/sda) <(dd bs=1M count=500K if=/dev/sdb)
Obviamente, calcule o quanto você precisa fazer com que bs
e count
parem (ou antes, se for muito mais conveniente) no final da unidade menor.
Ou, graças ao comentário da enzotib, parece que você pode usar cmp
, mas precisará do sinal -n
para limitar o número de bytes à menor das duas unidades.
cmp /dev/sda /dev/sdb -n 500GB
Você está procurando por software de diferenciação binária
rdiff
é projetado para backup e transmissão em rede, veja em rdiff-backup e duplicidade para proposição de backup
xdelta3
é um diff binário de código aberto, ferramentas de compactação diferencial, compactação delta VCDIFF (RFC 3284).
bsdiff
é também!! Com fome de memória, não é adequado para dispositivos de bloco.
Você pode comparar dois dispositivos de blocos de tamanho diferente usando md5sum
da seguinte forma:
(supondo que o dispositivo menor seja /dev/sda
)
# md5sum /dev/sda && head -c $(blockdev --getsize64 /dev/sda) /dev/sdb | md5sum
Considere a execução de fsck
no backup. Talvez seja necessário executar alguns truques com losetup
para obter dispositivos de loopback definidos em partições incorporadas no backup, mas se a verificação do arquivo indicar que a estrutura do arquivo é consistente, os dados em si provavelmente serão bons.
Se você quiser uma soma de verificação completa, pode usar dispositivos de loopback com deslocamentos para examinar as 'partições' internas do backup e md5sum separadamente, mas uma fsck
forçada pode lhe dar uma ideia básica muito mais rápida do que byte byte compara ou cálculos de checksum.
Tags dd block-device hard-disk