Sur les périphériques amorçables, le MBR (ou zone d'amorçage principale) est le est le premier secteur du disque (Cyl=0, Head=0, secteur 1). Il contient notamment:
La table de partitionnement a été conçue il y a de nombreuses années. L'adressage des partitions est définit par des entier de 32 bits. Par conséquent, la plage d'adressage du disque dur est égale à 2^32 = 4G. Comme le secteur fait 512 octets, la capacité maximale adressable d'un disque utilisant MBR est 4G * 512 octets = 2 To.
Un disque de capacité supérieure à 2 To peut utiliser une table MBR mais la partie excédentaire ne pourra pas être allouée.
Le MBR est un secteur réservé, il est indispensable pour le processus de démarrage. Il s'organise comme suit:
MBR (512 Octets) | ||
---|---|---|
bootloader | table des partitions | magic number |
446 Octets | 64 Octest | 2 Octets 0x55AA (boot flag) |
Le MBR est suivi de l'EBR (Extended Boot Record). La première partition commence au secteur 63.
dd permet de faire une sauvegarde binaire des secteurs MBR+EBR
# Sauvegarde les 63 premiers secteurs dd = if=/dev/sda/ of=~/mbr.img bs=512 count=63
A partir du fichier image, pour restaurer le MBR il suffit de copier les 446 premier Octet. Toujours à l'aide de dd:
sudo dd if=~/mbr.img of=/dev/sda bs=446 count=1
Pour restaurer la table des partitions primaire sans toucher au bootloader, il faut ignorer les 446 premiers Octets qui lui sont attribués:
sudo dd if=~/mbr.img of=/dev/sda bs=1 skip=446 seek=446 count=66
Ici on restaure la table des partitions primaires et le magic number.
Pour sauvegarder/restaurer la table complète des partitions (primaires et logiques) l'outil sfdisk est mieux adapté:
yoann@janus:~$ sudo sfdisk -d /dev/sda > ~/partitions_sda.dmp
La restauration est tout aussi aisée:
yoann@janus:~$ sudo sfdisk /dev/sda < ~/partitions_sda.dmp
Quelques points à vérifier lorsqu'on rencontre des problèmes de démarrage via les médias externes (lecteurs flash ou disques externes)