Il y a énormément de messages concernant le multiboot, preuve que malgré les outils d'installation automatique fournis par Mandrake (et autres distributions) ça ne marche pas toujours. C'est ce qui m'est arrivé sur un ordinateur (alors que je n'ai eu aucun problème sur d'autres). J'ai passé plusieurs jours (et nuits !) à éplucher les FAQ, HOWTO et les très nombreux sites consacrés à ce problème sans arriver à un résultat. J'ai fini par me décider, au vu des articles élogieux sur GRUB, à utiliser ce "loader" et je ne le regrette pas : il est vraiment fantastique et mon multiboot DOS/Windows 2000/ Windosw XP/Linux fonctionne enfin à merveille.
Je vous suggère, même si vous avez un multiboot fonctionnel, ou que vous n'avez que Linux sur votre PC, ou que vous avez une disquette de boot de secours qui marche, de créer une disquette de boot GRUB. D'une part vous saurez vous dépanner le jour ou votre PC ne voudra plus booter (et oui, ça arrive !). D'autre part le boot via une disquette GRUB est bien plus rapide et souple que celui de la disquette de boot crée par Mandrake.

Pour info, la config qui m'a posé problème (mais la démarche sera semblable pour tout autre PC):
- PC carte mère ASUS A7V333 + chip promise 20276 pour piloter 2 slots IDE supplémentaires normalement pour disques RAID, mais j'ai flashé un bios bidouillé pour les utiliser en UDMA pur.
- Sur adaptateur SCSI un graveur de CD et un lecteur JAZ
- 1 disque dur IDE sur port IDE1 (standard)
- 1 lecteur de CD sur port IDE2 (standard)
- 2 disques dur IDE identiques sur port IDE3 (promise)
- 1 disque dur IDE sur port IDE4 (promise)
MSDOS et W2000 sont installés sur le disque en IDE1, bootable. MSDOS est sur la première partition (FAT) qui apparaît comme C:
XP est installé sur le disque en IDE4
Différentes versions de Linux (dont MDK9) sont installées sur les disques connectés en IDE3.

En plus de la doc GRUB vous éventuellement besoin :
- d'une disquette bootable avec MSDOS avec les commandes fdisk, attrib et sys. On peut sans doute utiliser à la place FreeDos (http://www.freedos.org/) mais je n'ai pas essayé.
- de l'utilitaire Bootpart que vous trouverez sur le site http://www.winimage.com/bootpart.htm
- d'un mini-linux, tomsrtbt par exemple (http://www.toms.net/rb/)

Je donne ici les grandes lignes : en ce moment je n'ai le temps de tout détailler. En cas de problème, m'envoyer un mail.

1- téléchargez à partir du site:
http://www.gnu.org/manual/grub/index.html
la documentation de GRUB et l’imprimer.

2 Créez une disquette de boot comme indiqué dans cette documentation, page 6, paragraphe 3.1.
Cette création consiste à copier, à partir du répertoire grub de la distribution Linux que l'on a installé, le fichier stage1 sur le secteur de boot de la disquette et le fichier stage2 sur le secteur suivant.
Je conseille également de récupérer le fichier menu.lst et de le copier sur la disquette : c'est le menu de configuration de GRUB. Il ne fonctionne sans doute pas (sinon vous n'auriez pas ces problèmes de démarrage et vous ne seriez pas en train de lire ces lignes) mais il servira de base par la suite pour créer un menu.lst fonctionnel.

Tous ces fichiers se trouvent par exemple dans le répertoire /boot/grub de la version de Mandrake que l'on vient d'installer. Si on ne peut pas démarrer Mandrake, on utilisera soit un mini-linux (je conseille tomsrtbt) ou bien le CD d'installation de Mandrake pour installer un Linux de secours et pouvoir récupérer stage1 et stage2 sur le disque dur.
Dans la foulée vérifiez avec le fdisk de linux que le disque de boot a bien l'attribut bootable. Supprimez l'attribut bootable que l'utilitaire Mandrake d'intallation de Lilo ou de GRUB a peut-être mis sur d'autres disques et qui est peut-être à l'origine de vos problèmes de boot.

3 DANS LE CAS PROBABLE OU VOUS AVEZ TOUT ESSAYE ET QUE PLUS RIEN NE MARCHE (impossible de booter LINUX et/ou les SE Microsoft):

Rien n'est perdu. Inutile de tout réinstaller :
- Démarrez avec une disquette MSDOS
- restaurez le MBR sur le disque de boot avec la commande fdisk /mbr
- facultatif : si nécessaire formatez la partition C:
- facultatif : installez MSDOS en effectuant la commande sys c: en en copiant éventuellement les fichier du système MSDOS
- facultatif : vous pouvez sauvegarder, dans un fichier que vous appellerez par exemple bootsect.dos, le secteur de boot de MSDOS qui vient d'être créé : il vous permettra (si vous le désirez) de démarrer MSDOS à partir des menus que vous allez créer (voir plus loin).
- restaurez le secteur de boot de NT/W2000/XP. Le plus simple est d'utiliser Bootpart.
La commande est (voir la doc) :
BOOTPART WINNT BOOT:C:
- Si nécessaire remettre les fichiers NTLDR et NTDETECT.COM sur C: (vous les trouverez par exemple dans le répertoire I386 des CD d'installation de NT, W2000 ou XP).
Attention au problème de compatibilité : par exemple NTLDR et NTDETECT.COM du CD W2000 ne permettent pas de démarrer XP. Par contre vous pourrez démarrer toutes les versions NT/W2000/XP si vous utilisez les versions les plus récentes de ces fichiers qui se trouvent sur le CD de XP.
Enfin créez ou copiez le fichier boot.ini Le mien ressemble à ça :
---------------
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\bootsect.dos="MS-DOS"
C:\bootsect.grb="GRUB"
-----------------------------
NB : ces fichiers sont peut-être déjà sur votre partition C:, mais comme ils ont l'attribut caché (et système) vous ne les voyez peut-être pas. Utilisez la commande DOS Attrib -h -s *.* pour éventuellement les faire apparaître.


Rebootez : vous devez voir apparaître le boot Microsoft qui doit maintenant fonctionner correctement pour lancer W2000 et XP, et pour lancer MSDOS si vous avez généré le fichier bootsect.dos et qu'il se trouve bien sur C:.

4 Il s'agit maintenant de configurer GRUB sur disquette (c'est à dire de mettre les bonnes valeurs dans le fichier menu.lst) pour pouvoir booter linux.
Bootez avec la disquette GRUB : vous voyez apparaître le menu. Mais comme il ne fonctionne probablement pas il faut le modifier. C'est là où GRUB est très supérieur à tout autre loader : vous avez la main pour effectuer toutes sortes de modifications et de tests, en particulier :
La touche <e> : permet d'éditer la ligne de commande ; ce qui surprend au début c'est qu'on peut n'en voir que la fin. Pour vous déplacer dans cette ligne de commande, utilisez les flèches ou les touches <début> et <fin>.
La touche <c> : permet de lancer des commandes.

Si actuellement vous ne pouvez pas booter (Mandrake) Linux c'est très probablement que les indications de disque et partitions dans le menu sont fausses.
Pour voir comment GRUB identifie les disques et les partitions, passez en mode commande (touche <c>) ; le prompt grub> apparaît.

Malheureusement le clavier est anglais. Voici quelques correspondances de touches utiles pour les commandes à entrer :
US FR
( majuscule ç
) majuscule à
m ,
a q
, ;

Pour repérer les disques et les partitions, tapez :
root (hd
puis tapez sur la touche <tab>
Vous voyez apparaître les disques présents, dans mon cas le message :
"Possible disks are : hd0 hd1 hd2 hd3"
Mais ou sont mes versions de linux ? Complétez la commande avec 0 :
root (hd0
et tapez sur la touche <tab> 2 fois pour faire apparaître les partitions présentes sur hd0.
Refaites la même chose pour hd1, hd2, etc. Vous repérerez ainsi facilement quel disque et partition contiennent le répertoire / de la version de Linux que vous voulez lancer.
Tapez sur la touche <Echap> 1 ou 2 fois, sélectionnez une ligne du menu que vous voulez modifier et tapez sur la touche <e> pour l'éditer. Entrez le bonnes valeurs (hdx,y) que vous aurez trouvées dans la manip précédente. Puis tapez sur la touche <entrée> pour valider vos corrections (<Echap> si vous ne le voulez pas) et sur la touche <b> pour booter avec cette commande corrigée. Si vous ne vous êtes pas trompé Linux démarrera. Vous pouvez maintenant corriger le fichier menu.lst sur la disquette GRUB et dans le répertoire /boot/grub du Linux que vous utilisez.

ATTENTION : au niveau du lancement des systèmes Windows il y a une commande "makeactive" qui semble foutre la m….. Je l'ai mise en commentaire (en la faisant précéder de #) et je n'ai plus de problème.

5 Installation du multiboot
Suivre les indications du paragraphe 3.2 et 4.2.2 de la doc GRUB.
EVITER d'installer le boot Grub sur le disque actif : ça écrase le boot NT/W2000/XP, ce qui ne serait pas trop grave, si pour une raison que je n'ai pas encore parfaitement identifiée ça ne provoquait dans certaines configurations matérielles un changement des lettres attribuées aux disques sous W2000 avec impossibilité de booter W2000 (il semble qu'avec XP ce problème n'apparaisse pas). Pour ceux qui se trouvent dans cette situation et pour y remédier, voir la "knowledge base" de Microsoft, articles Q249321, Q234048 et Q223188. Je vous conseille même de punaiser ces documents au-dessus de votre bureau :-)

Si, comme je vous le conseille, vous installez le boot grub ailleurs que sur le disque actif, il faudra le lancer à partir du boot.ini de NT/W2000/XP (cf. la ligne
C:\bootsect.grb="GRUB"
dans mon fichier boot.ini ci-dessus). Dans ce cas, copiez le secteur où vous avez placé le boot de grub dans un fichier que vous nommerez par exemple "bootsect.grb" et que vous placerez sur C:

A titre d'exemple voici un extrait de mon fichier menu.lst :
-----------------------------------
timeout 10
color black/cyan yellow/cyan
i18n (hd2,1)/boot/grub/messages
keytable (hd2,1)/boot/fr-latin1.klt
#altconfigfile (hd1,0)/boot/grub/menu.once
default 0

title Linux_MDK9
kernel (hd2,1)/boot/vmlinuz root=/dev/hdc2 quiet devfs=mount vga=788
initrd (hd2,1)/boot/initrd.img

# <ciseaux, ici j'abrège>

title Linux_MDK8.2
kernel (hd3,0)/boot/vmlinuz root=/dev/hdd1 quiet devfs=mount vga=788
initrd (hd3,0)/boot/initrd.img

title Dos_W2000_XP
root (hd0,0)
# makeactive
chainloader +1

title floppy
root (fd0)
chainloader +1
--------------------------------------------------------------------
On y voit que l'avant dernier "title" permet de revenir au besoin sur le menu de boot de NT.

Voilà, un peu long (le sujet est complexe) mais j'espère que ça pourra dépanner. J'ai fait ces manips il y a une quinzaine de jours et j'ai rédigé ces notes à la hâte aujourd'hui à partir de mes souvenirs : j'espère que c'est compréhensible et qu'il n'y a pas trop d'erreurs.

Jean-Claude


__________________________________________
Jean-Claude GARAUD
Laboratoire d'immunopathologie
Institut d'hemato-immunologie
Hopital Civil
67091 - Strasbourg Cedex, FRANCE
Tel : 03 90 24 39 79
Fax : 03 90 24 40 16
__________________________________________


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";


Répondre à