[gull] Truc et astuces: Ecrire des données ET leur somme de contrôle, simultanément.

felix felix at f-hauri.ch
Sat Apr 12 19:31:20 CEST 2014


Bonjour,

Il peut être parfois utile de vérifier les données que l'on écrit sur un disque,
mais à quoi bon vérifier la somme *aprés* avoir écrit les données... Qui dit
que rien n'a été corrompu *pendant* l'écriture.

De plus, s'il s'agit d'une sauvegarde en urgence d'un (autre) disque en fin de vie,
on ne peut pas trop se permettre plusieurs lectures.

C'est ce qui m'a ammené à cette petite routine:

writeWithCheck() {
    local WWC_CMD=${2:-sha1sum} WWC_NAME="${1}"
    tee "${WWC_NAME}" |
        ${WWC_CMD} -b |
        sed "s/-$/$WWC_NAME/" >> ${WWC_CMD}s.txt
}

Ce qui me permet de sauvegarder un disque dur:

 # dev=/dev/sdX
 # mkdir BackupName... && cd $_
 # dd if=$dev count=1 | gzip | writeWithCheck mbr.gz
 # sfdisk -d | writeWithCheck sfdisk.out
 # partclone.ntfs -c -s ${dev}1 | xz | writeWithCheck ${dev##*/}1.ntfs.xz
 # partclone.extfs -c -s ${dev}3 | xz | writeWithCheck ${dev##*/}3.extfs.xz
 # mount ${dev}5 /mnt
 # tar -cplC /mnt . | xz | writeWithCheck ${dev##*/}5.tar.xz
 # umount /mnt

Et de se trouver au final avec un fichier ``sha1sums.txt'' qui peut
être utilisé pour vérifier l'intégrité des données écrites:

 # sha1sum -c <sha1sums.txt
 mbr.gz: OK
 sfdisk.out: OK
 sdX1.ntfs.xz: OK
 sdX3.extfs.xz: OK
 sdX5.tar.xz: OK

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list