Master boot record
Le master boot record ou MBR (parfois aussi appelé zone amorce ou enregistrement d'amorçage maître[1]) est le nom donné au premier secteur adressable d'un disque dur (cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique) dans le cadre d'un partitionnement Intel. Sa taille est de 512 octets. Le MBR contient la table des partitions (les quatre partitions primaires) du disque dur. Il contient également une routine d'amorçage dont le but est de charger le système d'exploitation, ou le chargeur d'amorçage (boot loader) s'il existe, présent sur la partition active.
Structure du MBR
Adresse | Description | Taille en octets | ||
---|---|---|---|---|
Hex | Déc | |||
0000 |
0 | Routine | 440 (max. 446) | |
01B8 |
440 | Signature facultative | 4 | |
01BC |
444 | Habituellement nul ; 0x0000 | 2 | |
01BE |
446 | Table des partitions primaires (Quatre entrées de 16 octets (IBM Partition Table scheme)) |
64 | |
01FE |
510 | 0x55 | MBR signature ; 0x55 AA |
2 |
01FF |
511 | 0xAA | ||
Taille totale du MBR : 440 + 4 + 2 + 64 + 2 = | 512 |
À l'octet 510 du MBR, le mot 0x55 AA
, appelé nombre magique ou magic number, doit impérativement être présent pour que le BIOS charge et exécute la routine de démarrage présente dans le MBR. En effet, après la phase de test du BIOS (appelée POST), le BIOS lit le premier secteur des périphériques amorçables qui ont été définis par l'utilisateur à l'aide du programme SETUP (section BOOT DEVICE ORDERING). Lorsqu'il trouve un périphérique contenant le magic number 0x55 AA, il charge le code d'amorçage à l'adresse mémoire 0x7C00 et l'exécute. La main est alors donnée au chargeur d'amorçage (boot strap loader) par ce code d'amorçage.
Réparation, sauvegarde, et restauration du MBR
Microsoft Windows
Sous MS-DOS et les versions grand public de Windows jusqu'à Windows Millenium, il est possible de recréer la routine de boot du MBR sous DOS à l'aide de la commande Fdisk /MBR, pour les versions plus récentes et Windows 10 la commande est bootrec /fixmbr.
Le master boot record est ainsi réécrit.
Cela permet d'éliminer certains virus de boot (si la commande est exécutée depuis une disquette ou une clé USB, car les virus de boot détournent souvent l'interruption 13h), de restaurer un MBR endommagé (le PC ne démarre plus), ou de supprimer un chargeur de démarrage installé dans le MBR (exemples : LILO, GRUB, si une distribution Linux a été installée parallèlement à Windows).
Sous Windows XP, la commande à utiliser pour restaurer le MBR est fixmbr
. Elle est accessible depuis la console de récupération.
Sous Windows Vista et Windows 7, la commande à utiliser pour restaurer le MBR est bootrec /FixMbr
. Elle est accessible depuis la console de récupération.
UNIX et GNU/Linux
Sous Linux, l'utilitaire Boot-Repair permet de restaurer le MBR.
Sous UNIX et Linux, la commande dd
permet de copier n'importe quelle portion d'un fichier. On peut donc l'utiliser pour sauvegarder le MBR d'un disque, ou pour le restaurer. Celui-ci se trouve sur les 512 premiers octets du disque.
Cette opération est risquée, si l'utilisateur se trompe de disque à copier ou à restaurer. Par exemple, restaurer le MBR d'un disque dur sur un autre disque, remplacera la table des partitions du second disque par celle du premier. Il y a de fortes chances que votre second disque soit alors illisible. La seule exception à cette règle concerne le cas où les deux disques durs sont les mêmes ainsi que leur partitionnement (cas fréquent dans un parc de machines en entreprise).
Dans l'exemple qui suit, on sauve le MBR du disque sda
dans un fichier nommé boot.mbr
à l'aide de la commande dd
:
dd if=/dev/sda of=boot.mbr bs=512 count=1
On le restaure de cette manière (boot.mbr
est le fichier qui a été sauvegardé ci-dessus) :
dd if=boot.mbr of=/dev/sda bs=512 count=1
Pour ne sauver que le programme et le désassembler :
dd if=/dev/sda of=pg.mbr bs=1 count=440 objdump -D -b binary -mi386 -Maddr16,data16 pg.mbr
Si la table de partition n'a pas changé, on peut très bien ne recharger que les 446 premiers octets du MBR (en indiquant count=1 bs=446
).
En général, l'installation d'un système GNU/Linux modifie le MBR initial pour qu'il pointe sur le chargeur d'amorçage de Linux (GRUB, LILO). Sur certains systèmes (dits tatoués), il est impossible de démarrer Windows lorsque le MBR est modifié. Il faut donc utiliser une méthode d'installation différente pour faire cohabiter les deux systèmes, ou bien restaurer le MBR d'origine lorsqu'on veut réinstaller un système Windows. Super Grub LiveCD (CD-ROM bootable, sur clé USB, ou encore sur d'autres supports) est un outil qui permet de restaurer MBR mais aussi de réparer GRUB et LILO, au besoin[réf. nécessaire].
Notes et références
- Fiche du terme enregistrement d'amorçage maître dans le Grand dictionnaire terminologique de l'Office québécois de la langue française
- (en) Using the New GUID Partition Table in Linux (Goodbye Ancient MBR) sur www.linux.com.
- Windows prend en charge les disques durs qui sont supérieures à 2 To sur support.microsoft.com.
Voir aussi
Articles connexes
Liens externes
- Explications sur la commande FDISK /mbr sur le site de Microsoft
- Structure du MBR et des tables des partitions sur le disque dur
- (en) Boot Records Revealed Explications détaillées sur les différentes versions de MBR.
- Portail de l’informatique