J'ai une clé USB qui est illisible pour une raison quelconque. Je veux en faire une image à des fins de stockage afin que je puisse essayer de récupérer les données de l'image à une date ultérieure.
Comment pourrais-je créer une image aussi identique d'une clé USB?
C'est l'erreur que j'obtiens en utilisant 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:~$
backup
usb-storage
disk-image
oshirowanen
la source
la source
/dev/sdx
pointant vers la clé USB, il y a un problème grave, et je pense qu'il n'y a pas d'outils disponibles pour les utilisateurs normaux, cela fonctionnera. Voir ce lien pour plus de détails, askubuntu.com/questions/144852/… ; N'abandonnez pas tout de suite. Essayez en fonction de la liste des choses qui pourraient permettre à la lecture de fonctionner. Vous pouvez peut-être séparer la clé USB et trouver une carte micro SD, qui fonctionne toujours selon le commentaire de @ ubfan1 (à la réponse liée).Réponses:
dd
il!L'utilisation serait quelque chose comme
sudo dd if=/dev/sdb of=~/USB_image
où / dev / sdb est votre lecteur USB tel que répertorié parsudo 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, il suffit d'inverser le processus:
sudo dd if=~/USB_image of=/dev/sdb
restaure ~ / USB_image sur le périphérique sdb . Assurez-vous simplement que la nouvelle clé USB est aussi grande ou plus grande que la clé d'origine.Vous pouvez également monter le fichier image que vous venez de créer dans un chemin sans avoir besoin de le restaurer d'abord sur un autre lecteur USB avec
mount ~/USB_image /mnt/USB_image -o loop
.la source
fdisk -l
vous ne voyez pas le lecteur USB? Cependant, je peux le voir dans le programme Utilitaire de disque sous le nom / dev / sdd, mais lorsque j'essaie d'utiliser votre commande, elle semble échouer.status='progress'
avecdd
sur Ubuntu, ou déterminer le PID de votredd
commande et lui envoyer unSIGUSR1
signal. Je ne suis pas sûr des autres implémentations, cependant.Utilisez
ddrescue
. Il continuera après les erreurs, oùdd
échouera tout simplement.En outre,
ddrescue
est dans le référentiel. Le 13.04, j'ai tapésudo apt-get install gddrescue
pour installer.Utilisez
sudo fdisk -l
oudmesg
pour déterminer l'emplacement du périphérique, par exemple:,/dev/sdb
puis exécutez une commande telle queil existe de nombreuses options
ddrescue
et vous voudrez peut-être lire lesman
pages. De plus, je ne sais pas pourquoi votre matériel tombe en panne et se videdd
. Un bloc défectueux peut provoquer ladd
fermeture, mais les pannes de courant intermittentes peuvent également le faire.dmesg
peut vous en dire plus sur les pannes matérielles que vous rencontrez.ASSUREZ-VOUS 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 provoquer des problèmes.
Il y a beaucoup de choses qui peuvent mal tourner dans la récupération de données. Postez en arrière si vous avez des problèmes.
testdisk
est un bon utilitaire pour faire de la récupération de données une fois que vous avez une image.Pour plus de clarté, s'agit-il d'un disque dur USB ou d'un périphérique USB (mémoire à l'état solide)?
Les erreurs d'E / S indiquent généralement des dysfonctionnements matériels plutôt que des altérations du système de fichiers.
Essayez également d'obtenir l'analyse des données SMART de l'appareil, si elle est disponible. Cela peut vous dire des choses comme si l'appareil chauffait trop longtemps, allumé depuis longtemps, a de mauvais secteurs, exposés à plus de X non. de Gs etc.
la source
sudo
pourddrescue
, * où dd échouera simplement * n'est pas vraiment vrai car vous pouvez configurerdd
pour ignorer les erreurs de lecture.testdisk
est génial lorsque vous pouvez lire les secteurs de données perdues , pas lorsque le lecteur est mort.gddrescue
contreddrescue
car ilgddrescue
est plus récent et plus capable de faire le travail qui leddrescue
fait.Vous pouvez créer une image d'une clé USB (ou d'un autre appareil) à l'aide de
dd
.Par exemple
Vous pouvez ajouter plus de paramètres pour
dd
optimiser la commande (par exemplebs
).la source
dd
, comme mentionné par une affiche précédente, est la voie à suivre. Cependant, vous souhaiterez qu'il se poursuive en cas d'erreur, vous devriez donc commencer par:La partie importante est la dernière:
conv=sync
indique à dd de remplir tous les blocs qu'il ne peut lire que partiellement avec des zéros, donc l'image résultante peut avoir quelques zéros de trop, mais égalera structurellement le disque feuilleté, moins ses erreurs de lecture.conv=noerror
s'est occupé de ces erreurs de lecture, disant à dd de continuer avec le bloc suivant. À ce stade, la taille du bloc est importante, car si elle est plus grande que nécessaire pour ignorer l'erreur, les données lisibles seront perdues ici. Le Blocksize devrait toujours être un facteur de deux - en cas de doute,512k
devrait faire l'affaire.Je suggérerais alors:
(Me citant en partie d'un article écrit en 2010)
Si vous n'avez pas besoin de rester natif, vous pouvez toujours essayer des outils qui tentent de faciliter quelque peu le processus, tels que ddrescue (package
gddrescue
) et son compagnonddrescueview
( sourceforge ) pour visualiser les erreurs.la source
En ce qui concerne la seconde moitié de votre question "C'est l'erreur que j'obtiens lorsque j'utilise dd": je peux voir quelques possibilités.
~
devant/USB_image
. En d'autres termes, vous essayez de sortir la racine de votre système de fichiers plutôt que dans votre répertoire personnel./dev/sdd
peut ne pas être le bon lecteur. Exécutezsudo fdisk -l
et comparez la taille du lecteur à la taille connue de la clé USB. Par exemple, je sais que c'est ma clé USB car il est proche de 16 Go:Disk /dev/sdf: 15.8 GB, 15805186048 bytes
.la source