Comment faire cohabiter plus de deux systèmes sur son ordinateur ?

Cette page ne convient pas dans le cas où Windows 8 (ou bien Windows 10) est préinstallé : dans ce cas, il est nécessaire d'installer Linux en mode EFI et le multi-boot n'a rien à voir avec ce qui est présenté ici qui est le multi-boot en mode BIOS/MBR. Cette page ne devant a priori intéresser que des utilisateurs déjà habitués de Linux, on utilisera un vocabulaire technique adapté afin d'éviter des longueurs inutiles d'explications . Les utilisateurs cherchant simplement à se documenter sur la cohabitation Linux/Windows sont invités à se reporter à la page correspondante.

La plupart des utilisateurs qui ont plus d'un système d'exploitation installé sur leur ordinateur sont en dual-boot Linux/Windows. Selon le cas, ils ont installé Grub dans le "master boot record" (MBR ou "zone amorce") pour tout leur système, ou bien ils ont installé Grub dans la racine de leur partition, et utilisé le bootloader de Windows pour relayer dessus au démarrage, la première solution étant plus simple à mettre en œuvre, mais plus sujette aux plantages lorsque Windows modifie unilatéralement le MBR.

A partir de l'installation d'un deuxième système Linux, les choses se corsent. En effet, il faut impérativement en passer par le partitionnement manuel en le préparant à l'avance avec gparted, spécifier manuellement les points de montages des partitions, et choisir comment installer Grub de façon à ce que tout se passe bien lorsque l'un ou l'autre système est mis à jour. Ce dernier point est le plus problématique et c'est ce que nous allons développer davantage.

Préparation de l'installation

Lors de l'installation d'un nouveau système Linux en parallèle avec le premier, on ne peut plus utiliser les procédures assistées, car celles-ci présupposent le plus souvent qu'elles sont adressées à des gens qui ont juste Windows et veulent installer Ubuntu en simple ou dual boot. Il faut donc choisir le partitionnement manuel.

A ce sujet, il faut commencer à s'intéresser aux impératifs liés aux partitions primaires et secondaires. Pour rappel, vous avez droit à maximum 4 partitions primaires, dont une et une seule peut être une partition étendue. Sur cette partition étendue, vous pouvez créer autant de partitions logiques que souhaité. Par ailleurs Windows fonctionne mieux en général avec des partitions primaires, tandis que Linux se moque complètement de la différence, ce qui mène à conseiller de réserver les trois premières partitions primaires pour Windows, et de n'utiliser exclusivement que des partitions logiques pour y installer Linux.

Voici un exemple réalisé sous gparted de partitionnement possible dans le cas d'une personne qui utiliserait Windows en parallèle avec 4 systèmes Linux, dont deux versions d'ubuntu qui partagent leur /home (les tailles ont été délibérément gommées car cette capture a été prise sous Virtual Box pour l'exemple):

Une fois que vous avez bien préparé toutes vos partitions, vous pouvez passer à l'installation proprement dite.

Installation proprement dite

On va supposer ici que vous installez une nouvelle version d'Ubuntu depuis un live cd, les installations d'autres systèmes étant de toutes manières souvent comparables. Lancez l'installation en mode graphique. A l'étape 4, on vous pose la fameuse question sur le partitionnement. C'est là qu'il faut cliquer sur "Définir les partitions manuellement (avancé)". Après une analyse des disques, l'installateur vous affiche la liste de vos partitions et attend que vous spécifiez comment vous souhaitez les utiliser. En pratique les manipulations sont très simples, il suffit de sélectionner la partition sur laquelle vous souhaitez faire l'installation, de cliquer sur modifier, utiliser comme ext3 ou ext4 selon la version que vous installez et vos gouts personnels et de choisir "/" comme point de montage. De manière facultative, si vous souhaitez utiliser une partition /home séparée, paramétrez là aussi. Pour reprendre l'exemple précédent, ça pourrait donner un truc comme ça:

Ca peut aussi donner un truc plus compliqué chez les gens qui utilisent davantage de partitions communes dédiées à un usage particulier. Une fois que tout est paramétré, poursuivez normalement l'installateur graphique, mais attendez avant de confirmer le lancement de l'installation, il va en effet falloir se préoccuper du Gestionnaire d'amorçage Grub et de la manière dont on l'installe, et cliquer pour cela sur le petit bouton avancé de l'écran de confirmation de l'installation.

Grub dans les cas de multiboot

Le problème de Grub dans la cohabitation de plusieurs systèmes Linux est plus complexe qu'il n'y parait, et c'est sans doute la difficulté majeure en particulier pour les personnes qui ont des versions de Linux qui utilisent grub-legacy et d'autres qui utilisent grub2. Mais procédons par ordre:

Si vous avez déjà au moins un Linux, éventuellement un Windows et que vous installez un deuxième Linux

On va gérer ce cas à part puisqu'il est susceptible d'intéresser la majorité des gens. Il est valable dans les conditions suivantes:

  • Avant d'installer cette nouvelle version, vous aviez soit un dual boot Windows/Linux, soit un mono boot Linux.
  • Dans le cas où vous aviez un dual boot avec Windows, vous n'avez rien fait de spécial pour utiliser le gestionnaire de boot de Windows. Si vous avez un doute, regardez comment votre ordinateur démarre. Si le premier menu de choix de système qui s'affiche est Grub, c'est bon. Si par contre vous avez d'abord un menu Windows qui relaie éventuellement vers un Grub, ce n'est pas bon.

Si l'une de ces deux conditions n'est pas vérifiée, reportez vous au cas général. Dans le cas contraire, plusieurs possibilités peuvent se présenter:

  • Si votre version de Linux déjà présente utilise grub-legacy, et celle que vous installez aussi, choisissez d'installer Grub à la racine de votre partition d'installation et surtout pas dans le MBR, car ça écraserait le Grub de votre autre Linux, ce qui poserait problème si vous mettez à jour les noyaux de celui-ci car vous seriez alors obligé de les ajouter à la main dans le fichier de configuration /boot/grub/menu.lst. Une fois l'installation finie, vous démarrerez sur votre premier Linux,et vous utiliserez la méthode du sous menu pour inclure le fichier de configuration de votre nouvelle installation dans celui de votre premier Linux et le faire ainsi apparaitre au boot.
  • Si votre version de Linux déjà présente utilise grub-legacy, et que celle que vous installez utilise Grub2, choisissez d'installer Grub2 dans le MBR, en effet il vaut mieux privilégier Grub2 qui est plus abouti et plus simple à mettre à jour. Lorsque vous ferez une mise à jour des noyaux de votre distribution qui utilise Grub legacy, il vous suffira de redémarrer une fois sur la distribution qui utilise Grub2 et d'utiliser la commande "sudo update-grub" pour que Grub2 procède à une redétection des noyaux présents et se mette à jour.
  • Si votre version de Linux déjà présente utilise Grub2, choisissez de ne pas installer de Grub. En effet, il vous suffira de redémarrer sur cette version, et d'utiliser la commande "sudo update-grub" pour que Grub2 procède à une redétection des noyaux présents et se mette à jour en intégrant votre nouvelle installation.

Cas Général : plusieurs versions de Windows en parallèle, plusieurs distributions Linux en parallèle

Tout d'abord un utilisateur prudent sait que Windows a la mauvaise manie de parfois modifier le MBR sans prévenir, provoquant un gros plantage du Grub si celui-ci est installé dans le MBR. C'est pourquoi il sera préférable de paramètrer les versions de Windows présentes pour qu'elles soient capables de renvoyer vers le bootloader de Linux, plutôt que d'installer Grub sur le MBR, supprimant ainsi le risque de problèmes. Si l'une de vos versions de Windows est Vista ou ultérieur, vous pouvez vous inspirer de ce tutoriel: comment_amorcer_ubuntu_avec_bootmgr. La manipulation précédente suppose que vous ayez au moins une partition Linux sur laquelle vous ayez installé un gestionnaire d'amorçage de type Grub ou Grub2. Certains puristes auront même un /boot dédié commun à toutes leurs installations, mais ceux là n'ont pas besoin de ce tutoriel. On va maintenant distinguer deux cas:

  • Si aucune de vos versions de Linux n'utilise Grub2: Pour chacune, installez Grub dans l'amorce de sa partition d'installation, et paramétrez le bootloader de Windows pour qu'il renvoie vers l'une d'entre elles. Si vous n'utilisez pas Windows, choisissez celle que vous avez le moins de probabilité de devoir réinstaller par reformatage et installez son Grub dans le MBR. Puis utilisez la méthode du sous menu pour qu'elle inclue les autres Grubs dans le sien. De cette manière, vous n'aurez absolument rien à faire lorsque vous mettez à jour des noyaux.
  • Si au moins une de vos versions de Linux utilise Grub2: Choisissez celle utilisant Grub2 que vous êtes le moins susceptible de devoir réinstaller, installez son Grub2 dans l'amorce de sa partition, paramétrez s'il y a lieu le bootloader de Windows pour qu'il renvoie dessus, sinon (si vous n'utilisez pas Windows) installez là dans votre MBR. Pour toutes les autres versions de Linux, n'installez pas de gestionnaire d'amorçage: Chaque fois que vous ajouterez une distribution ou mettrez à jour son noyau, redémarrez sur la distribution pour laquelle vous avez installé Grub2, et utilisez la commande "sudo update-grub" pour que Grub2 procède à une redétection des noyaux présents et se mette à jour en intégrant votre éventuelle nouvelle installation.

Exemple 1 : Installation de Grub dans le MBR

Voici par une capture d'écran qui illustre quelles options utiliser pour installer Grub dans le MBR:

Exemple 2 : Installation de Grub à la racine de la partition d'installation d'Ubuntu

Voici par une capture d'écran qui illustre quelles options utiliser pour installer Grub à la racine de la partition d'installation d'Ubuntu:

Problèmes possibles:

Grub2 refuse de s'installer dans le MBR quoi que je fasse

C'est un problème qui est arrivé au rédacteur de cette page: Une version de Linux qui utilise Grub-Legacy est installée, on installe une deuxième version qui utilise Grub2, on essaye d'installer Grub2 dans le MBR, et non seulement ça plante, mais en plus ça fait échouer l'installation. Je l'ai réglé par la bidouille suivante: installez Grub2 dans l'amorce de la partition de son Linux, puis modifiez le grub-legacy en vigueur par la méthode permettant de relayer vers Grub2 depuis Grub legacy, et configurez-le pour que par défaut le relais soit préselectionné. Puis configurez-le pour qu'il soit caché et que son délai soit à zéro. De cette manière-ci, le grub-legacy sera bien chargé à un moment de chaque démarrage, mais il a été court-circuité, renvoyant systématiquement sur votre Grub2 qui devient ainsi maitre.


Contributeurs: Aldian.