Verificar la integridad de una copy de security dd

Acabo de hacer una copy de security de un disco duro completo (50GB) a través de ssh través de:

 dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img" 

¿Cuál es ahora la mejor manera de verificar la integridad del file image.img , es decir, cómo verificar que todo se haya copydo correctamente?

Si el command finalizó exitosamente, entonces la copy de security es correcta, salvo un error de hardware (que podría afectar igualmente cualquier verificación que pueda realizar). Más tarde puede volverse incorrecto si el hardware está defectuoso, pero la mayoría del hardware de almacenamiento detecta daños.

Aquí hay una advertencia: en una tubería, el caparazón no informa errores del lado izquierdo. (Esto se debe a un escenario bastante común en el que el lado derecho no necesita leer todos los datos, por ejemplo, some_command | head , y el lado izquierdo muere porque ya no se desea su salida.) Así que aquí una lectura el error de dd sería ignorado. En bash, establezca la opción de pipefail para informar errores de todas las partes de la tubería.

Además, ten en count que dd bs=… ignora algunos errores y dd suele ser más lento que las alternativas . Recomiendo no usar dd en absoluto: no tiene beneficios solo copyr un file completo. Contrariamente a lo que podría haber leído en alguna parte, dd no es un command de acceso a disco de bajo nivel con una propiedad especial, no hay absolutamente ninguna magia en dd , la magia está en /dev/hda .

 shopt -s pipefail set -e </dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img" 

No obstante, si desea verificar la copy de security, la mejor manera es tomar una sum de comprobación criptográfica de cada lado y compararlos. Por ejemplo:

 ssh myuser@myhost "sha1sum image.img" & sudo sha1sum /dev/hda 

Verifique que las dos sums de comprobación sean idénticas.

Tenga en count que esto testing si la copy de security y el original son idénticos en el momento de la comprobación. Todo lo que cambie en /dev/hda , incluido el assembly y desassembly de un sistema de files, incluso sin realizar ningún cambio (que actualizará la última date de assembly en muchos filesystems), cambiará la sum de comprobación. Si desea verificar la integridad más tarde, anote la sum de comprobación del disco en el momento de la copy de security en alguna parte.

Como mencionaron Darnir y Giles, lo mejor que se puede hacer es ejecutar hashes criptocharts inmediatamente después de la copy de security antes de que se haya alterado algo en el disco de origen. Sin embargo, si has usado el disco, es probable que los valores hash no coincidan. Incluso cambiar un byte en el disco dará como resultado un hash completamente diferente.

Aunque es mucho less que ideal, puedes ver la image al montarla. En el sistema donde está la image del disco, ejecute lo siguiente (cree /mnt/disk si no existe o nosotros una location alternativa):

 mount -o loop image.img /mnt/disk 

Luego puede navegar en /mnt/disk y ver todos los files. Compruebe los hashes sha1 de los files críticos dentro de la image contra los originales para verificar su integridad.

Use el command qemu-img

 qemu-img check image.img