Je viens de faire une sauvegarde d'un disque dur entier (50 Go) ssh
via:
dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Quelle est maintenant la meilleure façon de vérifier l'intégrité du fichier image.img
, c'est-à-dire comment vérifier que tout est copié correctement?
Réponses:
Si la commande s'est terminée avec succès, la sauvegarde est correcte, sauf erreur matérielle (qui pourrait également affecter toute vérification que vous pourriez effectuer). Il peut devenir incorrect ultérieurement si le matériel est défectueux, mais la plupart du matériel de stockage détecte la corruption.
Il y a une mise en garde ici: dans un pipeline, le shell ne signale pas les erreurs du côté gauche. (Ceci est dû à un scénario assez commun où la droite n'a pas besoin de lire toutes les données, par exemple
some_command | head
, et les matrices de gauche parce que sa sortie ne se voulait plus.) Voici donc une erreur de lecture dedd
Plût Etre ignoré. Dans bash, définissez l'pipefail
option pour signaler les erreurs de toutes les parties du pipeline.Attention également, qui
dd bs=…
ignore certaines erreurs etdd
est souvent plus lent que les alternatives . Je recommande de ne pas utiliserdd
du tout: cela n'a aucun avantage de simplement copier un fichier entier. Contrairement à ce que vous avez pu lire quelque part, cedd
n'est pas une commande d'accès au disque de bas niveau avec une propriété spéciale, il n'y a absolument aucune magiedd
, la magie est là/dev/hda
.Néanmoins, si vous souhaitez vérifier la sauvegarde, le meilleur moyen est de prendre une somme de contrôle cryptographique de chaque côté et de les comparer. Par exemple:
Vérifiez que les deux sommes de contrôle sont identiques.
Notez que cela teste si la sauvegarde et l'original sont identiques au moment de la vérification. Tout ce que vous modifiez
/dev/hda
, y compris le montage et le démontage d'un système de fichiers même sans apporter de modification (qui mettra à jour une dernière date de montage sur de nombreux systèmes de fichiers), changera la somme de contrôle. Si vous souhaitez vérifier l'intégrité ultérieurement, notez quelque part la somme de contrôle du disque au moment de la sauvegarde.la source
/dev/hda
a changé depuis la mise en retour a été fait hachages ne correspondront pas.Comme Darnir & Giles l'a mentionné, la meilleure chose à faire est d'exécuter des hachages cryptographiques immédiatement après la sauvegarde avant que quoi que ce soit n'ait été modifié sur votre disque source. Si, cependant, vous avez utilisé le disque depuis lors, les hachages ne correspondront probablement pas. Même la modification d'un octet sur le disque entraînera un hachage complètement différent.
Bien qu'elle soit loin d'être idéale, vous pouvez vérifier l'image en la montant. Sur le système où se trouve l'image disque, exécutez ce qui suit (créez
/mnt/disk
s'il n'existe pas ou utilisez- nous un autre emplacement):Vous pouvez ensuite parcourir
/mnt/disk
et voir tous les fichiers. Vérifiez les hachages sha1 des fichiers critiques à l'intérieur de l'image par rapport aux originaux pour vérifier leur intégrité.la source
Utilisez la commande qemu-img
la source