Archive pour la catégorie ‘Réparation’

Récupérer une table de partitions

Mardi 13 février 2007

Grosse frayeur ce soir. Très grosse.

J’ai voulu me lancer dans une installation de Gentoo 2006.1 sur mon ordi, parce que je suis sorti de ma période Ubuntu - et que je veux à nouveau avoir un contrôle total sur mon système. Donc, j’entame la procédure d’installation, et là, au moment ou il faut tout installer, il me met une erreur, comme quoi il ne trouve plus mon disque /dev/hda

Je jette un oeil et effectivement, il y a /dev/hda, mais pas les 4 partitions qui le composent. Et fdisk /dev/hda me renvoie une erreur me disant qu’il ne peut pas ouvrir le disque.

Je fouille plus loin. Le BIOS détecte correctement mon disque. Je boote sur le LiveCD Ubuntu, même problème : impossible d’ouvrir le disque. Je monte le disque dans le PC de ma copine, même problème. Je commence à me dire qu’il y a un soucis physique.

Je le remonte à nouveau, et je tente un hdparm, histoire de voir si le système arrive à le détecter un tant soit peu. Et là oui, il le détecte. Mieux, même : après un petit tour dans hdparm, j’arrive à nouveau à accéder à mon dur dans fdisk !

Mais là, gros problème : pas de table de partition. Aie.

Plutot que de désespérer et tout formater, j’ai fouillé un peu le net, et je suis tombé sur un site (dont je ne truve plus l’adresse) qui m’a permis de comprendre comment on récupère une table de partitions. Sans plus attendre, voici la procédure :

  1. Don’t Panic (très important)
  2. Vous avez en tête le détail de la table de partitions d’origine. Dans ce cas, c’est facile, il suffit d’ouvrir fdisk et de reconstruire la table à l’identique - sans formater les partitions après, naturellement.
  3. Si vous n’avez pas ces infos, vous pouvez tenter de les deviner à l’aide de l’outil gpart (béni soit le créateur de ce programme). Ce dernier va tenter de deviner la table de partitions à partir de la structure des données sur le disque. Pour moi, ca a très bien marché.
  4. Quand il vous semble que gpart à trouvé quelque chose qui à l’air juste, il ne vous reste plus qu’à faire gpart /dev/xxx -W /dev/xxx pour écrire la table de partition dans le boot sector.
  5. Tentez de remonter vos partitions. Si ca marche, pleurez (de joie). Si ca marche pas, c’est la merde.

La petite astuce du jour :

La commande fdisk -l /dev/xxx vous permettra d’obtenir le détail de vos partitions. Le genre d’infos à stocker bien au chaud quelque part … Comme ici, par exemple :

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 * 1 5 40131 83 Linux
/dev/hda2 6 128 987988 82 Linux swap / Solaris
La partition 2 ne se termine pas sur une frontière de cylindre.
/dev/hda3 129 1345 9775552 83 Linux
/dev/hda4 1346 14593 106414560 83 Linux

On notera que j’ai une partition qui ne se termine par à la frontière d’un cylindre - il parait que c’est mal, que fdisk ne préviens pas ces erreurs lors de la création des partitions, mais que gparted le gère.