Compare dos files, mientras anula el tamaño del segundo file

Estoy intentando verificar una copy de security que hice usando el siguiente command:

dd if=/dev/sda of=/dev/sdc2 

/dev/sdc2 una copy de security del contenido de /dev/sda (disco duro interno) en /dev/sdc2 (unidad de copy de security externa, conectada a través de USB), sin embargo, /dev/sdc2 (la partición donde se está /dev/sdc2 /dev/sda ) es un poco más grande que / dev / sda.

No puedo hacer /dev/sdc2 el tamaño de /dev/sda porque el tamaño en bytes de /dev/sda no es divisible por 4096, que es el tamaño del sector en drive /dev/sdc .

Quiero saber si diff (el command Unix) le permitirá asumir que el tamaño de /dev/sdc2 es del tamaño de /dev/sda (solo compare los primeros x bytes, (x es el tamaño de /dev/sda ) de /dev/sdc2 )

El motivo por el que quiero verificar esto es porque, cuando estaba ejecutando dd (y luego diff /dev/sda /dev/sdc2 ), recibí errores en el logging del sistema.

/dev/sdc2 diff /dev/sda /dev/sdc2 y dijo que los dispositivos difieren, probablemente porque /dev/sdc2 es más grande que /dev/sda .

Los errores (que se repetían de vez en cuando, con numbers variables) se veían así:

 ata5.00: exception Emask 0x50 SAct 0x0 SErr 0x280900 action 0x6 frozen ata5.00: irq_stat 0x08000000, interface fatal error ata5: SError: { UnrecovData HostInt 10B8B BadCRC } ata5.00: failed command: READ DMA ata5.00: cmd c8/00:00:e0:57:f9/00:00:00:00:00/e9 tag 4 dma 131072 in res 50/00:00:df:57:f9/00:00:09:00:00/e9 Emask 0x50 (ATA bus error) ata5.00: status: { DRDY } ata5: softreset failed (device not ready) 

La computadora en la que estoy haciendo esto está ejecutando la versión ISO (instalador) de Arch Linux y no está conectada a Internet en este momento (será más adelante). ¿Debería probar una distribución de Linux diferente?

Quizás cmp sea ​​adecuado en este caso:

 SYNOPSIS cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]] DESCRIPTION Compare two files byte by byte. (...) -n, --bytes=LIMIT compare at most LIMIT bytes 

blockdev --getsize64 pasar, como argumento para cmp -n , el tamaño en bytes del dispositivo de origen, que blockdev --getsize64 puede calcular:

 cmp --bytes=$(blockdev --getsize64 /dev/sda) /dev/sda /dev/sdc2 

Sin embargo, tenga en count que los posts de error que pegó parecen indicar errores de lectura reales, por lo que es probable que tenga un problema real con sus datos, no solo uno relacionado con la forma en que funciona diff .

Un poco tarde, pero vbindiff puede ayudar aquí. Proporciona una vista hexadecimal de pantalla dividida de ambos files, resaltando cualquier diferencia. Con Enter puede Move to the next difference between the files , que, en el caso de una partición clonada, debe estar al final del file fuente más corto. Por lo tanto, encontrará corrupción de datos, aunque no tenga indicador de progreso y podría llevar horas actualizar la pantalla después de activar la comparación.

Capturas de pantalla: https://www.google.com/search?q=vbindiff&tbm=isch