Existe-t-il un utilitaire (ou un peu de magie du shell) qui me permet de comparer deux périphériques bloc?
Détails: J'ai un grand périphérique RAID (0,5 To) que j'ai sauvegardé sur un périphérique SATA légèrement plus grand en utilisant dd. Le périphérique comporte plusieurs partitions, mais je copie depuis le périphérique «parent» et non les nœuds de périphériques partitionnés (par exemple, je copie / dev / hda et non / dev / hda1 par exemple).
Je voudrais vérifier que la sauvegarde est bonne / correcte.
J'ai pensé à exécuter md5sum sur chaque appareil, mais cela ne me donnera pas un résultat précis car le deuxième appareil est légèrement plus grand que le premier et donc les octets supplémentaires changeront le hachage.
la source
info cmp
: "La commande 'cmp' compare deux fichiers, et s'ils diffèrent, indique le premier octet et le numéro de ligne où ils diffèrent."--bytes=LIMIT
option, en définissant laLIMIT
valeur sur la taille en octets du plus petit périphérique pour qu'il s'arrête à la fin du plus petit lecteur (ou de la limite de partition) sans avoir decmp
sortie avec un état différent de zéro.Selon le niveau de remplissage des disques, il peut être plus rapide de monter les systèmes de fichiers et de
Sinon, je dirais quelque chose comme ceci:
Évidemment, déterminez à quel point vous devez faire de la taille
bs
etcount
arrêtez-vous (ou juste avant si c'est beaucoup plus pratique) à la fin du plus petit lecteur.Ou, grâce au commentaire d'enzotib, il semble que vous pourriez utiliser
cmp
, mais vous aurez besoin de l'-n
indicateur pour limiter le nombre d'octets au plus court des deux disques.la source
diff
sous- coquilles ne liront pas l'intégralité de l'appareil avant de l'écrire.dd
écrit desbs
octets immédiatement après l'avoir lu (ou traité si spécifié, pas ici), et ils écrivent dansfifo
s, qui bloquent jusqu'à ce qu'ils soient lus.Vous recherchez un logiciel de diff binaire
rdiff
est conçu pour la sauvegarde et la transmission réseau, regardez rdiff-backup et duplicity pour la sauvegarde propuse
xdelta3
est un diff binaire open source, des outils de compression différentielle, une compression delta VCDIFF (RFC 3284).
bsdiff l'
est aussi !! faim de mémoire, ne convient pas aux périphériques bloc.
la source
Il existe un utilitaire appelé bsdiff , qui fait exactement ce genre de chose. Il le fait très rapidement et il est capable de générer un patch binaire, si vous en avez besoin.
Voir ce post pour quelques explications à ce sujet.
la source
bsdiff
Le travail est plus complexe que de simplement comparer deux fichiers, donc je doute qu'il puisse être plus rapide que le plus simplecmp
.Vous pouvez comparer deux blocs de taille différente en utilisant
md5sum
comme ceci:(en supposant que le plus petit appareil est
/dev/sda
)la source
Pensez à exécuter
fsck
sur la sauvegarde. Vous devrez peut-être jouer à quelques astuceslosetup
pour obtenir des périphériques de bouclage sur des partitions intégrées dans la sauvegarde, mais si la vérification du fichier indique que la structure du fichier est cohérente, les données elles-mêmes sont probablement bonnes.Si vous voulez une somme de contrôle complète, vous pouvez utiliser des périphériques de bouclage avec décalages pour examiner séparément les `` partitions '' internes de la sauvegarde et de la somme md5, mais un forcé
fsck
peut vous donner une idée de base beaucoup plus rapide que l'octet pour les comparaisons d'octets ou les calculs de somme de contrôle.la source