Écrasement de la table de partitions

De Cliss XXI
Révision datée du 5 février 2006 à 23:43 par 82.238.35.175 (discussion) (premier jet)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

La table de partition, qui indique l'organisation des partitions du disque, se trouve dans les premiers 512 octets du disque, avec le secteur de boot.

Problème: vous avez oublié ce détail et vous avez installé un nouveau secteur de boot... et par conséquent perdu l'organisation des partitions. Bien entendu vous avez oublié de:

dd if=/dev/hda of=bootsector.512 count=1 bs=512

Bref vous avez perdu toutes vos données. Sauf... si vous avez eu le sang-froid de gardé l'ordinateur allumé et n'avez encore touché à rien, car le noyau Linux a probablement toujours l'organisation des partitions en mémoire. La première chose à faire est donc de monter les partitions et de se faire une sauvegarde d'une manière ou d'une autre, avec qu'une coupure d'électricité ne vienne définitevement régler le problème.

Une fois ceci fait, allons voir dans /sys/block/hda/ (ou éventuellement sda pour du SCSI ou ces nouveaux disques SATA).

$ cat hda?/start
63
20482875
41190660
42186690
20482938
$ cat hda?/size
20482812
2
996030
38106180
20707722

Il s'agit du numéro de secteur de début de chaque partition ainsi que sa taille (remarquer que la taille de la partition étendue n'est pas exact). Avec cela et fdisk, vous pouvez recréer votre table de partition. Basculer les unités de cylinders vers sectors. Quand vous créez une nouvelle partition (n), fdisk vous demande le secteur de début (vous l'avez) et de fin (pour la partition n, start[n+1]-1, ou alors start[n]+size[n]-1). Pour la partition étendue il faudra vous débrouiller et probablement lui faire englober, sous fdisk, l'ensemble des autres partitions - personnellement je n'ai eu à restorer que mes partitions primaires.

Bien entendu la solution de sauvegarder le secteur de boot avant toute intervention reste la plus efficace - mais l'autre manipulation m'a tout de même sauvé la vie une fois :)