multiboot avec grub

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

multiboot avec grub

Messagepar jibe » 11 Mars 2006 00:52

Bonjour,

Un peu pour le fun, un peu par besoin, j'ai un véritable multiboot :
- Ubuntu
- W$98
- XP
- Mandrake
- Centos

J'avais ça depuis longtemps (avec un peu moins d'OS), mais à l'occasion de l'installation d'Ubuntu, j'en ai profité pour remplacer Lilo par Grub. Et, du coup, je me pose une question : j'ai toujours le bootloader d'XP qui me propose le choix entre W98 et XP, et je n'ai pas su trouver le moyen de lancer l'un ou l'autre des Windows directement par grub.

Je pense quand même que grub doit bien être capable de faire la même chose que le bootloader de W$ :P

Quelqu'un sait comment faire ?
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Gaston » 12 Mars 2006 13:26

Salut Jibe,
j'ai plus de multiboot Win depuis longtemps, mais peux-tu préciser :
ton multiboot est fonctionnel, le seul problème est que lorque tu choisis Windows, tu tombes sur le multiboot XP, c'est çà ?
C'est quoi ta définition de grub pour windows ? quand tu précises la partition w98 tu as quand même le multiboot XP ?
Tu as demandé à Google = multiboot NT linux ?

Bonjour chez toi,
A+
Gaston
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar jibe » 12 Mars 2006 22:56

Salut Gaston (sans oublier les autres :wink: ),

Gaston a écrit:ton multiboot est fonctionnel, le seul problème est que lorque tu choisis Windows, tu tombes sur le multiboot XP, c'est çà ?

Tout à fait ! A une petite nuance près, qui me parait d'ailleurs assez normale : je suis obligé de lancer mes deux W$ (98 et XP) exactement de la même façon... En fait, je suis obligé de chainer sur le bootloader de W$, qui me propose son menu de choix XP ou 98 :

Code: Tout sélectionner
title Windows 98
root (hd0,0)
makeactive
chainloader +1

title Windows XP
root (hd0,0)
makeactive
chainloader +1


Gaston a écrit:Tu as demandé à Google = multiboot NT linux ?

J'ai bien consulté l'ami google, mais n'ai pas su trouver ce lien si intéressant ! Je pense à priori que ça devrait me permettre de résoudre mon problème :)

Reste que je ne vois pas pourquoi je ne peux booter ni sur l'un ni sur l'autre des Windows directement : que le bootloader d'XP soit installé ou non, je devrais pouvoir au moins lancer XP directement, mais
Code: Tout sélectionner
title Windows XP
root (hd0,5)
makeactive
chainloader +1

refuse de le faire... Bon : peut-être qu'en lisant attentivement la page que tu m'indiques je vais comprendre pourquoi... J'aurais préféré ne pas avoir un tas de manips plus ou moins risquées à faire et trouver comment grub pourrait faire directement ce que fait le bootloader d'XP, qui se trouverait ainsi désactivé tout en restant en place...
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Gaston » 13 Mars 2006 00:25

ben ce que je pense est que le boot loader de XP est venu remplacer celui de w98 au debut de ton hd0.
A partir de là quand tu adresses (hd0,0) c'est celui-ci que tu lances.
En (hd0,5), win n'aurait rien mis en ce qui concerne des infos bootables. Tout se passe en (hd0,0) avec la capacité à "démarrer" les 2 OS.
J'ai peur que les infos sous le lien ne t'amène qu'à une grande déception (voir plus :!: attention :!: ).
Mais si un vrai connaisseur pouvait confirmer ou infirmer tout ceci ...

dslé
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Jacques- » 13 Mars 2006 11:56

Est-ce qu'il y aurait moyen de voir le boot.ini de XP ?
Je pense que l'explication est correcte, XP détectant à l'installation les anciens OS M$ et mettant les entrées appropriées dans le boot.ini pour les faire démarrer depuis le menu de boot d'XP.
Si c'est bien le cas, une solution peut être de démarrer depuis le CD de W98, de ne pas lancer l'installation, de faire un fdisk /status par exemple pour voir où pointe le disque C: et s'il s'agit bien du disque de Win98, rendre celui-ci amorçable par la commande sys c: .
Ensuite, grub devrait pouvoir passer la main au chargeur de Win98 (io.sys) pour démarrer le système.
Cela ne devrait pas changer la configuration du boot.ini de XP qui devrait toujours pouvoir démarrer les deux. Et si cela fonctionne bien, rendre le menu de démarrage de XP prédéfini avec une tempo relativement courte (cela permet de garder la possibilité de lancer W98 depuis le menu de XP en cas de soucis, ou de remise à jour de XP qui écrasera tout).
Si ton XP est en NTFS et le reste en ext2/3, Win98 ne devrait pas voir grand chose d'autre comme disque que son système à lui. Mais 9x (comme XP pour ce que j'en sais) ne sait pas démarrer depuis une partition étendue. Si le boot W98 est bien en hd0,5 il s'agit dans ce cas d'une partition étendue et la rendre active ne fera probablement rien.

Bien entendu, comme toujours pour ces manipulations, la sauvegarde des données est plus que conseillée.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar jibe » 13 Mars 2006 20:23

Salut,

A vous lire, il semble que je n'ai pas été très clair. C'est vrai que j'ai été un peu avare de précisions :oops:

Bon, je résume donc : j'ai un gros disque avec tout plein de partitions, dont celles qui nous intéressent :
hda1 : Windows 98
hda5 : Windows XP (fat 32)

Efectivement, XP a collé son bootloader sur hda1 (ou C: pour les windowsiens).

Mon boot.ini est le suivant :
Code: Tout sélectionner
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Pro" /fastdetect
C:\ = "Microsoft Windows 98 SE"


J'ai bien à peu près suivi tes explications, Jacques, et ton astuce pour m'en sortir me conviendrait assez. Si je ne l'ai pas tentée, c'est simplement parce que tu as l'air de penser que mon W98 est en hd0,5, ce qui n'est pas le cas. Je pense que cela ne change rien aux manips, mais je préfère avoir ta confirmation avant.

Il y a quand même un truc qui m'étonne : si XP n'a rien installé sur sa propre partition pour booter, comment se lance-t-il ? Petite précision : j'ai cherché longtemps mon boot.ini, puis j'ai réalisé qu'il était forcément sur la première partition... Je l'ai bien trouvé dans la racine de mon W98 !

Et du coup, je doute que les manips soient bien bonnes dans mon cas de figure : je pense que W98 se lancera sans problème par
Code: Tout sélectionner
title Windows 98
root (hd0,0)
makeactive
chainloader +1

Mais pour XP ??? Je ne vois pas pourquoi j'arriverais mieux à le lancer que maintenant (voir mon précédent post : je ne peux pas lancer XP en hd0,5).
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Jacques- » 14 Mars 2006 11:06

Vu la config et le boot.ini, il s'est passé la chose suivante lors de l'installation :
XP n'a pas trouvé de partition primaire pour s'installer.
Tu as créé une autre partition (et avec le fdisk de bill, créer 2 partitions primaires est impossible) qui est donc de type étendue.
Amorcer un OS MS depuis une partition étendue n'a jamais été envisagé par MS, résultat XP a installé son chargeur sur le disque FAT existant (seule partition primaire pour lui, ext2/3 n'étant pas reconnu) et a supprimé le lanceur de Win98.
A la place du chargeur de Win98, c'est ntldr qui assure désormais via le menu de boot et le fichier bootsec.dos (si je me souviens bien du nom) le démarrage de Win98 et son lancement sur la partition étendue.
Remplacer le secteur de boot de XP par celui de Win98 t'empêchera de démarrer XP ensuite vu la configuration.
Donc, pas moyen de lancer directement Win98 facilement.

J'ai essayé de trouver un moyen de passer des paramètres à ntldr directement, mais celui-ci ne sait que lire le fichier boot.ini pour offrir des choix.
La solution serait de pouvoir modifier le boot.ini avant le chaînage vers ntldr mais je n'ai pas trouvé de commande équivalente à cp dans grub.
Si cette piste peut fonctionner (versions futures ? options différentes), l'astuce serait de disposer de 2 fichiers boot.ini (partition FAT ou FAT32 puisque l'OS est Win98) qui lancerait avec une tempo relativement courte XP ou W98 pour l'un, et W98 ou XP pour l'autre; de remplacer via grub le fichier boot.ini par celui que l'on veut et de chaîner le lancement à ntldr ensuite. Comme le choix principal sera l'OS choisi et que la tempo sera courte, on arriverait à quelque chose d'approchant.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar Jacques- » 14 Mars 2006 12:36

Bon, je viens de lire la doc de grub, rien pour simuler la frappe de caractères au clavier, rien pour copier un fichier.
Rien trouvé sur google pour passer des paramètres à ntldr.
Donc, pas moyen de cette façon de charger un menu ou l'autre de ntldr, et pas moyen d'enlever ton ntldr du disque C: sinon XP ne redémarrera pas.
Une solution tordue consisterait à installer un autre boot manager dans le premier secteur de la partition étendue utilisée pas XP, secteur qui n'est pas utilisé normalement par le boot.ini et de passer la main à ce chargeur pour lancer Windows 98. Celui-ci lancerait le chargeur de nt sur le disque C en simulant la frappe des touches nécessaire au choix du menu Win98 dans le boot.ini.
De tels chargeurs existent, comme XoSL ou Vamos par exemple.
On peut aussi remplacer grup par un de ces boot manager et leur laisser amorcer l'une ou l'autre des partitions, voir passer la main à grub pour lancer linux.
XoSL est très joli et se pilote à la souris, mais il faut une partition cachée ou un peu de place sur un disque FAT, Vamos est moins esthétique mais je l'aime beaucoup vu sa puissance et ses possibilités très vastes. En, plus il se contente de la place libre dans le cylindre 0 pour loger le reste de sa configuration.
Si tu bascules dans une de ces config, la sauvegarde des données, MBR et autres informations précieuses est indispensable, et la lecture des méthodes d'amorçage aussi.
Perso, voici ce que je tenterais :
- sauvegarder les données importantes
- 1 boot manager dans le MBR, avec sa config soit dans le cylindre 0 soit dans une petite partition (1 cylindre).
- Réinstaller grub dans le secteur de boot de la partition linux
- Configurer le boot manager pour lancer soit grub, soit ntldr
- Dupliquer les entrées de menu pour linux et les OS de bill pour lancer soit Mandrake, ubuntu, etc... et XP ou Win98 en utilisant la simulation des séquences de touches sur le clavier pour positionner le curseur sur la bonne entrée du menu et faire Entrée.
- Créer une entrée par défaut dans le menu de grub (vmlinuz) qui sera toujours accessible (timout) et lancée par un menu dans le nouveau boot manager, de façon à pouvoir utiliser une entrée même en cas de modification du menu de grub (les séquences de touches pouvant positionner sur une entrée non souhaitée) pour amorcer un noyau "stable"
- croiser les doigts et essayer

Jacques

Autre solution plus simple, si tu as un disque dur de libre, même pas très gros.
Copier la partition de Win98 sur ce nouveau disque, refaire un sys c: en ayant démarrer sur le CD d'installation de Win98 et en ayant déconnecté l'ancien disque, masquer l'ancienne partition Win98 sur hd0 et faire le mapping de disque dans grub pour que Win98 croit démarrer sur le premier disque (sait pas le faire sinon) et voir si tout va comme tu veux.
Si c'est OK, tu remets la partition C du disque hd0 disponible comme partition d'échange entre linux / Win98 et XP et tu ne la reformates pas, ou tu n'enlèves ni le boot.ini ni ndldr et ntdetect.com sous peine de ne plus pouvoir amorcer ton XP.
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar jibe » 14 Mars 2006 20:03

Salut,

Merci Jacques pour toutes ces explications hyper-intéressantes ! Tu as effectivement bien retracé - pour autant que je me souvienne - la procédure d'install que j'avais faite. C'est d'ailleurs celle préconisée dans ce cas : intaller dans l'ordre W98, XP puis Linux. Et quand on la suit, on a effectivement XP qui se retrouve dans une partition étendue.

Je ne pense pas que je testerai tes solutions : la plus simple nécessite un disque supplémentaire que je ne peux pas installer, mes IDE étant toutes occupées et les autres sont bien complexes à mettre en oeuvre pour le simple plaisir de ne plus avoir le second choix à faire pour W$ !

En tous cas, le but principal de ma question est atteint : comprendre pourquoi grub refuse de booter windows directement.

Et je retiens la leçon : pour installer un multiboot, mieux vaut créer ses partitions avant, et ce avec un autre outil que ceux de M$, et bien mettre les Windows dans des partitions primaires...

Et ceci me donne une idée, plus simple à mettre en oeuvre : comme je sauvegarde périodiquement mes partitions avec partimage, je pourrais probablement assez facilement repasser XP sur une partition primaire, et modifier ainsi plus facilement la façon de booter les Windows...
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Jacques- » 14 Mars 2006 23:45

Dans ce cas, l'astuce pour faire du multiboot facilement avec MS c'est de masquer les partitions avant chaque nouvelle installation.
Comme ça, même si XP détecte les partitions et peut y accéder, il n'affecte pas de lettre de lecteur et on peut ensuite la démasquer et y accéder via le gestionnaire de disques.
C'est ce que je fais souvent lorsque j'installe des config de travail en multiboot W9x et XP ou 2k3, voir linux parfois...
Pour masquer une partition, tu peux utiliser Vamos (www.vamos.de) qui offre des options vraiment très étendues en ligne de commande.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar jibe » 15 Mars 2006 22:53

Salut,

Merci pour ces infos, conseils et astuces :biz:
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Google [Bot] et 1 invité