web-dev-qa-db-fra.com

Comment créer une image un peu identique d'une clé USB?

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:~$ 
19
oshirowanen

dd it!

L’utilisation serait quelque chose comme Sudo dd if=/dev/sdb of=~/USB_image/ 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.

39
Bruno Pereira

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.

6
j0h

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.

  1. Notez la différence de commande que vous avez saisie par rapport à la réponse acceptée. il vous manque un ~ 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.
  2. /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.
2
MDMower

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:

  • stocker une copie non modifiée de cette image dans un endroit sûr
  • fsck une copie de l'image disque
  • monter l'image disque
  • vérifiez vos fichiers - ils sont lisibles sans problème maintenant, mais certains peuvent être manquants ou tronqués
  • Si l'appareil lui-même ne peut pas être lu du tout, vous risquez de ne pas avoir de chance. De plus, si le périphérique contient un logiciel propriétaire, il peut être configuré pour renvoyer les erreurs de lecture lors de l'accès dans les premiers blocs.

(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.

2
Tatjana Heuser

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).

2
Uwe Plonus