J'ai une clé USB qui est illisible pour une raison quelconque. Je souhaite créer une image à des fins de stockage afin de pouvoir récupérer les données de l'image à une date ultérieure.
Comment pourrais-je créer une image aussi identique qu'une clé USB?
C'est l'erreur que j'obtiens lorsque j'utilise dd
:
oshirowanen@desktop:~$ Sudo dd if=/dev/sdd of=/USB_image
[Sudo] password for oshirowanen:
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$
dd
it!
L’utilisation serait quelque chose comme Sudo dd if=/dev/sdb of=~/USB_image
où / dev/sdb est votre lecteur USB, comme indiqué par Sudo fdisk -l
et ~/USB_image est le fichier image où la copie sera faite (un chemin où le fichier image sera créé).
Pour restaurer l'image sur un autre lecteur USB, inversez simplement le processus: Sudo dd if=~/USB_image of=/dev/sdb
restaurera ~/USB_image sur le périphérique sdb. Assurez-vous simplement que le nouveau lecteur USB est aussi grand ou plus gros que celui d'origine.
Vous pouvez également monter le fichier image que vous venez de créer dans un chemin sans avoir à le restaurer au préalable sur un autre lecteur USB avec mount ~/USB_image /mnt/USB_image -o loop
.
Utilisez ddrescue
. Il continuera après les erreurs, où dd
échouera simplement.
De plus, ddrescue
est dans le dépôt. Le 13.04, j’ai tapé Sudo apt-get install gddrescue
à installer.
Utilisez Sudo fdisk -l
ou dmesg
pour déterminer l’emplacement du périphérique, par exemple: /dev/sdb
, puis exécutez une commande telle que
ddrescue /dev/sdb /home/user/desktop/bkp.img
il existe de nombreuses options pour ddrescue
, et vous voudrez peut-être lire les pages man
. De plus, je ne suis pas sûr de la raison pour laquelle votre matériel est en panne et que vous déchargez dd
. Un seul bloc défectueux pourrait provoquer la fermeture de dd
, mais il pourrait en aller de même en cas de coupure de courant intermittente. dmesg
peut vous en dire plus sur les défaillances matérielles que vous pouvez rencontrer.
VÉRIFIEZ que l'appareil n'est pas monté! lorsque vous essayez de récupérer des données, de créer des images, etc. Cela peut causer des problèmes.
Beaucoup de problèmes peuvent survenir lors de la récupération de données. Retournez si vous avez des problèmes. testdisk
est un utilitaire Nice permettant de récupérer des données une fois que vous avez une image.
Juste pour plus de clarté, s’agit-il d’un disque dur USB ou d’un périphérique USB (Solid State Memory)?
Les erreurs d'E/S indiquent généralement des dysfonctionnements matériels plutôt que des corruptions du système de fichiers.
Essayez également d'obtenir l'analyse de données SMART du périphérique, si celle-ci est disponible. Cela peut vous indiquer des choses telles que, par exemple, si l’appareil est surchauffé, allumé depuis longtemps, présente des secteurs défectueux, exposés à plus de X non. de Gs etc.
En ce qui concerne la seconde partie de votre question "C’est l’erreur que j’obtiens lors de l’utilisation de dd": je vois quelques possibilités.
~
devant /USB_image
. En d’autres termes, vous essayez d’afficher la racine de votre système de fichiers plutôt que dans votre répertoire personnel./dev/sdd
n'est peut-être pas le bon lecteur. Exécutez Sudo fdisk -l
et comparez la taille du lecteur à la taille connue de la clé USB. Par exemple, je sais que ceci est ma clé USB car elle est proche de 16 Go: Disk /dev/sdf: 15.8 GB, 15805186048 bytes
.dd
, comme mentionné par une précédente affiche, est la méthode la plus naturelle. Cependant, vous voudrez qu'il continue après les erreurs, vous devriez donc commencer par:
dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync
La partie la plus importante est la dernière: conv=sync
indique à dd de remplir tous les blocs qu’il ne pouvait lire que partiellement avec des zéros, de sorte que l’image résultante peut comporter quelques zéros de trop, mais sera structurellement égale au disque flaky, moins les erreurs de lecture. conv=noerror
s'est occupé de ces erreurs de lecture en demandant à dd de continuer avec le bloc suivant. À ce stade, la taille des blocs est importante, car si elle est plus grande que nécessaire pour ignorer l'erreur, les données lisibles seront perdues ici. La taille de bloc doit toujours être un facteur de deux - en cas de doute, 512k
devrait faire l'affaire.
Ensuite, je suggérerais de:
(Me citant partiellement un article écrit en 2010)
Si vous n'avez pas besoin de rester natif, vous pouvez toujours essayer des outils qui tentent d'alléger quelque peu le processus, tels que ddrescue (package gddrescue
) et son compagnon ddrescueview
( sourceforge ) pour visualiser les erreurs.
Vous pouvez créer une image d'une clé USB (ou d'un autre périphérique) en utilisant dd
.
Par exemple.
dd if=<usb device> of=usb.img
Vous pouvez ajouter plus de paramètres à dd
pour optimiser la commande (par exemple, bs
).