Multi boot
02/04/2006
 Christian CALECA 
Liste des cours

Le "multi boot" est envisagé lorsque l'on souhaite pouvoir faire démarrer une même machine avec des OS différents.

Par exemple, nous pourrions souhaiter pouvoir installer sur la même machine Windows XP et GNU/Linux, et pouvoir choisir au moment du démarrage le système à faire monter.

Sur des machines critiques, il peut aussi être intéressant d'installer deux fois le même système, l'une des installations ne servant qu'à prendre le relais de l'autre, en cas de "crash" du système.

Rappels sur le "boot"

Il existe un secteur fondamental, sur chaque disque dur. C'est le premier secteur, appelé "Master Boot Record". C'est le seul secteur auquel sait accéder la procédure de chargement d'un système écrite dans le BIOS.

Ce MBR contient dans tous les cas la table des partitions. Si les deux derniers octets de ce secteur contiennent respectivement les valeurs hexadécimales 55 AA, c'est que le MBR contient aussi un programme que le BIOS lancera à la fin du boot BIOS.

L'ordre dans lequel ces MBR sont recherchés est, dans une certaine mesure, paramétrable dans le BIOS. Il est en effet possible de choisir un ordre de recherche, par exemple :

  1. disquette
  2. CD ROM
  3. clé USB ou autre périphérique amovible
  4. disque dur

Généralement, c'est le disque dur qui sera placé en premier. Cependant, il n'est pas toujours possible de définir un ordre dans les disques durs, s'il y en a plusieurs. Habituellement, l'ordre imposé sera :

  1. disque maître du port IDE primaire
  2. disque esclave du port IDE primaire
  3. disque maître du port IDE secondaire
  4. disque esclave du port IDE secondaire

Les choses peuvent se compliquer encore, lorsque la machine propose des BUS ATA et SATA (parallèles et séries). Le plus souvent, les disques SATA seront recherchés en premier, mais les BIOS proposent souvent de paramétrer cet ordre.

En plus du MBR, chaque partition dispose elle aussi d'un premier secteur qui a un statut particulier, le "Partition Loader".

Ce secteur peut lui aussi contenir un programme de boot, s'il est terminé par 55 AA. Si l'on choisit d'installer le "boot loader" sur un "Partition Loader", alors, il faudra que le MBR contienne un programme capable de charger le bon PL et de lancer son exécution.

Microsoft choisit cette méthode. Le MBR contient un programme capable de charger le PL de la partition marquée comme "active".

Multi boot

Il suffit donc de réaliser un petit programme capable d'afficher un menu dans lequel l'utilisateur pourra choisir son OS. Suivant son choix, le programme chargera l'OS souhaité.

Pour y arriver, plusieurs méthodes sont possibles, mais toutes nécessitent de modifier le contenu du MBR ou d'un PL.

Le multi boot Microsoft

Depuis Windows NT, il est possible d'installer plusieurs OS sur la même machine. Par exemple, il était possible d'installer d'abord Windows 95 ou 98 ou Millenium (ces systèmes ne peuvent pas être installés ailleurs que sur la partition active du premier disque rencontré par le BIOS), puis d'installer Windows NT. Dans un tel cas, la procédure d'installation de Windows NT décelait la présence d'un autre OS Microsoft et proposait automatiquement un chargeur multi boot.

Ceci reste vrai avec Windows XP. Le chargeur de Windows XP permet un multi boot entre plusieurs OS Microsoft.

Malheureusement, ce chargeur multi boot perd considérablement de son intérêt par le fait qu'il ne détecte pas la présence d'autres systèmes que ceux de Microsoft.

Bien qu'il soit possible, au prix d'une manipulation assez compliquée, de configurer le chargeur Microsoft pour qu'il puisse démarrer une installation Linux, il sera le plus souvent plus simple d'utiliser un autre chargeur multi boot, plus universel.

Le chargeur Microsoft s'installe sur la partition qui contient la dernière installation de Windows et, comme il ne sait pas aller lire un PL sur une autre partition, il faudra effectuer une copie de ce PL sur la partition de Windows et faire pointer l'une des options du menu sur cette copie.

Les multi boots universels

Fort heureusement, il existe des chargeurs universels plus performants. Dans le monde du logiciel libre, il en existe deux qui sont universellement connus, LILO et GRUB. Le plus abouti est probablement GRUB.

LILO

LInux LOader, le plus ancien, nécessite de disposer d'une installation Linux opérationnelle. Le programme de boot est aménagé en fonction d'un fichier de configuration, mais il faut reconstruire le chargeur après toute modification du fichier, et cette opération nécessite d'être sous Linux.

Hormis cette limitation, LILO saura charger n'importe quelle version de Windows, n'importe quelle distribution Linux et d'autres systèmes encore.

Il est utilisé par défaut sur des distributions comme Debian ou Mandrake.

GRUB

GRand Unified Bootloader, est probablement le plus universel.

Il dispose d'un mini interpréteur de commande, est capable de lire des informations sur à peu près n'importe quel format de partition (FAT, EXT2, EXT3, ReiserFS, XFS, JFS...).

Ainsi, il est possible de l'utiliser sur une grande variété de plate-formes. Il est possible de le configurer à partir d'un fichier texte, mais, contrairement à LILO, il sait aller lire ce fichier lors du boot, ce qui fait qu'il est inutile de reconstruire le chargeur après modification de la configuration.

Mieux encore, si le fichier de configuration contenait une erreur, GRUB permettrait de la corriger lors du boot, évitant ainsi un "plantage" difficilement réparable avec d'autres chargeurs.

Il est même possible d'installer GRUB sur une disquette, et, pour peu que l'on connaisse la syntaxe de son interpréteur, il sera possible de démarrer n'importe quel système présent sur la machine, à partir de cette disquette.

Installation d'un multi boot

Hormis celui de Microsoft qui ne laisse pas le choix, LILO comme GRUB pourront trouver leur origine soit dans le MBR (cas le plus courant), soit dans le PL de la partition marquée comme active.

La procédure la plus simple, si l'on désire par exemple disposer d'une machine avec Windows XP et Linux, sera d'installer d'abord Windows, puis d'installer Linux. La plupart des distributions GNU/Linux sont capables d'analyser les tables de partitions, le MBR et les PL, et de détecter automatiquement la présence d'autres OS.

Dans un tel cas, il sera possible d'installer un multi boot très simplement.

Si, en revanche, vous installez Windows après avoir installé Linux, alors il est probable que tout se passera mal et qu'aucun chargeur ne sera exploitable.

Dans un tel cas, il faudra restaurer le MBR selon Microsoft. Windows démarrera, mais plus Linux. Il est alors fortement recommandé de disposer d'un système de récupération de Linux, sur une disquette par exemple, qui permettrait depuis la disquette de démarrer sur l'installation de Linux. La plupart des distributions propose un outil qui permet de le faire.

Ensuite, il faudra restaurer convenablement LILO ou GRUB pour disposer d'un multi boot.