accidentellement, jj / dev / sda

33

J'ai écrit une image ISO sur mon disque dur en utilisant sudo dd if=image.iso of=/dev/sda . Je voulais dire /dev/sdc , et maintenant que sudo fdisk -l ne retourne qu'une seule partition sur / dev / sda alors qu'il est supposé y avoir 6. Est-il possible de récupérer mes données?

Je n'ai pas encore redémarré mon ordinateur.

    
posée Baaing Cow 02.12.2017 - 21:10
la source

6 réponses

63

Votre ordinateur étant toujours allumé, vous avez de bonnes chances d’enregistrer des choses.

Premièrement, sysfs expose le noyau dans la vue en mémoire des tables de partition. À l'heure actuelle, 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 start et un fichier size , qui représentent l'emplacement et la taille de la partition, dans les secteurs. Exécutez fdisk , puis recréez chaque partition (dans l'ordre!) Avec les informations de son répertoire sysfs . Notez que vous devrez également créer une nouvelle table de partition. Assurez-vous que votre nouvelle table de partition est identique à la précédente. Vous pouvez le vérifier en /sys/block/sda . Si vous voyez sda1 jusqu'à sda7 alors que vous n'avez que 6 partitions, vous avez probablement eu MBR, sinon il s'agissait probablement de 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 consultez Wikipedia pour les convertir en codes pour votre schéma de partitionnement.

Comme vous semblez pouvoir utiliser votre système de fichiers, il est probable que votre dd n’en a pas écrasé, car la plupart des bits 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 copiée dd pour obtenir une estimation de votre quantité de données. Si vous ne remplacez qu'une partie d'un système de fichiers, un bon fsck pourrait pouvoir le corriger un peu (mais vous avez perdu une bonne partie des données).

Vous avez probablement remplacé /boot . Vous devrez réinstaller votre noyau (avec aptitude ) et réinstaller GRUB2 (avec grub-install ) (qui a été détruit à la fois lors de la première et de la deuxième étape). GRUB2 est configuré avec des fichiers dans /etc , vous n'aurez donc pas à recréer manuellement quelque chose.

    
réponse donnée HTNW 03.12.2017 - 00:51
la source
20

Désolé de lire à propos de votre malchance

Je suppose que vous n'avez pas de sauvegarde en cours, et je suis désolé de lire à propos de votre chance avec

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

où vous avez utilisé la lettre de lecteur x = a de sorte que vous écrasiez le début de votre disque dur sur lequel vous avez stocké beaucoup de données importantes.

Vous n'êtes pas la première personne et j'ai peur de ne pas être la dernière personne touchée par ce problème. dd est recommandé sur de nombreux sites Web pour être utilisé comme ceci. C'est une méthode puissante mais dangereuse, car elle fait ce que vous lui dites de faire sans poser 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 . Sachez donc que vous pouvez facilement écraser un disque 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ère la table de partition, les systèmes de fichiers et / ou le contenu du fichier

  • Faites le moins possible avec le lecteur, et surtout ne lui écrivez rien, car cela peut aggraver la situation en écrasant des données, qui sont encore possibles à récupérer.

  • Si vos données sont précieuses, vous devez travailler sur une copie clonée , et non sur le lecteur d'origine (partiellement remplacé). Voir ce lien, faites défiler jusqu'à 'Réparation avancée d'une table de partition, système de fichiers et / ou 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, il existe une sauvegarde de la table de partition à la fin du lecteur /dev/sda , et vous pourrez peut-être restaurer la table de partition principale à partir de cette table de sauvegarde. l'outil gdisk . Voir le manuel man gdisk pour plus de détails.

  • Vous pouvez réussir à restaurer la table de partition et les systèmes de fichiers en utilisant Testdisk depuis

    lien

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

  • Vous pouvez également restaurer la table de partition et les systèmes de fichiers en utilisant gpart / gparted conformément au lien fourni par @CSM,

    HOWTO: restaurer des partitions perdues dans une table de partition supprimée ou corrompue

  • PhotoRec : si vous ne parvenez pas à récupérer la table de partition et les systèmes de fichiers, vous pouvez toujours récupérer certaines données de fichier. Les fichiers de la tête de ligne, peut-être de 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 lien est un outil qui permet de récupérer des données "à partir de la surface du lecteur" sans système de fichiers. Les données typiques au début des types de fichiers courants sont utilisées pour l'identification.

    Le lien suivant fournit des détails sur PhotoRec,

    lien

    Vous devez enregistrer les fichiers sur une partition dans un lecteur distinct.

    Il n'est pas possible de restaurer la structure des répertoires et il n'est généralement pas possible de récupérer les noms de fichiers (et non les autorisations et la propriété), et les fichiers sont fragmentés, mais de nombreux fichiers peuvent être récupérés par PhotoRec (non seulement les photos, mais aussi de nombreux autres types de fichiers courants). Mais, et c'est un gros problème, il est très difficile de parcourir l'énorme quantité 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 dispose d’un point de contrôle final, afin de vérifier que vous pouvez cloner à partir du fichier iso sur le bon périphérique cible, par exemple

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

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

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

réponse donnée sudodus 03.12.2017 - 07:18
la source
19

Par votre commande dd , vous avez remplacé la table de partition de / dev / sda et toutes les données en fonction de la taille de image.iso.

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

    
réponse donnée muclux 02.12.2017 - 21:14
la source
16

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

    
réponse donnée stumblebee 02.12.2017 - 21:28
la source
9

Si vous conduisez est partitionné en partitions / et /home distinctes, et que la partition /home était après la partition / , vous pouvez récupérer vos données. Le MBR qui répertorie la plupart des partitions a été écrasé. Cependant, gparted peut récupérer votre partition /home .

Cet article sur les forums Ubuntu donne quelques idées sur la façon de le faire; J'ai trouvé cela en recherchant "partition de récupération gparted".

Une fois que vous avez trouvé votre partition perdue (l’entrée peut se trouver dans une partition étendue), vous devez l’ajouter en tant que seule partition de la table de partition.

Une fois que vous avez fait cela, vous devrez réinstaller Linux, en indiquant de conserver la partition récupérée sous la forme /home .

    
réponse donnée CSM 02.12.2017 - 22:12
la source
1

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 changé en /dev/sdd qui était mon USB. Une seule fois j'ai oublié de le changer et mon /dev/sdb est passé dans la poubelle.

Configurez votre système pour ne jamais écrire dans /dev/sda

Je vous recommande fortement de créer un script d'encapsulation: Empêcher "dd" de détruire les SSD ou disque dur . Cela garantit que dd n'écrit jamais dans /dev/sda ou éventuellement /dev/sdb ou tout autre périphérique de stockage de masse.

    
réponse donnée WinEunuuchs2Unix 17.01.2018 - 04:10
la source

Lire d'autres questions sur les étiquettes