A soma de verificação do arquivo de imagem do HDD não corresponde à soma de verificação do dispositivo

4

Eu tenho uma imagem HDD 660297728 byte com hash MD5 f5a9d398e974617108d26c1654fe7bcb :

root@T42# ls -l image
-rw-rw-r-- 1 noc noc 660297728 Sep 29 19:00 image
root@T42# md5sum image
f5a9d398e974617108d26c1654fe7bcb  image

Agora, se eu dd deste arquivo de imagem for /dev/sdb disk e verificar o hash MD5 do disco, ele será diferente do hash MD5 do arquivo de imagem:

root@T42# dd if=image of=/dev/sdb bs=512
1289644+0 records in
1289644+0 records out
660297728 bytes (660 MB) copied, 1006.38 s, 656 kB/s
root@T42# md5sum /dev/sdb
f6152942a228a21a48c731f143600999  /dev/sdb

O que pode causar esse tipo de comportamento?

    
por Martin 30.09.2015 / 12:43

3 respostas

6

/dev/sdb é exatamente 660297728 bytes grandes? (%código%). Se não, a soma de verificação seria naturalmente diferente. Use blockdev --getsize64 /dev/sdb para descobrir onde as diferenças estão em detalhes. Se ele diz cmp image /dev/sdb , é idêntico.

    
por 30.09.2015 / 13:01
1

Talvez o seu disco em / dev / sdb tenha sido modificado por udisks ou outro processo do seu sistema operacional (montado automaticamente, por exemplo).

Editar: Talvez a imagem seja a imagem de uma partição e não de todo o disco rígido.

Você pode comparar seus discos com fdisk:

fidsk -l /dev/sdb

e

fdisk -l /path/to/image

Veja o número de blocos (e seus tamanhos), talvez ele corresponda a uma única partição.

Repita o md5sum na partição em questão em / dev / sdb: md5sum / dev / sdbx (x é o número da partição)

e compare com o md5 da sua imagem

Editar 2:

A sua HDD de origem tem um tamanho de 660297728 bytes (660 MB) , por isso, quando tiver feito o dd, foi:

dd if=/dev/sda of=/path/to/image

Assim, a imagem tem o mesmo tamanho do disco rígido inteiro: 660297728 bytes

Se você fizer um md5sum do HDD de origem e da imagem, ele deve ser o mesmo.

Quando você copia a imagem para o novo HD, você faz:

dd if=image of=/dev/sdb

Mas o sdb tem um tamanho de 1 TB, então:

  • o primeiro 660297728 bytes foi escrito por dd
  • o próximo 440 MB não foi gravado, os dados são os mesmos antes de dd talvez alguns zeros ou outros.

Se você fizer um md5sum em todo o sdb, você incluirá o 440 MB que não foi escrito e o resultado não será o mesmo do md5sum da imagem.

Se você quiser fazer o md5sum do novo disco, faça:

dd if=/dev/sdb bs=512 count=660297728 | md5sum.

O resultado deve ser o mesmo.

    
por 30.09.2015 / 15:01
0

O comando acima ( dd if = / dev / sdb bs = 512 count = 660297728 | md5sum ) não está correto; o parâmetro count não é bytes, é blocos . O OP mostra uma contagem de blocos de 1289644, então o comando correto é:

dd if = / dev / sdb bs = contagem de 512 = 1289644 | md5sum

    
por 19.01.2018 / 03:27

Tags