36 votes

J'ai accidentellement fait dd /dev/sda

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 en cours d'exécution sudo fdisk -l ne renvoie qu'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 éteint (redémarré) mon ordinateur.

65voto

HTNW Points 636

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

D'abord, sysfs expose la vue en mémoire des tables de partition du noyau. Pour l'instant, votre noyau n'a pas relu la table du disque et il se souvient de votre partitionnement. À l'intérieur de /sys/block/sda/ il doit 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, en secteurs. Exécuter fdisk puis recréer chaque partition (dans l'ordre !) avec les informations contenues dans son sysfs répertoire. Notez que vous devrez également créer une nouvelle table de partition. Assurez-vous que votre nouvelle table de partition est la même que la précédente. Vous pouvez le vérifier dans /sys/block/sda . Si vous voyez sda1 jusqu'à sda_7_ si vous n'avez que 6 partitions, vous aviez probablement MBR, et sinon c'était probablement GPT. Vous devez également définir des drapeaux 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 convertir ces informations en codes pour votre schéma de partitionnement.

Puisque vous semblez être capable d'utiliser votre système de fichiers, il est probable que votre dd n'a pas pu écraser quoi que ce soit, puisque la plupart des bits importants d'un système de fichiers se trouvent à l'avant. Vérifiez /etc/fstab pour voir quelles partitions correspondent à quelle partie de votre système, et ensuite utiliser la quantité de données dd copié pour avoir une estimation de la quantité que vous avez atomisé. Si vous n'avez écrasé qu'une partie d'un système de fichiers, une bonne fsck pourrait être capable de le réparer un peu (mais vous avez perdu une bonne partie des données).

Très probablement, vous avez écrasé /boot . Vous devrez réinstaller votre noyau (avec aptitude ) et réinstaller GRUB2 (avec grub-install ) (qui a vu sa première et sa deuxième étape détruites). GRUB2 est configuré avec des fichiers dans /etc Vous n'aurez donc pas à recréer manuellement quoi que ce soit.

23voto

sudodus Points 39902

Désolé de lire que vous n'avez pas eu de chance

Je suppose que vous n'avez pas de sauvegarde actuelle, et je suis désolé de lire que vous n'avez pas eu de chance en utilisant les services d'une entreprise.

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

où vous avez utilisé la lettre de lecteur x = a de sorte que vous avez écrasé le début de votre disque dur où vous avez stocké beaucoup de données précieuses.

Vous n'êtes pas la première personne et je crains que ce ne soit pas la dernière touchée par ce problème. dd est recommandé sur de nombreux sites web pour être utilisé de cette manière. C'est une méthode puissante mais dangereuse, car elle fait ce que vous lui dites de faire sans poser de questions. C'est pourquoi elle est souvent surnommée "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 cause le risque . Sachez donc que vous pouvez facilement écraser un disque et détruire des données précieuses en écrivant dans le fichier du périphérique correspondant. /dev/sdx . (Des outils plus sûrs sont énumérés à la fin de cette réponse).

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

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

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

    Réparer la table de partition et le système de fichiers d'un pendrive

  • Si vous avez une table de partition GUID, GPT, il y a une sauvegarde de la table de partition à la fin du disque. /dev/sda et vous pourrez peut-être restaurer la table de partition principale à partir de cette table de sauvegarde en utilisant l'outil gdisk . Voir le manuel man gdisk pour les détails.

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

    http://cgsecurity.org

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

  • Vous pouvez aussi 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 des partitions perdues à partir d'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 fichiers. Les fichiers à l'extrémité de la tête, peut-être 1-1,5 Go, sont écrasés et perdus, mais les fichiers derrière cette partie du disque sont toujours là. PhotoRec de http://cgsecurity.org est un outil qui permet de récupérer des données " à partir de la surface du disque " sans système de fichiers. Des 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,

    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 du répertoire 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 il y a des problèmes, lorsque les fichiers sont fragmentés, mais de nombreux fichiers peuvent être récupérés par PhotoRec (pas seulement les photos, également de nombreux autres types de fichiers courants). Mais, et c'est un gros "mais", c'est un travail très difficile de se frayer un chemin à travers 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, veuillez utiliser un outil qui vous aide à identifier et à sélectionner le bon dispositif cible et qui dispose d'un point de contrôle final, de sorte que vous puissiez vérifier que vous allez clone 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),
  • Dans Linux :

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

Vous pouvez également utiliser en extrayant des outils qui fournissent un point de contrôle final, par exemple

18voto

muclux Points 4714

Par votre dd vous avez écrasé la table de partition de /dev/sda et toutes les données jusqu'à la taille de image.iso.

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

15voto

stumblebee Points 2851

À 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 de l'appareil.

9voto

CSM Points 191

Si votre disque est divisé en plusieurs / y /home les partitions, et le /home la partition était après le / partition, alors vous pouvez récupérer vos données. Le MBR qui indique où se trouvent la plupart des partitions a été écrasé. Cependant, gparted peut récupérer vos /home partition.

Ce message sur les Forums Ubuntu donne quelques idées sur la façon de le faire ; je l'ai trouvé en cherchant "gparted recover partition".

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

Une fois que vous avez fait cela, vous devrez réinstaller Linux, en disant de garder la partition récupérée comme /home .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X