Se il comando è terminato correttamente, il backup è corretto, salvo un errore hardware (che potrebbe ugualmente influenzare qualsiasi verifica che potresti eseguire). In seguito potrebbe diventare errato se l'hardware è difettoso, ma la maggior parte dell'hardware di archiviazione rileva la corruzione.
C'è un avvertimento qui: in una pipeline, la shell non segnala errori dal lato sinistro. (Questo è causa di uno scenario abbastanza comune in cui il lato destro non ha bisogno di leggere tutti i dati, ad esempio some_command | head
, e gli stampi lato sinistro perché la sua uscita non è più voluto.) Quindi, ecco un errore di lettura da dd
Would essere ignorato. In bash, imposta l' pipefail
opzione per segnalare errori da tutte le parti della pipeline.
Inoltre, fai attenzione che dd bs=…
ignora alcuni errori ed dd
è spesso più lento delle alternative . Consiglio di non usarlo dd
affatto: non ha alcun vantaggio nel copiare un intero file. Contrariamente a quanto potresti aver letto da qualche parte, dd
non è un comando di accesso al disco di basso livello con proprietà speciali, non c'è assolutamente magia in dd
, la magia è dentro /dev/hda
.
shopt -s pipefail
set -e
</dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Tuttavia, se si desidera verificare il backup, il modo migliore è prendere un checksum crittografico su ciascun lato e confrontarli. Per esempio:
ssh myuser@myhost "sha1sum image.img" &
sudo sha1sum /dev/hda
Verificare che i due checksum siano identici.
Si noti che ciò verifica se il backup e l'originale sono identici al momento del controllo. Qualunque cosa tu cambi /dev/hda
, incluso il montaggio e lo smontaggio di un filesystem anche senza apportare modifiche (che aggiornerà l'ultima data di montaggio su molti filesystem), cambierà il checksum. Se si desidera verificare l'integrità in un secondo momento, annotare da qualche parte il checksum del disco al momento del backup.