Grub : Multiboot Mandriva, Windows & Ubuntu

De Wiki de la communauté Mandriva.

Cet article traite de l'installation, de la restauration et de la configuration du programme d'amorçage Grub pour Linux ou de celui de Windows®.

Sommaire

Conserver le Bootloader de Mandriva lors de l'ajout de systèmes d'exploitation

Vous voulez conserver intact votre MBR originel ? Vous avez un ordinateur tatoué ? Vous avez un 2éme disque dur ? Vous avez plusieurs système d'exploitation ?

Cette solution est sûrement la meilleure car les deux systèmes sont ainsi parfaitement indépendant : si vous devez réinstallez Windows, GRUB ne sera pas effacé. De plus, vous pouvez booter sur votre Windows même si vous avez enlevé votre second disque-dur !

Installer Windows / Ubuntu / ou autre sur un disque dur différent de celui contenant Mandriva

On part du principe que Mandriva est installé sur le disque dur n°1, et que le disque n°2 est vierge / prêt pour accueillir un autre système ; ceci implique :

- Il existe sur le disque 2 un Espace Libre non-formaté.

- Il contient au moins une partition primaire libre, suffisamment grande pour installer un OS (8 Go min).

- Vous y avez au préalable créé les partitions nécessaires (à l'aide d'un Live CD ou de votre distro Mandriva et du Harddrake (cf Tuto Harddrake pour exemple).

Pour continuer, nous allons prendre un exemple pratique en installant d'abord windows puis Ubuntu.

Avant l'installation

Il vous faut changer l'ordre de démarrage de vos disques durs dans le BIOS pour que le disque dur destiné à Windows soit devant le disque dur contenant Mandriva. (donc que le disque 2 boot avant le disque 1)

Exemple : 1. Lecteur CD/DVD, 2. Disque destiné à Windows, 3. Disque dur Mandriva

Nota : Si votre BIOS ne permet pas de choisir l'ordre de démarrage entre les différents disques durs (cas très rare), il vous faudra alors inverser les sélecteurs Maître/Esclave de vos disques pour que le disque destiné à Windows soit Maître et le disque Mandriva Esclave. Si vos sélecteurs Maître/Esclave sont sur le mode automatique et que vous tenez à les laisser ainsi, vous pouvez inverser la position des disques sur la nappe, voir sur les contrôleurs IDE. Ou encore débrancher le disque Mandriva pour ne garder que le disque vierge / destiné aux nouveaux OS.

Procédure d'installation Windows

Vous pouvez suivre la procédure normale d'installation de Windows. Soit vous avez prévu et vos partition sont prêtes soit votre disque dur est vierge. Dans notre exemple les deux disques font 250 Go. Suivant vos besoin, je vous conseille de créer deux partitions:

- une de 5 Go pour le système et qq programmes windows - une autre pour vos données & programmes (à adapter selon vos besoin mais garder à l'idée qu'il vous faudra de la place pour les 3 partitions d'ubuntu - compter environ 60 Go pour être tranquille - à adapter selon vos besoins).

Finaliser l'installation de Windows, et rebooter sur le CD d'Ubuntu.

Procédure d'installation d'Ubuntu

Vous pouvez suivre la procédure normale d'installation en mode graphique.

Attention ! Arrivé à la phase du partitionnement, et pour éviter tout problème avec vos partitions Windows, choisissez la procédure manuelle, et ne touchez pas aux partitions Windows.

Arrivé à la partie à l'écran récapitulatif, cliquer sur options avancées. Si vous avez débranché votre disque un, il n'y a pas de pb mais si vous avez changer l'ordre de boot il vous faut bien vérifier l'endroit où va s'installer le bootloader d'Ubuntu. Indiquez alors le nom du disque noté lors du partitionnement, pour que GRUB s'installe sur le MBR du disque où vous installez Ubuntu (ici "(hd1)" qui correspond à votre deuxième disque ou sdb si vous avez deux disques SATA).

Faites attention à ne pas indiquer le disque Mandriva !!

Vous pouvez ensuite finir l'installation normalement.

Rebooter et vérifier que tout s'est bien passé. Vous devez arriver sur le boot d'Ubuntu et pouvoir choisir entre Ubuntu et Windows (si vous avez débranchez le disque Mandriva) ou Ubunu, Mandriva et Windows (si vous avez installer avec tous les disques branchés).

Après l'installation

Retournez dans votre BIOS et rétablissez l'odre de boot initial. Le disque sata1 contenant Mandriva redevient le maître.

Vous arrivez maintenant sur le GRUB de Mandriva mais vous n'avez pas de trace d'un quelconque Windows ou Ubuntu. Il va falloir éditer le menu.lst de grub. En root :

Code:

vim /boot/grub/menu.lst

Le plus simple est de recopier ce qui vous intéresse du Grub Ubuntu. (une petite adaptation est sans doute nécessaire.

Code:

cat /sdb?/boot/grub/menu.lst

Nota : vous aurez bien sûr pris soin de monter les partitions Ubuntu dans media par exemple. Ici, j'ai gardé sdb mais vous pouvez le monter dans /media/ubuntu/systeme.

Attention : manipuler GRUB peut vous empêcher de redémarrer. Mieux vaut comprendre ce que l'on fait. Je vous conseille les excellents guide de guide linux : [1]

=> Présentation détaillée de GRUB : [2]

Une fois les modifications effectuées, sauver et quitter. Il vous faut encore recharger correctement le bootloader. Vous pouvez le faire en mode graphique grâce au mcc de Mandriva en lançant l'outil de configuration du démarrage.

Ceci rechargera la liste comme il faut !!

Pour booter sur Windows

Maintenant, il se peut que Grub n'arrive pas à lancer Windows. Il faut savoir que Windows est très exigeant : il n'accepte de ce lancer que s'il est sur le premier disque dur. Cependant, il n'est heureusement pas très malin et nous pouvons le tromper facilement.

Il vous faut pour cela ouvrir le menu.lst de Grub. (voir plus haut)

Cherchez la ligne « Title Microsoft Windows... » normalement située à la fin de ce fichier, et rentrez les paramètres « map », qui vont virtuellement inverser l'ordre de vos disques lorsque vous lancerez Windows, lui faisant croire qu'il se trouve sur le premier. N'oubliez pas d'enregistrer le fichier après avoir fait les modifications éventuelles.

Exemple qui devrait normalement s'appliquer à votre cas (le disque n°1 devient le n°2, et le disque n°2 devient le n°1) :

Code:

title           Microsoft Windows XP Catharsis
map (hd0) (hd1)
map (hd1) (hd0)
root (hd1,0)
savedefault
makeactive
chainloader     +1


Nota : Ici on utilise un chainloader et donc une syntaxe différente. Ceci trompe windows en chargeant le loader de Microsoft (très nul soit dit en passant.)

Au cas où vous devriez réinstaller Windows

- Il vous faudra dans ce cas faire la procédure inverse de celle que vous avez faites en a.

- Réinstaller Windows en faisant attention de ne pas écraser vos partitions Ubuntu, et verifier son bon fonctionnement.

- Et pour finir, vous pouvez réinstaller le boot d'Ubuntu mais ce n'est pas obligatoire puisque vous avez votre boot Mandriva intact. Si toute fois vous souhaitiez conserver cette configuration qui vous permet de débrancher le disque mandriva et d'accéder soit à Ubuntu soit à Windows, Il faut le réinstaller sur le MBR du disque contenant et GRUB et Windows. Suivant votre configuration, il faudra adapter.

Exemples de deux GRUB

sda

Code:

timeout 5
color black/cyan yellow/cyan
gfxmenu (hd0,0)/boot/gfxmenu
default 0

title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/sda1 resume=/dev/sda5 splash=silent vga=794
initrd (hd0,0)/boot/initrd.img

title linux-nonfb
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux-nonfb root=/dev/sda1 resume=/dev/sda5
initrd (hd0,0)/boot/initrd.img

title failsafe
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=failsafe root=/dev/sda1 failsafe
initrd (hd0,0)/boot/initrd.img

title Ubuntu, kernel 2.6.20-16-generic
kernel (hd1,4)/boot/vmlinuz-2.6.20-16-generic BOOT_IMAGE=Ubuntu,_kernel_2620-16-                                                                          generic root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro quiet splash locale=fr                                                                              _FR
initrd (hd1,4)/boot/initrd.img-2.6.20-16-generic

title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
kernel (hd1,4)/boot/vmlinuz-2.6.20-16-generic BOOT_IMAGE=Ubuntu,_kernel_2620-16-                                                                          generic_ root=/dev/sda1 ro single
initrd (hd1,4)/boot/initrd.img-2.6.20-16-generic

title Microsoft Windows XP Professional
root (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1

sdb

Noter que le fichier menu.lst d'Ubuntu est moins simple (mm si l'on enlève les lignes d'explications - précédées de #)

Code:

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default         0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout         10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title         Windows 95/98/NT/2000
# root          (hd0,0)
# makeactive
# chainloader   +1
#
# title         Linux
# root          (hd0,1)
# kernel        /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro

## Setup crashdump menu entries
## e.g. crashdump=1
# crashdump=0

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd1,4)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash locale=fr_FR

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false 

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## ## End Default Options ##

title           Ubuntu, kernel 2.6.20-16-generic
root            (hd1,4)
kernel          /boot/vmlinuz-2.6.20-16-generic root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro  quiet splash locale=fr_FR
initrd          /boot/initrd.img-2.6.20-16-generic
quiet
savedefault

title           Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root            (hd1,4)
kernel          /boot/vmlinuz-2.6.20-16-generic root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro  single
initrd          /boot/initrd.img-2.6.20-16-generic

title           Ubuntu, kernel 2.6.20-15-generic
root            (hd1,4)
kernel          /boot/vmlinuz-2.6.20-15-generic root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro  quiet splash locale=fr_FR
initrd          /boot/initrd.img-2.6.20-15-generic
quiet
savedefault

title           Ubuntu, kernel 2.6.20-15-generic (recovery mode)
root            (hd1,4)
kernel          /boot/vmlinuz-2.6.20-15-generic root=UUID=d698bf55-3ca1-4eba-8ffc-5b54fe5385c4 ro  single
initrd          /boot/initrd.img-2.6.20-15-generic

title           Ubuntu, memtest86+
root            (hd1,4)
kernel          /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title           linux (on /dev/sda1)
root            (hd0,0)
kernel          /boot/vmlinuz BOOT_IMAGE=linux root=/dev/sda1 resume=/dev/sda5 splash=silent vga=794
initrd          (hd0,0)/boot/initrd.img
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title           linux-nonfb (on /dev/sda1)
root            (hd0,0)
kernel          /boot/vmlinuz BOOT_IMAGE=linux-nonfb root=/dev/sda1 resume=/dev/sda5
initrd          (hd0,0)/boot/initrd.img
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title           failsafe (on /dev/sda1)
root            (hd0,0)
kernel          /boot/vmlinuz BOOT_IMAGE=failsafe root=/dev/sda1 failsafe
initrd          (hd0,0)/boot/initrd.img
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title           2.6.17-14 (on /dev/sda1)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.17-14mdv BOOT_IMAGE=2.6.17-14 root=/dev/sda1 resume=/dev/sda5  splash=silent vga=794
initrd          (hd0,0)/boot/initrd-2.6.17-14mdv.img
savedefault
boot


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sdb1
title           Microsoft Windows XP Professional
root            (hd1,0)
savedefault
map             (hd0) (hd1)
map             (hd1) (hd0)
chainloader     +1