Master boot record

Le  ou MBR (parfois aussi appelé zone amorce ou enregistrement d'amorçage maître) est le premier secteur adressable d'un disque dur (,  et , ou  en adressage logique) dans le cadre d'un partitionnement Intel. Sa taille est de . Le MBR contient la table des partitions (les  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 () s'il existe, présent sur la partition active.

Vue d'ensemble 
La version originale du MBR a été écrite par David Litton d'IBM en juin 1982.
Son nom provient du secteur d'amorçage situé au tout début du disque (le premier secteur), appelé MBR. La table de partition prenait en charge jusqu'à quatre partitions primaires, dont DOS ne pouvait utiliser qu'une seule. Cela n'a pas changé lorsque DOS 3.0 a introduit FAT16 comme nouveau système de fichiers. La prise en charge d'une partition étendue, un type spécial de partition primaire utilisée comme conteneur pour stocker d'autres partitions, a été ajoutée dans le DOS 3.2, et les lecteurs logiques imbriqués dans une partition étendue sont apparus dans le DOS 3.30. Étant donné que MS-DOS, PC DOS, OS / 2 et Windows n'ont jamais été en mesure de démarrer à partir d'eux, le format MBR et le code de démarrage sont restés essentiellement inchangés en termes de fonctionnalité, à l'exception de certaines implémentations tierces, tout au long des ères DOS et OS / 2 jusqu'en 1996.

En 1996, Windows 95B et DOS 7.10 ont introduit la prise en charge de l'adressage par bloc logique (LBA) pour les disques de plus de 8 Go. L'horodatage des disques a également été introduit, reflétant ainsi l'idée que le MBR devait être indépendant du système d'exploitation et du système de fichiers. Cependant, cette règle de conception a été partiellement enfreinte dans les implémentations ultérieures du MBR de Microsoft, qui fournissent un accès via CHS aux partitions FAT16B et FAT32 de types 0x06/0x0B, tandis que LBA est utilisé pour 0x0E/0x0C.

Structure du MBR 

À l' du MBR, le mot 0x55 AA, appelé nombre magique ou , 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 ). Lorsqu'il trouve un périphérique contenant le , 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 () 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  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  est ainsi réécrit.

Cela permet d'éliminer certains virus de  (si la commande est exécutée depuis une disquette  ou une clé USB, car les virus de  détournent souvent l'), 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 , 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  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  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. .

Avenir du MBR 

Du fait de ses limitations — il ne gère pas les disques de plus de  (en secteurs de 512 octets) —, le système de partitions MBR est remplacé la plupart du temps depuis 2013 par le système GPT.

Notes et références

Voir aussi

Articles connexes 
 Partition de disque dur
  (EBR)
  (GPT)
 BSD disklabel

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
   Explications détaillées sur les différentes versions de MBR.

Amorçage de l'ordinateur
Stockage informatique