au sommaire


    Le main boot record (MBR) est le premier secteur physiquephysique de tout disque. Il contient dans ses 512 octets des informations capitales sur la structure du support et la moindre altération de son contenu rend généralement le disque illisible.

    Au démarrage d'un ordinateur, lorsque le BIOS a fini sa séquence d'initialisation (POST = Power-On Self Test) la dernière instruction qu'il exécute envoie la tête de lecture lire le contenu de ce secteur sur le disque que le BIOS a enregistré comme disque de démarrage. La suite du comportement de l'ordinateur est dictée par les informations contenues dans le MBR. Le contenu sera détaillé à partir le la fin du secteur parce que, paradoxalement c'est plus logique sur le plan fonctionnel.

    • Tout d'abord l'ordinateur repère la présence sur les deux derniers octets du nombre 55AA (en hexadécimalhexadécimal) appelé aussi "marque de secteur exécutable". En l'absence de ce marqueur les opérations ne pourraient se poursuivre.
    • Ensuite viennent 64 octets constituant la table des partitions, c'est-à-dire indiquant le nombre de partitions présentes sur le disque et leur emplacement.
    • 4 octets contiennent la signature numérique du disque qui est affectée au moment du formatage et qui est reprise dans de nombreuses clés de la base de registre.
    • Une centaine d'octets (variable selon la langue) sont affectés au texte des messages d'erreur au démarrage (table de partition non valide, Système d'exploitationSystème d'exploitation absent...).
    • Enfin les 300 premiers octets du secteur contiennent un code exécutable dont l'importance est capitale.

    En effet, après avoir constaté la présence du marqueur 55AA l'ordinateur exécute ce code. Dans une première étape le code charge en mémoire la table des partitions, repère en la lisant quelle est la partition active (celle qui contient le système d'exploitation) et envoie l'ordinateur lire le secteur de boot (= de démarrage, à ne pas confondre avec le MBR) de cette partition.

    Secteur de boot d'une partition

    Il faut savoir en effet que chaque partition NTFS contient 16 secteurs réservés (les 9 derniers n'étant pas utilisés). Le premier est le secteur de boot proprement dit. Comme le MBR il contient le marqueur 55AA, un code exécutable, des informations sur la structure de cette partition et des messages d'erreur (dont le trop fameux "NTLDR manquant").

    Le code exécutable charge en mémoire les informations sur la partition et va lire la suite du code exécutable qui se trouve dans les 6 secteurs suivants. Ce dernier code est la bootstrap qui va à son tour lancer l'exécution du fichier NTLDR (NT loader : le "chargeur" de Windows). Celui-ci charge NTDETECT.COM puis tous les fichiers de Windows

    Toute altération du secteur de boot d'une partition va conduire à un échec. Selon la nature de l'altération le message d'erreur sera différent. En particulier le message NTLDR manquant ne signifie généralement pas que le fichier NTLDR est absent, mais qu'il n'a pas été trouvé à la suite d'une modification du secteur de boot. Bien entendu le bootstrap ne sert que pour la partition système.

    La structure est un peu différente pour une partition de format FAT, mais les principes généraux sont les mêmes. Enfin il existe une copie de sauvegardesauvegarde du secteur de boot dans chaque partition.

    Quelques remarques

    Les altérations du MBR peuvent être réparées par l'instruction FIXMBR exécutée à partir de la console de récupération du CDCD de Windows. Cette instruction récrit le code exécutable et le marqueur 55AA. Elle ne modifie pas la table des partitions que contient ce secteur.

    Il y a un certain nombre d'années divers virus ont tiré parti de la présence de code exécutable dans le MBR pour s'y installer à sa place et se lancer ainsi avant le système d'exploitation. Lors de l'infection le virus plaçait une copie du MBR sur un secteur arbitraire du disque. Après s'être exécuté le virus allait lire cette copie qui, à son tour lançait le système d'exploitation de telle sorte que tout semblait se dérouler normalement. La recette classique qui était alors donnée (pour le DOSDOS et les versions Windows 95,98 et Millenium) consistait à exécuter la commande FDISK /MBR (ou FIXMBR pour versions suivantes de Windows) pour restaurer le MBR. Cette solution ne marche que si le code du virus ne s'étend pas sur l'espace contenant les informations sur les partitions. Si l'espace réservé à ces informations est modifié, le MBR restauré ne va pas aller chercher la copie du secteur d'origine faite par le virus car lui seul sait où elle a été placée. En conséquence le disque durdisque dur n'est plus accessible. La seule solution de réparation pour un antivirusantivirus était d'aller chercher la copie du secteur (avec la table de partition intacte) pour la replacer dans le MBR.

    Dernièrement un rootkitrootkit utilisant cette vieille technique d'infection du MBR a été observé. Dans son cas FIXMBR fonctionne correctement car son code n'altère pas la table des partitions. Il n'est pas évident qu'il en sera de même pour les suivants.

    Les altérations du secteur de boot peuvent être réparées par la commande FIXBOOT (première chose à faire face à une erreur indiquant un problème avec NTLDR).

    Enfin l'utilitaireutilitaire TestDisk est capable de réparer la plupart des échecs dus à une altération du MBR ou des secteurs de boot, en particulier ceux qui se traduisent par un symptômesymptôme angoissant : la disparition d'une partition ou l'existence d'une partition devenue illisible.

    Champ lexical : main Boot Record | secteur de boot | secteur de démarrage