web-dev-qa-db-fra.com

Accidentellement fait dd / dev / sda

J'ai écrit une image ISO sur mon disque dur à l'aide de Sudo dd if=image.iso of=/dev/sda. Je voulais dire /dev/sdc, et maintenant exécuter Sudo fdisk -l renvoie une seule partition sur/dev/sda alors qu'il est censé y en avoir 6. Est-il possible de récupérer mes données?

Je n'ai pas encore arrêté (redémarré) mon ordinateur.

34
Baaing Cow

Comme votre ordinateur est toujours allumé, vous avez de bonnes chances de sauver des choses.

Tout d'abord, sysfsexpose la vue en mémoire du noyau des tables de partition. Pour le moment, votre noyau n'a pas relu la table du disque et il se souvient de votre partitionnement. Dans /sys/block/sda/, il devrait y avoir un répertoire pour chaque partition. Chacun de ces sous-répertoires contient un fichier startet un fichier sizename__, qui représentent l'emplacement et la taille de la partition, en secteurs. Exécutez fdiskname__, puis recréez chaque partition (dans l’ordre!) Avec les informations de son répertoire sysfsname__. Notez que vous devrez également créer une nouvelle table de partitions. Assurez-vous que votre nouvelle table de partition est identique à la précédente. Vous pouvez vérifier ceci dans /sys/block/sda. Si vous voyez sda1 jusqu'à sda7 alors que vous ne disposez que de 6 partitions, vous aviez probablement un MBR et sinon, il s'agissait probablement d'un GPT. Vous devez également définir des indicateurs et des types pour ces partitions. Regardez /etc/fstab et essayez de glaner des informations sur les types de partitions que vous avez, puis vérifiez sur Wikipedia pour les convertir en codes pour votre schéma de partitionnement.

Étant donné que vous semblez pouvoir utiliser votre système de fichiers, il est probable que votre ddn’a pas pu en écraser la totalité, car la plupart des éléments importants d’un système de fichiers se trouvent au premier plan. Vérifiez /etc/fstab pour voir quelles partitions correspondent à quelle partie de votre système, puis utilisez la quantité de données ddcopiée pour obtenir une estimation de la quantité que vous avez utilisée. Si vous n'avez écrasé qu'une partie d'un système de fichiers, un bon fsckpourrait être capable de le réparer un peu (mais vous avez perdu une bonne quantité de données).

Très probablement, vous avez remplacé /boot. Vous devrez réinstaller votre noyau (avec aptitudename__) et réinstaller GRUB2 (avec grub-install) (dont les premier et deuxième étages ont été détruits). GRUB2 est configuré avec des fichiers dans /etc, vous n'avez donc pas besoin de recréer manuellement.

65
HTNW

Désolé de lire à propos de votre malchance

Je suppose que vous n’avez aucune sauvegarde en cours, et je suis désolé de lire votre mauvaise chance en utilisant

Sudo dd if=image.iso of=/dev/sdx

où vous avez utilisé la lettre de lecteur x = a pour écraser le début de votre disque dur sur lequel vous avez stocké de nombreuses données utiles.

Vous n'êtes pas la première personne et je crains que ce ne soit pas la dernière personne touchée par ce problème. dd est recommandé sur de nombreux sites Web. C'est une méthode puissante mais dangereuse, car elle fait ce que vous lui dites de se passer de questions. Pour cette raison, il est souvent surnommé "Destructeur de données".

@marcelm commente que ce surnom est injuste. Il a raison de dire que écrire directement dans un fichier de périphérique en tant que root est à l'origine du risque . Soyez donc conscient du fait que vous pouvez facilement écraser un lecteur et détruire des données importantes en écrivant dans le fichier de périphérique correspondant /dev/sdx. (Des outils plus sûrs sont listés à la fin de cette réponse.)

Récupérer la table de partition, les systèmes de fichiers et/ou le contenu du fichier

  • Faites le moins possible avec le lecteur et surtout, n'y écrivez rien, car cela pourrait aggraver la situation en écrasant les données, qu'il est encore possible de récupérer.

  • Si vos données sont précieuses, vous devriez travailler sur une copie clonée et non sur le lecteur d'origine (partiellement écrasé). Voir ce lien, faites défiler jusqu'à "Réparation avancée d'une table de partition, d'un système de fichiers et/ou de la récupération de fichiers".

    Réparer la table de partition et le système de fichiers d'une clé USB

  • Si vous disposiez d'une table de partition GUID, GPT, une sauvegarde de la table de partition se trouve à la fin du lecteur /dev/sda et vous pourrez peut-être restaurer la table de partition principale à partir de cette table de sauvegarde à l'aide de l'outil. gdisk. Voir le manuel man gdisk pour plus de détails.

  • Vous pourrez peut-être restaurer la table de partition et les systèmes de fichiers en utilisant Testdisk à partir de

    http://cgsecurity.org

    Lisez les instructions sur le site Web de CGSecurity ainsi que le lien fourni par @ElderGeek, Les partitions ont disparu après une coupure de courant lors de l'installation

  • Vous pouvez également réussir à restaurer la table de partition et les systèmes de fichiers en utilisant gpart/gparted selon le lien fourni par @CSM,

    HOWTO: Restaurer les partitions perdues dans une table de partition supprimée ou corrompue

  • PhotoRec : si vous ne parvenez pas à récupérer la table des partitions et les systèmes de fichiers, vous pouvez toujours récupérer certaines données de fichier. Les fichiers en tête de réseau, peut-être 1 à 1,5 Go, sont écrasés et perdus, mais les fichiers situés derrière cette partie du lecteur sont toujours présents. PhotoRec de http://cgsecurity.org est un outil qui permet de récupérer des données "depuis la surface du disque" sans système de fichiers. Les données typiques au début des types de fichiers communs sont utilisées pour l'identification.

    Le lien suivant fournit des détails sur PhotoRec,

    https://www.cgsecurity.org/wiki/PhotoRec

    Vous devez enregistrer les fichiers sur une partition dans un lecteur séparé.

    Il n’est pas possible de récupérer la structure de répertoires et les noms de fichiers (et non les autorisations et les droits de propriété). Il existe des problèmes de fragmentation des fichiers, mais de nombreux fichiers peuvent être récupérés par PhotoRec (non seulement photos, ainsi que de nombreux autres types de fichiers courants). Mais, et c’est un gros mais, c’est beaucoup de travail difficile de parcourir la quantité énorme de fichiers non triés pour identifier les fichiers vraiment importants, que vous devez renommer en noms de fichiers significatifs.

Des outils plus sûrs pour créer des lecteurs de démarrage USB avec Ubuntu

À l'avenir, utilisez un outil qui vous aide à identifier et à sélectionner le bon périphérique cible et qui possède un dernier point de contrôle, afin de pouvoir vérifier que vous allez cloner à partir du fichier iso vers le périphérique cible correct, par exemple

  • Dans Ubuntu: le créateur de disque de démarrage Ubuntu (dans Ubuntu 16.04 LTS et les versions plus récentes),
  • Sous Linux:

    • Disques alias gnome-disks,
    • mkusb ,
  • Sous Windows: Win32DiskImager .

Vous pouvez également utiliser des outils d’extraction , qui fournissent un point de contrôle final, par exemple

21
sudodus

Avec votre commande dd, vous avez écrasé la table de partition de/dev/sda et toutes les données, dans la mesure de la taille de image.iso.

Le mieux que vous puissiez faire est donc de restaurer votre table de partition (avec des tailles exactes) pour récupérer au moins les partitions vers la fin de/dev/sda.

19
muclux

À moins de restaurer à partir d'une sauvegarde, il n'y a aucun moyen de récupérer complètement. DD a écrasé la table de partition et certaines des données du périphérique.

16
stumblebee

Si votre lecteur est partitionné en partitions / et /home distinctes et que la partition /home se situe après la partition /, vous pouvez alors récupérer vos données. Le MBR qui répertorie l'emplacement de la plupart des partitions a été écrasé. Cependant, gparted peut récupérer votre partition /home.

Ce post sur les forums Ubunt donne quelques idées sur la façon de le faire; J'ai trouvé cela en cherchant "gparted recover partition".

Une fois que vous avez trouvé votre partition perdue (il se peut qu’elle se trouve dans une partition étendue), vous devez l’ajouter comme seule partition de la table des partitions.

Une fois que cela est fait, vous devrez réinstaller Linux, en vous demandant de conserver la partition restaurée sous le nom /home.

9
CSM

Testdisk à la rescousse

Je peux personnellement me porter garant pour Testdisk qui a sauvegardé mes données après avoir copié et collé à plusieurs reprises des instructions pour /dev/sdb et les avoir modifiées en /dev/sdd, qui était ma clé USB. Une seule fois, j'ai oublié de le changer et mon /dev/sdb est tombé dans la poubelle.

Configurez votre système pour qu’il n’écrive jamais à /dev/sda

Je recommande fortement de créer un script de wrapper: Empêcher `dd` de détruire SSD ou HDD . Cela garantit que dd n'écrit jamais dans /dev/sda ni éventuellement /dev/sdb ni avec aucun autre de vos périphériques de stockage de masse.

2
WinEunuuchs2Unix