URGENT: je viens de graver une iso sur mon disque principal


#1

Tout est dans le titre: je n’ai pas encore rebooté, mais comme un crétin, je viens de dd une iso debian live de 2Go sur mon disque root de 120Go.
Avant j’avais:

root@mercure:/home/mj/Documents/installs# fdisk -l
Disque /dev/sda : 111,8 GiB, 120034123776 octets, 234441648 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 55141668-D782-4487-9214-E5275680B8D9

Périphérique    Début       Fin  Secteurs Taille Type
/dev/sda1        2048   1050623   1048576   512M Système EFI
/dev/sda2     1050624  59643903  58593280    28G Système de fichiers Linux
/dev/sda3    59643904  68433919   8790016   4,2G Partition d'échange Linux
/dev/sda4    68433920 234440703 166006784  79,2G Système de fichiers Linux

Maintenant:

mj@mercure:~/Documents/installs$ sudo fdisk -l
Disque /dev/sda : 111,8 GiB, 120034123776 octets, 234441648 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x0ced2242

Périphérique Amorçage Début     Fin Secteurs Taille Id Type
/dev/sda1    *            0 4630335  4630336   2,2G  0 Vide
/dev/sda2              1424    2255      832   416K ef EFI (FAT-12/16/32)

Comment récupèrer au mieux.


#2

C’est ma machine de boulot avec une moitié de mes données dessus, et l’autre moitié est sur le serveur qui lui aussi est en miette, cf Diagnostiquer un serveur qui s’éteint brusquement je suis maudit.


#3

avec ça
https://www.cgsecurity.org/wiki/TestDisk ?


#4

Alors testdisk de ce que j’ai lu depuis ce matin, c’est pour récupèrer les fichiers.
Là, je voudrais juste rétablir mes partitions (je n’ai toujours pas rebooté), puis éventuellement, voir ce que je peux récupèrer des données qui ont été écrites sur les 2 premiers gigas (la taille de l’iso que j’ai dd), sachant que les 512 premiers meg, c’etait la partition efi, puis la partition racine sans la home (là, j’aurais peut être à y récupèrer quelques éléments de config, mais je m’en fous un peu), et bien au delà des 2Mo de clé, j’ai mon swap qui est toujours actif et ma home qui n’a pas été touché.

Ce que je veux faire:
1 - récupèrer le partitionnement (testdisk, n’est pas adapté ou alors je n’ai pas compris son usage), mais j’ai oublié avec quoi on faisait ça,
2 - reconstruire une partition uefi propre (je ne sais pas faire non plus),
3 - récupérer ce que je peux de config sur / la 2e partition, puis y réinstaller l’os,
4 - vérifier que ma 4e partoche, la home, est bien propre, comme je le suppose

Tu peux m’aider s’il te plait ?


#5

Note qu’en faisant le 3, ça fera peut être le 2, je n’y connais rien à uefi, je ne sais pas ce qui le met en place sur le disque, si c’est en usine ou l’installer debian.


#6

Bonjour

Le MBR du disque, la première partition et une partie du contenu de la deuxième partition
ont été écrasés.

Par contre, le contenu des partitions originales /dev/sda3 et /dev/sda4 n’a pas été modifié.

Étant donné que le MBR a été écrasé, la table des partition originale (de type GPT)
a aussi été écrasée et remplacée par une table des partitions de type MSDOS


Il doit quand même être possible de restaurer la table des partition GPT
en utilisant sa copie qui doit se trouver en fin de disque.

Mais quoi qu’il en soit, avant de faire quoi que ce soit,
je commencerai par faire une copie intégrale du contenu du disque

sur un autre (de taille égale ou plus grande),
puis je déconnecterai le disque contenant la copie
afin de préserver cette copie de sauvegarde de toute modification.

Ensuite seulement, je pourrai tenter de récupérer ce qu’il est encore possible de récupérer
en commençant, avec gdisk, par une tentative de restauration de la table des partitions originale.


Je n’ai encore jamais eu à le faire, et n’ai aucune expérience avec l’UEFI,
je laisse donc à d’autres, bien plus compétents que moi, le soin de te guider.


#7

Bonne idée de suggérer gdisk pour restaurer la table GPT principale à partir de la table de secours. Commandes “r” (recovery) puis “b” (use backup header) et “c” (use backup partition table), éventuellement “x” (expert) et “n” (create protective MBR). Sinon puisque tu as conservé les positions et tailles exactes, tu peux créer une nouvelle table de partition GPT et recréer les partitions à l’identique. Tu perdrais le GUID (PARTUUID) de la partition EFI qui est enregistré dans la variable d’amorçage EFI, mais il peut être récupéré avec efibootmgr -v si nécessaire, et de toute façon la réinstallation du système en mode EFI réinstallera GRUB et recréera la variable d’amorçage EFI.

testdisk sert à retrouver les partitions quand la table de partition a été effacée, mais ici tu n’en as pas besoin. C’est photorec, inclus dans le même paquet, qui sert à récupérer des fichiers en se basant sur les méta-données dans leur contenu. Tu pourras l’utiliser sur la partition sda2 après l’avoir recréée ou avoir restauré la table de partition. Mais cela ne restaure pas les noms des fichiers ni l’arborescence, donc à moins que tu veuilles récupérer quelques fichiers de types spécifiques, tu vas te retrouver avec une kyrielle de fichiers texte et autres qu’il faudra ouvrir pour tenter d’identifier.

Je ne pense pas qu’il soit indispensable de faire une copie du disque si tu ne fais que modifier la table de partition avec gdisk.


#8

Bon, alors aprés mon dernier message, je me suis aperçu que certaines commandes ne passaient plus (sudo me donnait une erreur de chargement de lib), mais su nickel. J’ai donc lancé en urgence des dd (à chaud, sans démonter) de tout ce que je pouvais, et de la copie fichier, vers un disque amovible.
En atendant que ça se termine, j’ai découvert gdisk, mais j’ai du faire une fausse manip:
quelle que soit la restoration de GPT 'b’ackup que j’ai tenté de faire, je retombais sur un schema à une seule partition, la nouvellle table, pas l’ancienne.
J’ai essayé de reconstruire une table à la mimine, vu que j’avais les débuts/fins de partition ici même, mais j’ai du faire une connerie, car une fois tous les backups terminés, et aprés avoir rebooté sur ma clé live, je n’avais toujours qu’une partition. J’étais las, j’avais 50 copies dd de partition, je pensais avoir en plus coppié en mode fichier tout ce qui était critique pour moi, donc j’ai réinstallé.
Et j’ai eu tort: mes images dd sont inexploitables (disons non montables, je n’ai pas encore fait de photorec dessus), et les copies en mode fichier dans mon répetoire perso, j’ai fait un cp ~/* (…) au lieu de cp ~/.* (…), donc je n’ai rien copié de mes config.

Mazette, mes clés ssh…


#9

Question bête : tu as bien enregistré avec “w” les modifications faites avec gdisk ?


#10

C’est difficile à dire, mais manifestement, ça doit être l’étape que j’ai oubliée, ou alors mes gros doigts ont glissé du w au q.

Dans les bonnes blagues aussi, sinon, lors du remontage de ma machine desktop, je me suis trompé de console alors que j’étais en ssh sur mon serveur domestique (celui que je remontais lorsque j’ai gravé l’iso), et j’ai installé exim4 dessus en remplacement de postfix. J’ai passé la matinée à comprendre pourquoi les configs MUA habituelles de mon desktop ne fonctionnaient pas, jusqu’à ce que je remarque les messages parlant d’exim sur mon serveur…
Quand ça commence, ça ne s’arrète plus.

Juré, en ce moment, je ne fume rien.