Outils pour utilisateurs

Outils du site


multiboot_grub

Multiboot grub

Problème à résoudre

On a sur un même PC un linux préféré (la suse!), et un ou plusieurs linux, ainsi qu'éventuellement Windows (qui en général a été installé en 1er sur le 1er disque, et c'est préférable).

On choisit la solution suivante: le PC boote sur le grub du linux préféré, et c'est ce grub qui donnera la main aux autres linux et à windows s'ils sont choisis au menu du boot.

Mode opératoire

A l'installation du “linux préféré” (celui que vous utilisez habituellement), vous demandez que l'amorce de boot soit placé sur le MBR.

Attention: si Windows est déjà installé, son amorce de boot est déjà installé sur le MBR, et vous allez donc l'écraser. Vous devez donc savoir le remettre en place au cas où. 3 solutions courantes pour cela:

  • avoir le disque d'installation de windows (voir le site de JC Bellamy).
  • utiliser la suse en fonctionnement (→ yast) car elle sauvegarde le MBR qu'elle a remplacé, et peut le restaurer.
  • avoir sauvegardé le MBR windows quelque part (disque, disquette, carte mémoire, disque réseau,…) et savoir le restaurer avec la suse ou avec un cd live linux. Par exemple, si MBR.bin est le fichier sauvegardé du MBR, en se plaçant en console sous root
    • Pour le sauvegarder:
dd if=/dev/hda of=/chemin/MBR.bin bs=446 count=1
  • Pour le restaurer:
dd if=/chemin/MBR.bin of=/dev/hda bs=446 count=1

Au cas où l'amorce de boot du MBR serait abimé, rappelez-vous que vous pouvez toujours lancer la suse installé avec le cd d'installation de la suse. Il faut demander “installation”, puis après quelques pages on vous demande ce que vous voulez faire (nouvelle installation ou réparation). Vous cliquez alors sur le bouton “autres”, et vous avez parmi les choix proposés, celui de lancer le linux déjà installé.

Une fois le linux préféré installé avec son amorce de boot sur le MBR, c'est lui qui est lancé à l'allumage du PC. Il apparait le menu de grub avec plusieurs lignes concernant ce linux, et en général, une ligne concernant windows.

Voyons ce que ça fait dans le fichier /boot/grub/menu.lst (les numéros de ligne ne font pas partie du texte!)

 1. # Modified by YaST2. Last modification on dim mar 12 13:57:14 CET 2006
 2.  
 3. color white/blue black/light-gray
 4. default 0
 5. timeout 8
 6. gfxmenu (hd1,4)/boot/message
 7.  
 8. ###Don't change this comment - YaST2 identifier: Original name: linux###
 9. title SUSE LINUX 10.0
10.     root (hd1,4)
11.     kernel /boot/vmlinuz root=/dev/hdb5 vga=0x31a selinux=0    resume=/dev/hdb7  splash=silent showopts
12.     initrd /boot/initrd
13.  
14. ###Don't change this comment - YaST2 identifier: Original name: windows###
15. title Windows
16.     chainloader (hd0,0)+1
17.  
18. ###Don't change this comment - YaST2 identifier: Original name: floppy###
19. title Disquette
20.     chainloader (fd0)+1
21.  
22. ###Don't change this comment - YaST2 identifier: Original name: failsafe###
23. title Failsafe -- SUSE LINUX 10.0
24.     root (hd1,4)
25.     kernel /boot/vmlinuz root=/dev/hdb5 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off  3
26.     initrd /boot/initrd
27.  
28. ###Don't change this comment - YaST2 identifier: Original name: memtest86###
29. title Test memoire
30.     kernel (hd1,4)/boot/memtest.bin root=/dev/hdb5
31.  
32. title Ubuntu Breezy v 5.10
33.     chainloader (hd1,7)+1

Quelques commentaires:

  • lignes 4 et 5: indique que le système en 1ère ligne (=0) sera lancé automatiquement après une attente de 8 secondes.
  • ligne 6: lancement de l'écran du menu grub: /boot/message qui est une archive cpio. Vous pouvez donc changer le fond d'écran si vous voulez. il s'appelle back.jpg et il est en 800×600.
  • ligne 16: vous voyez avec quelle simplicité grub lance windows! Notez la manière dont grub nomme les disques: (hd0,0) pour grub correspond à hda1 pour linux (=1ère partition du disque maitre du 1er connecteur IDE). Attention, si windows est sur le 2ème disque, c'est quelquefois un peu plus compliqué (voir le manuel de grub).
  • attention: le menu grub supporte 6 lignes visibles à l'écran. Les suivantes sont cachées et il faut descendre la ligne de sélection pour les voir (mais ça marche quand même!).
  • notez les lignes 32 et 33 qui ont été ajoutées à la main: on en parle plus loin.

Après cela, on installe un autre linux. On demande alors au programme d'installation de placer l'amorce de boot de grub au début de la partition racine (“/”) et pas sur le MBR. Par exemple si la partition racine du linux est dans hdb8 (4ème partition logique du 2ème disque), il faut donner /dev/hdb8 comme adresse (ou hd1,7 pour grub). Rappelez-vous que la 1ère partition logique est numérotée à partir de 5 pour linux (4 pour grub).

Faites quand même attention, de manière générale, le mode par défaut des distributions, c'est de placer l'amorce de boot sur le MBR. Il y a donc à chercher un peu pendant l'installation pour le mettre ailleurs: mode expert, ou personnalisé, etc… Et il a des distributions comme mandriva 2006 qui écrasent le MBR sans offrir d'autre choix et sans rien demander: c'est pour moi une faute qui condamne la distribution. pourquoi alors ne pas reformater la partition de windows sans rien demander non plus ? Vous faites ce que vous voulez, mais vous êtes prévenu…

D'habitude, l'installation se passe en 2 temps. A la fin du 1er temps, il faut rebooter. Mais comme on a placé l'amorce de boot sur hda5, on reboote sur le 1er linux et non sur celui qu'on est en train d'installer. Il faut alors modifier le menu grub du 1er linux en ajoutant comme je l'ai fait sur les lignes 32 et 33 ci-dessus:

titre le_nouveau_linux_en_essai

chainloader (hd1,7)+1  

Vous devrez bien sûr utiliser la bonne adresse pour chainloader. Pour lancer ubuntu, j'ai mis (hd1,7) parce qu'ubuntu est placé sur la 4ème partition logique du 2ème disque dur IDE.

L'adresse peut être sur un disque usb ou sata, mais il faut voir comment grub nomme les disques par rapport à l'ordre du bios. En particulier,grub ne distingue pas les disques usb des autres disques dans la manière de les nommer (contrairement à linux: hda, hdb, sda, sdb, …).

Il faut bien sûr faire cela avec un éditeur de texte sous root. Soit en console avec vim (ou pico ou nano), soit avec kate (ou write) à condition de le démarrer à partir de konqueror en mode superutilisateur (sélection de /boot/grub/menu/lst → clic droit → ouvrir avec…→ kate ou write).

Voilà, c'est fait. Désormais, tous vos systèmes d'exploitation (linux comme windows) sont lancés par le grub de votre linux préféré (la suse bien sûr!). Si vous supprimer le linux en essai, il vous suffira de supprimer les 2 lignes avec chainloader que vous avez mises dans le menu grub de votre suse.

multiboot_grub.txt · Dernière modification: 2007/12/15 08:42 par tyrtamos

Outils de la page