Lorsqu'on installe plusieurs systèmes sur un disque, on est obligé de passer par un multiboot : Grub ou Lilo (ou un multiboot quelconque sous Windows), pour choisir le système que l'on va lancer.
Avec l'installation de Linux, ça se fait automatiquement. (Mais les choses se compliquent un peu, parfois, lorsqu'on installe deux distributions différentes, parce qu'on réinstalle une deuxième fois le multiboot, ce qui pose parfois des problèmes, d'où ce tutoriel).
Le Boot se déroule en plusieurs étapes :
Voilà vous avez réussi à booter votre sur votre système unique en plusieurs étapes.
Un lien pour les détails du Boot avec Windows : http://www.generation-nt.com/index.php?cat=dossiers36
On change la partition active, et on reboote.
C'est donc à l'étape 3 du Boot que l'on va chercher le secteur de Boot de la partition sur laquelle se trouve le système qu'on a choisi de lancer. Et la suite des opérations se déroule comme le Boot classique d'un système unique.
Notez bien que c'est toujours le même MBR et qu'il se débrouille pour trouver la partition active dans la table des partitions, et il ira chercher le chargeur du système à lancer.
Mais il faut changer la partition active (il existe des outils pour cela) et rebooter le micro.
Ce n'est valable que pour des systèmes mricrosoft, mais puisque ces gougnarefusent qu'on install deux fois le même OS sur un disque, alors que c'était bien utile parce que ça plantait souvent, en rusant avec les pacahées , on peut en installer autant qu'il est nécssaire et on multiboote en changeant la partition active, et Redmond n'y voit rien en cachant les autres partitions sytème…
C'est rustique ! mais ça existe toujours dans le BIOS et ça permet des choses comme ça et bien d'autres encore… notament le bit de partition cachée permet de protéger des sauvegardes.. au reboot suivant cette partition est complètement ignorée par les systèmes du disque . Il faut décacher la partition avec un utilitaire dos et rebooter : c'est presque inviolable par les psy et les vrirus..
C'est plus confortable, pas besoin de rebooter. La partition active est, et restera donc, celle où il y a le multiboot. Le MBR lance le programme du multiboot, on choisit son système et c'est le multiboot qui va charger le chargeur du système à lancer.
Certains multiboot windows permettent de lancer des systèmes linux ..
Pour celà je vous renvoie à ces liens :
Là ça change tout !
Linux possède son propre MBR qui ne s'occupe plus de la partition active ( un bit inscrit dans la table des partitions , une seule partition peut être active )
ce qu'ils adressait le disque en CHS ( cylindres, têtes et secteur : 1024 x 16x 255 = 8 Mo ) avec grub cette limitation disparait : grub fonctionne sur les principes d'Unix et utilise le mode d'adressage LBA : adresseage du disque en Numéro de secteur, qui peut adresser des tera octets..
Nous avons parlé d'Unix .. Oui Grub gère tellement d'OS différents que les principes d'Unis, dont sont dérivés la plupart des OS ont été retenus…
C'est ce qui explique que Grub utilise une numérotation de disue de type Unix, différente de la numérotation Linux, ce n'était pas pour nous compliquer la vie, mais Grub est un chargeur Universel et dans la vie il n'y a pas que linux.. et pas seulement que des PC..
Il faut donc voir le coté positif des choses, et pas eulement voir le coté compliqué des choses..
Numérotation des disques
Unix : exemple : hd0 hd1 → Linux : hda hdb
Numérotation des partitions
Unix : exemple hd0,0 hd1,4 → Linux : hda hdb5
Attention vous avez tous des sata aujourd'hui !!!!!
Linux utilise des numérotations différentes pour les disques IDE et les disques SATA et SCSI
Ce sont les numérotation faites par le BIOS, mais grub chargeur universel tourne sur d'autres machines où le Bios n'est pas présent ( quelle chandce ! ) et reste dans la numérotation UNIX et en a rien à foutre que les disques soient des SATA ou des IDE !
Comment fait Grub ?
Il utilise une carte de conversion du nommage des disques.. device.map
Cette carte est initialisée lors de l'installation de grub elle assure la correspondance entre la numérotation des disques PRESENTS au MOMENT de L'INSTALL de GRUB entre la numérotation Unix et la numérotation linux puisque vous installez Linux
un exemple de device.map
Ainsi Grub va pouvoir travailler avec sa numérotation Unix et faire correspondre les disques en numérotation Linux quel que soit leur type…
numérotation des disques dans le BIOS
Attention: souvent vous installez Windows sur le premier disque et Linux sur un deuxième disque : tout va bien ! l'éléve windows premier de la classe aime bien être devant les autres !
Mais si vous commencez à changer cet ordre : que vous installez Linux sur le premier disque reconnu par le BIOS et windows sur le second, l'élève Windows , furieux de ne pas être devant ne voudra pas se charger.. Mais Windows est un système à la con qui a été bati pour un seul type de machine, avec un seul OS au début, ce qui n'est pas le cas de Linux , ni d'Unix… et sur un PC vous êtes tributaires de cet autre sytème à la con qu'est le BIOS, un truc plein de cataplasmes pour l'adpater aux évolution technologiques des disques durs.. ( taille et type )
Grub avec sa device map se moque de tout ça ! certes il doit composer avec la numérotation du BIOs, mais si vous n'avez pas envie de respecter les règles du grand satan et que vous avez pour des raisons valables décidé de mettre l'élève Windows au deuxième rang avec sa devicemap qui fait la correspondance unix → BIOS aussi il va lui faire croire qu'il est au premier rang sur le premier disque..
Vous avez toute liberté de modifier la device.map faite à l'installation.
ATTENTION ! Aujourd'hui tout le monde rajoute, change ou intervertit les disque de son PC…
Mais si vous avez installé Grub et que vous rajoutez sur votre PC, la device.map n'est plus à jour.. et si vous utilisez ce grub , il ne connaîtra pas ce nouveau disque .. et vous allez vous demander pourquoi vous ne pouvez pas booter sur ce disque avec ce Grub du premier disque, après avoir modifié son menu de boot ..
NO PAS NADA ! il n'est pas nécessaire de réinstaller Grub et encore moins votre linux.. il suffit de mettre à jour la device.map. Trois façons de faire ( pratiquement valables pour toutes les configurations de Grub )
( mais attention toutes les distribs ne permettent pas de tout reconfigurer dans grub !)
( enrespectant les règles de nommage des disques )
N'allez pas me dire que grub est chiant ! Un bootloader qui offre autant de possibilités et qui s'adate à touts les caprices des uns et des autres, vous ne trouverez pas !
Nous verrons plus loin la ligne de commande de grub ( cherchez celle de Lilo par exemple, proposé encore en premier choix de bootloader par certaines distribs )
L'installeur de votre distrib, risque de vous poser la question ! Pas évident de répondre lorsqu'on découvre les principes du multiboot avec linux.. aussi pour vous faciliter la tache l'installeur de certaines distribs ne vous demandent rien et font comme si elles étaient la seule distrinb linux de votre PC et répondent à votre place de manière simpliste…
Elles se mettent à la plce du nobb qui installe Linux pour la première fois et n'imginent pas que les noob aujourd'hui font très vite du multiboot avec plusieurs distribs linux…et ils ont bien raison ! A mes débuts je me suis assez faire rammasser par les gourous d'une distribution que je ne nommerais pas, parce que je voulais installer deux fois la même distribution : une pour m'en servir comme station bureautique et une seconde pour y bidouiller dedans et lui faire subir les affres de mon incompétence linuxienne, et ne pas détruire ainsi ma station bureautique…
Comme on l'a vu précédemment , si vous avez déjà une distribution Linux avec Grub installé, il n'était même pas nécessaire de réinstaller Grub : un seul suffit ! mais on ne vous laisse pas toujours le choix ! Alors votre deuxième distrib va marcher , mais l'ancienne ne marchera peut être plus ! COOOL ! ZEN ! Laissez la faire ! On s'en sortira ! Je déteste les trucs automatiques qui sous prétexte de m'aider font des conneries et ne m'apprennent rien !
Le multiboot me rappelle les jeux de pistes de mon enfance et c'est aussi simple ! Si ne marche pas, c'est que vous n'avez pas trouvé le message ou qu'il n'est pas bon.. Si vous avez compris ça,vous ne devriez pas vous inquiéter.
Alors allez y installez des distribs autant que vous le voulez. Grub n'est pas limité en nombre de sytèmes à lancer et n'est pas responsable des conneries des installeurs automatiques.. Laissez les faire…
Vous êtres en train d'installer Grub de cette nouvelle distrib sensationnelle ! qui vous demande où bvous voulez mettre le MBR..
Trois possibilités :
C'est cool !
Si vous avez déjà un linux installé avec Grub, vous retrouvez avec deux Grub, votre distrib a choisi d'installer le sien, mais c'est pas grave.. RESTONS ZEN !
Si vous n'installez pas le MBR, celui qui est déjà en tête de votre disque ne sera pas écrasé et il va aller charger le stage2, dont on lui a donné l'adresse lors de l'install de grub précédent Si la distrib vous laisse ce choix prenez le si vous avez déjà une distrib linux avec grub..
Bien évidemment vous n'allez pas pouvoir lancer cette nouvelle distrib que vous voulez tester, le menu de votre premier grub ne la connait pas, mais un peu de patience on va y arriver, comme des “pros” en plus.. C'est normal ! Chaque distrib se croyant la première distrib Linux que vous installez , fait donc comme si elle était la seule, l'unique ! et vous oblige à ce bazar ! ( rendant ainsi le multiboot entre deux Linux plus compliqué qu'il ne l'est en réalité et plus compliqué qu'un premier multiboot Windows Linux ) Envie de pousser un coup de gueule contre les gens qui font ( ou qui massacrent ) les installeurs de ces distribs de noobs, parce qu'il leur serait facile de commencer par vérifier la présence d'autres sytèmes linux sur le disque, puisqu'elles le font plus tard… Facile à voir : il suffit de lire le MBR… (En plus on peut savoir si c'est un MBR windows ou Grub ou Lilo !)
De toutes façons celà va vous obliger plus tard à faire les manips décrites dans la suite..pour remettre de l'ordre dans tous ces grubs installés…
C'est clair, s'il y a déjà un Grub on ne le réinstalle pas….
Par exemple vous testez une distrib que vous avez trouvée dans une revue, rien est moins sur que vous la gardiez ! Vous n'allez pas vous priver de multibooter avec le grub principal avec son joli bootsplash, et de toutes façons si vous laissez tomber cette distrib , il faudra retrouver votre premier grub
En plus c'est idiot, parce que normalement un DVD d'install devrait nous proposer de démarrer un sytème linux qu'il trouve sur nos disques . Certains le font : Suse , mais pas tous ! il n'est donc pas nécessaire d'obliger les gens à installer un chargeur pour lancer Linux…
Zut on a changé d'époque !
Sur le secteur d'amorçage du disque:
C'est ABSOLUMENT ce qu'il faut choisir, si c'est votre premier système Linux, pour pouvoir faire le multiboot windows linux. ( idem lorsque vous le réinstallez)
Sauf si pour des raisons particulières ( ce n'est pas votre PC ) vous voulez conserver le MBR de Windows et utiliser un multiboot windows. Oui mais quel disque ?
Celui que vous voulez dans le principe ! oui ABSOLUMENT ! mais l'installeur de votre distrib ne vous laissera pas choisir… Elle va prendre par défaut le disque bootable dans le BIOS, pour être sure que le système se lance.. ( puisque l'install oblige à rebooter en cours de route) Alors si voulez conserver votre windows et son MBR windows INTACT, et si vous installez linux sur un deuxième disque… lisez la suite..
Dans le BIOS vous pouvez choisir la priorité de boot entre les divers périhs bootables et les disques.. le BIOs , c'est con et refait toujours la même séquence au démarrage il descend la liste :
Disquette CdRom disque machin disque toto
Le premier de la liste qui a un MBR il le prend et le charge en mémoire…
Vous pouvez donc avoir un disque Winows avec son MBR windows et un disque Linux avec son MBR Grub
Cette liste est configurable dans le BIOS et il faut deux minutes au démarrage du PC pour modifier la priorite de boot.. et choisir le disque bootable
Laissez le MBR windows sur votre disque windows, et avant d'installer Linux modifiez la priorité de boot dans le BIOS mettez votre disque Linux comme disque bootable… ( n'oubliez pas de rendre le lecteur de Cd ropm ou DVD ) bootable avant les disques pour pouvoir installer Linux..
Vous quittez le BIOS en sauvegardant la modif… sans CD rom d'install, le PC ne boote pas puisqu'il n'y apas encore de MBR sur le deuxième disque… Vous n'avez rien cassé , juste modifié la conf du BIOS ( si vous avez des remords ou si vous voulez essayer, redémarrez le PC et rentrez dans la conf du BIOS et remettez le disque windows bootable ( faites bien la dsitinction entre disque bootable et partition active sur le disque bootable pour windows, Linux se moque de la partition active )
Si vous avez choisi le disque de linux comme disque bootable lors de l'install de grub pendant l'install de la distrib, le MBR de grub va s'installer sur le disque de Linux au lieu d'aller écraser le MBR du dsique windows..
Si vous choisissez le disque windows comme disque bootable avant de réinstaller Windows, le MBR de windows va se mettre sur ce disque qui doit être le premier , mais ça c'est une connerie de windows
Ils ont bossé comme des amateurs, ne me dites pas qu'en 2006 on soit encore obligés de subir de telles contraintes, le BIOS devrait déjà être multiboot avec un menu pour pouvoir accrocher le MBR de n'importe quel disque ou DVD ou Disquette, sans avoir à reconfigurer un priorité de boot ! Vraiment une bande de nazes et ça fait 25 ans qu'on se traîne cette “bouse” . Jusque là c'est de l'électronique, du hard, donc c'est possible, le BIOS c'est de l'électronique programmable comme un firmware donc facile à changer mais on ne la fait pas parce que microsoft veut encore faire marcher ses vielleries d'OS 3.1 W98 et W2000 baties sur un PC et un BIOS mal conçus au départ il a fallu attendre Xp pour que Microsoft découvre le mode d'adressage LBA. Unix plus ancien le connaissait déjà ) alors que Linux et Grub n'ont pas cette contrainte…
Si vous cassez votre Linux ( ça peut arriver lorsqu'on commence
) et que vous avez un besoin urgent de windows, que vous ne voulez pas prendre le risque de devoir réinstaller Linux toute la nuit pour faire du multiboot windows Linux : changez de disque bootable , revenez sur celui de windows , vous n'aurez même pas à réinstaller le MBR…
Bien évidemment , si vous avez suivi
cette disposition n'a pas cours si vous installez Linux sur le même disque que windows… mais puisque les noobs dont je fais partie aiment bien séparer les torchons et les serviettes.. Why not ?
Mais le boot d'un sytème c'est une succession d'étapes ( du hard puis du soft ) et la toute première se passe dans le BIOS avec la sélection du périph bootable et la recherche d'un MBR pour le mettre en mémoire et lancer son éxécution… Disposition largement oubliée avec des années d'utilisation de windows, qui est à l'informatique ce que les tarots sont à la science…pourtant ça fait des années que les gens ont plusieurs dsques sur leurs PC.
Vous l'aurez peut être deviné , j'ai une culture hard avant d'aborder le soft et le Pc est vraiment une “bouse”
A moins que vous ayez de bonnes raisons d'utiliser un multiboot windows, mais personnellement je n'en vois pas ( ou plutôt je ne veux pas les voir
) cette option ne vous intéresse pas..
Mais si c'est votre cas choisissez option !
Je vous renvoie donc au Tuto très bien fait d'un membre d' Alionet
Autre confusion fréquente : on lit souvent qu'on installe Lilo ou Grub dans le MBR, c'est faux ! On ne charge que le MBR Lilo ou le MBR Grub dans le secteur zéro du disque (la première étape : first stage !).
Dans le MBR qui est chargé lors de l'installation, il y a les adresses (disque dur, partition et secteur) du chargeur multiboot.
Donc, si vous réinstallez Windows, après avoir installé Linux, il remet le MBR Windows et vous ne démarrez plus avec Grub. Il faut donc restaurer le MBR de Linux avec le CD-ROM d'installation voir réinstaller le chargeur.
Avec Grub, le Boot se fait en plusieurs étapes.
Le MBR chargeur primaire (ou stage 1) connait l'adresse disque du chargeur secondaire (stage 2) celui qui affiche le menu de Grub, ça se passe au moment de l'installation ! Il charge son premier secteur en mémoire, et celui-ci continue de charger la suite…
En fonction du choix qui est fait, il va charger le chargeur du système à lancer.
Lorsqu'on a un Grub, ça suffit ! Il n'est pas nécessaire d'en installer un second et encore plus un troisième, encore faut-il que l'installeur des distributions que vous installez ensuite vous laisse cette possibilité…
Il faudra alors modifier le Grub du premier système installé pour qu'il prenne en compte les autres distributions installées…
Le principe d'une entrée de Boot dans le fichier /boot/grub/menu.lst est standard mais voilà où les problèmes commencent :
Dans une ligne de ce menu il y a le chargement du noyau il suffit de dire sur quelle partition il se trouve (ça pleure à tataouine, mais en général il est sur la partition de votre second système… mais ça ne suffit pas, on a dans cette ligne des paramètres à passer au noyau et là si vous n'avez encore jamais par un copain installé cette distribution vous ne pouvez pas savoir quoi mettre, et hélas ça change selon les distribution (exemple Fedora c'est assez spécial), mais vous pouvez demander sur un forum à quelqu'un qui a installé cette distribution de vous donner son menu.lst et vous saurez ! (Attention à la version tout de même).
Sinon vous laissez filer l'installation du chargeur de la deuxième distribution… qui fera le bon menu.lst pour elle… (Vous aurez deux Grub…).
Avec un peu de chance, la deuxième distribution reconnaîtra le premier système (disons SUSE), et mettra une entrée de Boot pour chacun des systèmes… Mais ce n'est pas toujours le cas (à cause de ces paramètres et Archlinux ne sait pas forcément ce que fait SUSE dans son coin avec son Kernel et Fedora pareil ce sont des exemples au hasard, mais ça peut arriver. Comme autre variante entre distributions : SUSE utilise un lien symbolique vmlinuz pour charger le noyau vmlinuxz.2.6.12 alors que d'autres distributions utilisent le nom complet du fichier du noyau : vmlinuz.2.6.14) donc si une distribution ne sait pas elle “zappe” le système et il n'y a pas d'entrée de Boot pour ce système… NO PANIC !!!
Pourquoi s'affoler puisqu'on va retrouver tout ce qu'il faut : l'entrée de Boot de la deuxième distribution dans son /boot/grub/menu.lst, à elle et celui-là on sait qu'il est bon…
Avec de la chance dans l'autre sens cette seconde distribution reconnaîtra votre premier système et alors vous bootez (peut-être sur le second Grub, mais là ça va dépendre encore du Hard et du Bios..
Après pour l'installation de Grub, mais ça dépend encore de la finition de l'installeur (certains sont faits à “l'arrache” !) il y avait trois possibilités :
Si vous avez une distribution très automatisée, vous ne contrôlez rien du tout et elle fera en sorte de pouvoir charger son système çà elle : c'est le but puisque vous l'installez et il y a des chances que par simplicité elle ne s'occupe que d'elle et et zappe les autres systèmes : NO PANIC laissez la booter tranquillement… vous reviendrez au multiboot plus tard ! YESSS it's possible ! Si ça ne Boot pas… TRANQUILLE ! et puis ce n'est pas de votre faute, vous n'êtes pas un boulet !
Mais à force d'installer des distributions, parfois juste pour les essayer on se retrouve avec des Grub un peu partout, on ne se souvient plus du quel on se sert, lequel il faut bidouiller… pour que tout marche ou pour enlever l'entrée de Boot d'un système qu'on a viré…
Dans le principe, on ne garde qu'un seul Grub, de préférence celui de SUSE parce qu'on a de superbes outils graphiques sur le DVD d'installation pour le trafiquer… et autrement on peut le faire en ligne de commande…
//Il est essentiel , surtout si vous ne connaissez pas bien Grub, si vous venez de Windows, ou si vous ne connaissiez que Lilo, ou si vous vous êtes contentés de subir l'installation de Grub au travers des installeurs graphiques des diverses distributions, de bien comprendre les notions importantes qui suivent ://
Dans GRUB, il y a deux choses :
Une “application” Grub qui permet entre autres de réinstaller et de configurer le “chargeur” Grub ABSOLUMENT OU VOUS VOULEZ ! ( disque , partitions, disquette )
Et celà DEPUIS N'IMPORTE QUEL SYSTEME LINUX qui tourne et qui dispose de cette application y compris un LiveCD, un Live DVD .. mais les installeurs qui sont des mini sytèmes Linux contiennent cette application , cachée derrière une interface graphique plus ou moins attrayante et plus ou moins réussie
( nous y reviendrons c'est hyper important. Grub est un bootloader complet et génial ! et surtout beucoup moins contraignant qu'on nous le présente trop souvent dans les divers tutos de grub )
J'ajouterais encore une troisième chose :
Ainsi en tappant au clavier la même séquence que telle ou telle entrée de boot du menu ( voir menu.lst), vous allez pouvoir charger et lancer ce sytème de la même façon : aucun intéret sinon l'apprentissage, mais menu.lst est un fichier qui contient une liste de commandes , et surtout vous allez pouvoir booter occasionnellement un autre sytème qui n'est pas encore dans le menu ou booter occasionnellemnt un sytème du menu avec d'autres options en tappant une séquence de commandes.
Plus encore tapper d'autres commandes avant de lancer un sytème : là je vous renvoie à la liste des commandes de Grub !
RESUME :
Grub comprend :
Pourquoi est ce si compliqué ?
Grub signifie GRand Universal Bootloader : il peut charger bien d'autres OS que Linux, sur de multiples systèmes de fichiers , et s'adapter à toutes les configurations matérielles, y compris des disques USB bootbles ou non bootables ( selon que le bios le reconnait bootable ou non ), moyennant une procédure décrite dans un autre Tuto , par Tytramos!
Ce n'est pas de la complication : c'est de la SOUPLESSE !
Sans cesse on nous bassine avec de fausses règles, de contraintes qui n'existent pas dans Grub : du style il faut mettre ça ici et ça là ! Ce n'est pas vrai.. Grub ça boote n'importe quoi, n'importe où… c'est la seule règle Grub est aussi capable de charger un sytème sur un RESEAU !
La situation extrème ci dessous ne se produit jamais,on préfère organiser son multibootpour s'y retrouver plus facilement, mais ça marche :
vous pouvez : - mettre le MBR ( stage1 ) sur le secteur d'amorce d'un disque ( bootable dans le BIos ) - mettre stage 2 sur n'importe quelle partition d'un autre disque - mettre le noyau vmlinuz ailleurs, il sera chargé en mémoire - lancer le sytème sur la partition /root de ce système, différente de celle où se traouve vmlinuz et stage2 Il suffit d'indiquer les bons chemins dans les différentes commandes de lancement d'un sytème
Alors même si on a un peu raté son install de Grub et que ça ne boote pas du premier coup on bootera toujours avec Grub en respectant son principe et en comprenant sa souplesse. Surtout ne réinstallez pas TOUT votre sytème si ça ne veut pas booter ou lancer le sytème
Avec Grub : NO PANIC !
Alors GRUB ou Lilo ?
Une version 2 de Grub est en cours de développement…
Certains virus attaquent le MBR : il vous suffit de régénérer le MBR avec une disquette DOS, ou un CD-ROM d'installation XP ou avec le CD-ROM d'installation de SUSE : Installation → Réparation du système → personnalisé (ou expert) et → Réparer le chargeur de démarrage…
D'autres attaquent la table des partitions…
Pour les curieux ! Le Boot Lilo en détail