Je viens de sauvegarder la restauration pour Windows 8.1 sur une clé USB; maintenant, j'ai créé le niveau faible copie de celui-ci sur mon disque dur, en exécutant la commande suivante:
sudo dd if=/dev/sdf of=/disk2/Archive/windows8.1-restore.img bs=4M oflag=direct
Je voulais vérifier que ma commande 'dd' était ok, donc je l'ai réexécutée deux fois, en spécifiant les deux bs=8M
et bs=16M
; J'ai vérifié la taille et c'est exactement la même chose, mais md5sum donne une sortie différente pour les trois fichiers:
c38a2b07b3d473d3f1876331edc2647b windows8.1-restore.img.4M 568e382844431eef63d4ba6dc4c2c5ac windows8.1-restore.img.8M 568e382844431eef63d4ba6dc4c2c5ac windows8.1-restore.img.16M
Je crois avoir non monté la clé USB la deuxième et troisième fois.
Devrais-je m'inquiéter de quoi que ce soit?
modifier
La taille totale du fichier est 31024349184
octets dans tous les cas, ma compréhension de bs=xxx
est juste de contrôler la vitesse dans le cas où on veut déverser la clé USB / lecteur entier.
dd
avecbs=4M
?dd
sont connus pour tuer les performances car il oblige beaucoup plus d’appels en lecture et en écriture qu’il ne serait autrement nécessaire. Je pense que gronostaj est correct, votre problème est que vous avez dd'd le disque avec le système de fichiers monté. En supposant que vous n’ayez pas remonté le système de fichiers depuis, vous devriez pouvoir le vérifier en réexécutant votre commande initiale dd; vous devriez également voir une somme MD5 identique à partir de cette invocation.Réponses:
L'écriture de petites quantités de données sur un lecteur est lente, aussi les tampons système écrivent-ils pour les valider tous en même temps. Lorsque la mémoire tampon contient suffisamment de données pour une opération d'écriture efficace ou lorsque certains processus utilisent
sync
appel système , le tampon est vidé sur le périphérique.dd
effectue une copie de bas niveau, c.-à-d. il lit les données physiquement présentes sur un périphérique. Il ne prend pas en compte les tampons.Si le lecteur a été monté lors de l'exécution
dd bs=4M
, alors il est possible que certaines écritures aient déjà été mises en mémoire tampon, mais non validées. Vous avez vidé le lecteur sans les modifications mises en mémoire tampon.umount
appelssync
en interne pour assurer l’intégrité des données. Les périphériques non montés ne sont généralement pas utilisés, à moins que vous ne demandiez explicitement à un processus de le faire. Il était donc peu probable que le lecteur change après le démontage.Puis tu as couru
dd
deux fois sur le lecteur sans le monter entre les deux. C'est pourquoibs=8M
etbs=16M
les appels ont produit les mêmes résultats.Drive a été modifié entre
bs=4M
etbs=8M
appelle, cependant, donc le premier vidage est différent.bs=
n'a pas d'importance, appelerumount
fait.Vous devez toujours démonter le périphérique avant d'utiliser
dd
dessus, sinon un autre processus peut modifier son contenu tout endd
fait son travail et brise l'intégrité des fichiers.la source
dd
. Je suppose que je garderai le fichier pris avec l'appareil non monté . Effrayant!