Vous êtes sur la page 1sur 5

Les gestionnaires d'amorage sur PC x86

15/02/2002 Florian Hatat

Le gestionnaire d'amorage ne reprsente qu'un petit composant du systme d'exploitation : il fait tout au plus quelques centaines de kilo-octets, ne s'excute que dans les premires secondes du dmarrage d'un ordinateur et est indispensable au systme d'exploitation tout entier.

1. Qu'est-ce qu'un gestionnaire d'amorage ?


Le gestionnaire d'amorage, ou bootloader, est un petit programme qui s'excute au dmarrage de votre ordinateur. C'est le deuxime composant logiciel qui se lance sur la machine, aprs le BIOS, et n'a qu'une tche raliser : lire et mettre en mmoire l'image du noyau d'un systme d'exploitation, puis lui passer la main. C'est l'tape du bootstrap : un petit composant relativement simple, le gestionnaire, charge un autre composant plus gros et plus complexe, le systme d'exploitation, ce qui lui vaut d'tre galement appel chargeur. Les termes chargeur, gestionnaire d'amorage ou bootloader sont utiliss indiffremment pour dsigner le mme programme. Les chargeurs sont trs nombreux et il est difficile d'en choisir un, puisqu'ils offrent des fonctionnalits quivalentes, ou presque. Parmi tant d'autres, on compte LILO, GRUB, XOSL, GAG, les chargeurs des *BSDs et celui (ceux ?) de DOS/Windows. Cette diversit n'est pas toujours la meilleure puisqu' chaque chargeur correspond un fonctionnement diffrent...

2. O habite-t-il sur mon disque dur ?


Le gestionnaire se loge dans la plupart des cas au dbut du disque dur, sur le MBR (Master Boot Record), mais il peut galement se trouver au dbut d'une partition, sur le PBR (Partition Boot Record). Au dmarrage de l'ordinateur, le BIOS va en effet lire et mettre en mmoire le contenu du MBR. Le chargeur qui s'excute peut alors son tour passer la main un autre chargeur qui se trouve sur une partition. Mais le gestionnaire est presque toujours accompagn d'autres composants qui s'excutent quand le systme d'exploitation est dmarr. Ils servent principalement installer le gestionnaire sur le MBR/PBR.

2.1. Pourquoi l'installer sur le MBR ?


Parce que c'est l qu'il faut l'installer. Na ! Le MBR est l'emplacement ddi au chargeur, puisqu'il est lu au dmarrage par le BIOS. Le MBR doit d'ailleurs toujours abriter un booloader, mme simpliste, sinon la machine ne peut plus dmarrer autrement qu'avec une disquette ou un CD-ROM. Donc on installe dans tous les cas le chargeur sur le MBR. En fait je viens de mentir, le monde n'est pas si beau. Si vous avez install Windows, les choses se compliquent. Le premier problme : l'installation de Windows remplace chaque fois le MBR pour mettre son propre chargeur. Pensez-donc garder une disquette de dmarrage pour les autres OS. Le deuxime problme se pose avec NT/2000 : Windows met son propre chargeur sur le MBR et il est impossible de le remplacer par un autre, car NT ne pourrait alors plus dmarrer. La solution ? Lisez la suite.

2.2. Pourquoi l'installer sur un PBR ?


Il est plus pratique d'utiliser un chargeur unique qui sait lancer chaque systme install, mais ce n'est pas toujours possible car un chargeur ne gre pas les mthodes de dmarrage de tous les systmes d'exploitation existants. Mais nous pouvons installer plusieurs chargeurs qui s'occuperont chacun d'un ou plusieurs systmes. Mme si c'est un cauchemar administrer, cela fonctionne. Nous avons alors un gestionnaire principal sur le MBR qui s'occupe du chargement des systmes qu'il connat, et qui passe la main d'autres chargeurs, sur un PBR, pour les autres OS. Ainsi, avec par exemple Windows NT/2000 et Linux sur la mme machine, le chargeur de Windows se trouve sur le MBR, et s'occupe de dmarrer Windows. En revanche pour dmarrer Linux, le chargeur de Windows laissera le contrle un autre gestionnaire (souvent LILO ou GRUB), install sur le PBR. Le dmarrage de plusieurs systmes quand Windows est install reste cependant assez compliqu, et il n'est pas tonnant de voir fleurir plusieurs documents qui abordent le sujet. En voici quelques-uns.

Linux Gazette n36 : Booter Linux avec le chargeur de NT Linux+Win9x+Grub-HOWTO Linux+DOS+Win95+OS2 (mini-HOWTO) Linux+NT-Loader (mini-HOWTO) Linux+Win95 (mini-HOWTO) Linux+WinNT (mini-HOWTO)

Vous pouvez trouver des traductions des HOWTOs depuis le site FREENIX.

3. Les bons rflexes


C'est invitable : rien ne fonctionne du premier coup. Vous pouvez avoir lu la documentation dj six fois, il y aura toujours un rat. Avec les gestionnaires

d'amorage, un rat ne pardonne pas, car votre machine ne pourra plus dmarrer aprs. C'est plutt dommage de devoir rinstaller, quand une disquette de dmarrage pour chaque OS aurait permis de rduire la casse. Faites des disquettes de dmarrage pour chaque systme install !

Master Boot Record (MBR) : Le "Master Boot Record" (enregistrement de dmarrage principal) est le premier secteur (512 octets) du disque. Il contient la table de partition primaire et un petit programme permettant de charger le "Partition Boot Record" (PBR enregistrement de dmarrage des partitions). Notez que dans certains environnements, le terme "MBR" se rfre uniquement la portion de code comprise dans le premier bloc du disque et non pas au bloc entier (incluant la table de partition). Il est primordial de comprendre le sens d'"initialiser le MBR" ; la terminologie sous OpenBSD sous-entend la rcriture complte du secteur MBR et pas seulement son code, comme cela peut tre le cas avec certains systmes. Vous n'en aurez l'utilit que trs rarement. Pour ce faire, utilisez l'option "-u" de la commande fdisk(8) ("fdisk -u wd0").

Bien qu'un MBR soit inclut avec OpenBSD, vous n'tes pas oblig de l'utiliser puisque virtuellement, n'importe quel MBR est capable de le faire dmarrer. Le MBR se manipule avec l'aide du programme fdisk(8) qui est utilis pour diter la table de partition mais galement pour installer le code MBR sur le disque. Le MBR d'OpenBSD s'annonce avec le message suivant :
Using drive 0, partition 3.

montrant le disque ainsi que la partition d'o il s'apprte charger le PBR. On peut galement voir un point (".") en fin de ligne, ce qui signifie que la machine est capable d'utiliser la conversion LBA ("Logical Block Adressing") au dmarrage. Si la machine avait t incapable d'une telle conversion, le point aurait t remplac par un point-virgule (";"), indiquant une conversion CHS ("Cylinder-Head-Sector") :
Using drive 0, partition 3;

Notez que le point ou le point-virgule en fin de ligne peut servir d'indicateur du "nouveau" MBR OpenBSD introduit partir de la version 3.5. Partition Boot Record (PBR) : Le "Partition Boot Record" (enregistrement de dmarrage de partition), aussi appel PBR ou biosboot(8) (d'aprs le nom du fichier contenant le code) reprsente le premier secteur physique de la partition OpenBSD du disque. Le PBR est le "first-stage boot loader" (chargeur de dmarrage de niveau un) d'OpenBSD. Il est excut par le code MBR et se charge de lancer le "second- stage boot loader" (chargeur de dmarrage de niveau deux), boot(8). Comme le MBR, le PBR est constitu d'une toute petite quantit de code et de donnes d'une taille totale de 512 octets. Ce n'est pas suffisant pour avoir une application reconnaissant un systme de fichiers, donc, plutt que de demander au PBR de localiser /boot sur le disque, la localisation de /boot accessible par le BIOS est code physiquement dans le PBR lors de l'installation.

Le PBR est install par installboot(8), dcrit dans plus en dtails dans la suite de ce document. Le PBR s'annonce avec le message suivant :
Loading...

affichant un point pour chaque bloc qu'il essaye de charger. Comme prcdemment, le PBR montre s'il utilise une conversion LBA ou CHS pour s'excuter. Dans le cas de CHS, il affichera un message suivi d'un point- virgule :