GRUB Legacy : Différence entre versions

De ArchwikiFR
m (Robot : Enlève modèles : Article summary link, Article summary end, Expansion, Article summary start, Article summary heading, Article summary text, Article summary wiki)
m (mep, fusion avec Grub)
Ligne 1 : Ligne 1 :
 +
[[Catégorie:Démarrage]]
 +
[[Catégorie:Système]]
 +
[[en:GRUB]]
  
 +
[http://www.gnu.org/software/grub/ GRUB] est un chargeur d'amorçage (bootloader) ''[http://www.gnu.org/software/grub/manual/multiboot/multiboot.html multiboot]''. Il est actuellement le bootloader par défaut.
  
 +
== Installation ==
  
 +
{{pkg|grub}} est en théorie installé par défaut, mais au cas où:
 +
pacman -S grub
  
 +
== Configuration ==
  
 +
Le fichier de configuration est {{filename|/boot/grub/menu.lst}}, exemple (en supprimant quelques commentaires):
  
 +
{{file|name=/boot/grub/menu.lst|content=<nowiki># general configuration:
 +
timeout  5
 +
default  0
 +
color light-blue/black light-cyan/blue
  
 +
# (0) Arch Linux
 +
title  Arch Linux
 +
root  (hd0,0)
 +
kernel /vmlinuz26 root=/dev/sda3 ro
 +
initrd /kernel26.img
  
 +
# (1) Windows
 +
#title Windows
 +
#rootnoverify (hd0,0)
 +
#makeactive
 +
#chainloader +1
 +
</nowiki>
 +
}}
  
 +
=== Options ===
  
== Installation du paquet GRUB ==
+
*{{codeline|timeout}}: le temps en secondes avant de lancer le système par défaut ;
 
+
*{{codeline|default}}: l'entrée à lancer par défaut au bout de ''{{codeline|timeout}}'' secondes ;<br />{{codeline|default saved}} retient la dernière entrée de démarrage sélectionnée et la fait devenir la nouvelle entrée par défaut. Placez {{codeline|savedefault}} à la fin de chaque section de démarrage pour que cette fonctionnalité prenne effet.
Tout d’abord, installez grub avec pacman :
+
*{{codeline|(hdn,m)}}: est la partition m sur le disque n, les nombres commencent à partir de 0 ;
 
+
*{{codeline|splashimage (hdn,m)/grub/name.xpm.gz}} est l'image de fond ;
pacman -S grub
+
*{{codeline|timeout m}}: m secondes d'attente avant la sélection automatique de l’entrée par défaut ;
 
+
*{{codeline|password -md5 str}}: mot de passe chiffré ;
Éditez le fichier {{Filename|menu.lst}} avec vos paramètres :
+
*{{codeline|title str}}: Titre d'une entrée ;
 
 
nano /boot/grub/menu.lst
 
  
Voici le mien à titre d’exemple :
+
=== Directive root ===
  
# Config file for GRUB - The GNU GRand Unified Bootloader
+
GRUB doit connaître la partition où il trouvera les fichiers dont il a besoin, cette partition est indiqué à l'aide de la directive {{codeline|root}}:
# /boot/grub/menu.lst
 
 
# DEVICE NAME CONVERSIONS
 
#
 
#  Linux          Grub
 
# -------------------------
 
#  /dev/fd0        (fd0)
 
#  /dev/hda        (hd0)
 
#  /dev/hdb2      (hd1,1)
 
#  /dev/hda3      (hd0,2)
 
#
 
 
#  FRAMEBUFFER RESOLUTION SETTINGS
 
#    +-------------------------------------------------+
 
#          | 640x480    800x600    1024x768  1280x1024
 
#      ----+--------------------------------------------
 
#      256 | 0x301=769  0x303=771  0x305=773  0x307=775
 
#      32K | 0x310=784  0x313=787  0x316=790  0x319=793
 
#      64K | 0x311=785  0x314=788  0x317=791  0x31A=794
 
#      16M | 0x312=786  0x315=789  0x318=792  0x31B=795
 
#    +-------------------------------------------------+
 
 
# general configuration:
 
timeout  5
 
default  1
 
color light-blue/black light-cyan/blue
 
 
 
# boot sections follow
 
# each is implicitly numbered from 1 in the order of appearance below
 
#
 
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
 
#
 
#-*
 
 
# (0) Arch Linux
 
title  Arch Linux  [cpio]
 
 
  root  (hd0,0)
 
  root  (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda6 ro vga=773
 
initrd /boot/kernel26.img
 
 
title  Arch Linux  [thinkpad]
 
root  (hd0,0)
 
kernel /boot/vmlinuz26thinkpad root=/dev/sda6 ro video=vesafb:off acpi_sleep=s3_bios
 
resume=swap:/dev/sda5
 
initrd /boot/kernel26thinkpad.img
 
 
Copiez le fichier {{Filename|mounts}} vers {{Filename|mtab}}
 
 
grep -v rootfs /proc/mounts > /etc/mtab
 
 
== Installation ou restauration de GRUB dans le “Master Boot Record” ==
 
 
GRUB peut être installé à partir d’un environnement en ''live'', ou directement à partir de l’installeur Arch.
 
  
Dans tous les cas, démarrez le système et exécutez la commande '''grub''' en tant que root :
+
Afin de celle de votre système, vous pouvez lancer le shell ''grub'' et utiliser la commande {{codeline|find}}:
 
  # grub
 
  # grub
 +
grub> find /grub/stage1
 +
  (hd0,0)
  
Il faut préciser à Grub où se trouvent ses fichiers sur le système puisque de multiples occurrences de grub peuvent exister. Les fichiers de grub sont placés dans {{Filename|/boot}}, répertoire qui peut avoir une partition dédiée. Si vous savez où se trouve {{Filename|/boot}}, veuillez le spécifier avec la commande '''root''' de cette manière :
+
L'argument à passer à {{codeline|find}} dépend évidemment de votre partitionnement, si vous n'avez pas de partition {{codeline|/boot}}:
 
 
grub> root (hdx,x)
 
(n’oubliez pas que {{Filename|/boot}} est la racine de GRUB).
 
 
 
Si vous ignorez l’emplacement de {{Filename|/boot}}, utilisez la command '''find''' pour localiser les fichiers GRUB.
 
 
 
L’exemple suivant est fait pour les systèmes sans partition /boot à part dans lequel {{Filename|/boot}} est simplement un répertoire se trouvant sous {{Filename|/}} :
 
 
  grub> find /boot/grub/stage1
 
  grub> find /boot/grub/stage1
L’exemple suivant est fait pour les systèmes ''avec'' une partition {{Filename|/boot}} à part :
+
grub> find /grub/stage1
+
=== Dual boot avec Windows ===
  
Grub trouvera le fichier et affichera l’emplacement du fichier {{Filename|stage1}} — qui réside sous {{Filename|/boot}}. Par exemple :
+
  title Windows
(hd1,0)
 
Utilisez la commande root — avec l’affichage donné par la commande find — pour informer GRUB quelle est la partition qui contient {{Filename|stage1}}, (et par conséquent, {{Filename|/boot}} :
 
grub> root (hd1,0)
 
 
 
Enfin, (ré)installez GRUB sur le MBR du disque. L’exemple suivant installe GRUB sur le MBR du disque contenant {{Filename|/boot}} :
 
grub> setup (hd1)
 
Utilisez la commande '''quit''' pour sortir de GRUB :
 
grub> quit
 
* Autre possibilité : installez sur une partition.
 
Vous pouvez, bien sûr, installer GRUB où bon vous semble.
 
 
 
Par exemple :
 
grub> setup (hd1,0)
 
Cela installera GRUB sur le 2e disque dur en première partition.
 
 
 
== Configuration du Chargeur de Démarrage (''Boot loader'') ==
 
La configuration de grub se trouve dans ce fichier :
 
/boot/grub/menu.lst
 
 
 
* <i>(hdn,m)</i> est la partition m sur le disque n, les nombres commencent à partir de 0 ;
 
* <i>splashimage (hdn,m)/grub/Name.xpm.gz</i> est le fichier ''splash-image'' (NdT : écran de démarrage muni d’une image) ;
 
* <i>default n</i> est l’entrée de démarrage par défaut qui est sélectionnée après le temps mort (''timeout'') des actions utilisateurs ;
 
* <i>timeout m</i> m temps à attendre en seconde pour la sélection par l’utilisateur avant que l’entrée par défaut démarre ;
 
* <i>password -md5 str</i> mot de passe chiffré : « str » ;
 
* <i>title str</i> Titre « str » pour une entrée de démarrage ;
 
* <i>root (hdn,m)</i> partition racine où est stockée le noyau ;
 
* <i>kernel /path ro root=/dev/device initrd /initrd.img</i> utilisez l’option root si le noyau n’est pas placé dans {{Filename|/}}
 
* <i>makeactive<br>chainloader +1</i> rend la racine active et transmet la procédure de démarrage à son chargeur de démarrage (pour Windows, par ex.) ;
 
* <i>map (hd0) (hd1)<br>map (hd1) (hd0)</i> intervertit le disque primaire et secondaire pour le démarrage, cela est nécessaire quand on démarre Windows sur un disque secondaire ;
 
* <i>root (hdn,m,z)<br>kernel /boot/loader</i> démarrage d’une partition FreeBSD x ;
 
* <i>default saved</i> retient la dernière entrée de démarrage sélectionnée et la fait devenir la nouvelle entrée par défaut. Placez “savedefault” à la fin de chaque section de démarrage pour que cette fonctionnalité prenne effet.
 
 
 
Pour ceux qui aime le « frou-frou » visuel, il y a le [[Graphical GRUB|GRUB graphique]].
 
 
 
=== Double démarrage ===
 
Ce qui suit présente deux manières courantes pour configurer le fichier {{Filename|menu.lst}}. Pour des usages plus complexes, [[Grub configure examples|cliquez ici]].
 
 
 
==== Double démarrage avec Windows ====
 
Ajoutez ceci à la fin de votre {{Filename|/boot/grub/menu.lst}}. En supposant que votre partition Windows est sur [s/h]da2.
 
 
 
# (2) Windows XP
 
title Windows XP
 
rootnoverify (hd0,1)
 
makeactive
 
chainloader +1
 
 
 
Notez que bien que l’on croit que c’est le cas, Windows 2000 et les versions supérieures n’ont pas besoin d’être sur la première partition pour démarrer. Si la partition Windows change de nombre (i.e., si vous ajoutez par la suite une partition avant la partition windows), vous aurez besoin d’éditer le fichier {{Filename|boot.ini}} de Windows pour ''refléter'' le changement (cf. [http://vlaurie.com/computers2/Articles/bootini.htm cet article] pour savoir comment faire ça).
 
 
 
==== Double démarrage avec Windows situé sur un autre disque dur ====
 
Ajoutez ceci à la fin de votre {{Filename|/boot|grub/menu.lst. En supposant que votre partition Windows est sur [s/h]db1.
 
 
 
# (2) Windows XP
 
title Windows XP
 
map (hd0) (hd1)
 
map (hd1) (hd0)
 
rootnoverify (hd1,0)
 
makeactive
 
chainloader +1
 
 
 
La fonction map est une astuce pour faire croire à votre installation Windows que le deuxième disque est en fait le premier.
 
 
 
==== Double démarrage avec d’autres distributions Linux ====
 
 
 
Cela se fait de la même manière que pour Arch Linux. On suppose que l’autre distribution est sur la partition [s/h]da3.da3.
 
 
 
title Autre Linux
 
root (hd0,2)
 
kernel /boot/vmlinuz (ajouter ici les options requises)
 
initrd /boot/initrd.img (si l’autre noyau utilise/a besoin de cette ligne)
 
 
 
==== Double démarrage avec une autre distribution Linux (en Chainloading) ====
 
 
 
Pour éviter le ''cauchemard de la maintenance'', vous aurez sans doute envie de ''chainloader'' le GRUB du MBR vers un autre chargeur de démarrage que vous auriez installé dans le ''boot record'' d’une partition — (hd0,2) dans notre exemple — au lieu du MBR. De cette manière, les trucs de la distribution prendra la suite et gèrera le {{Filename|menu.lst}} sur (hd0,2) (si c’est un grub) sa propre distribution et vous démarrerez avec toutes les options requises (comme le dernier noyau correct) sans avoir besion de copier/coller des parties de ce {{Filename|menu.lst}} dans le votre.
 
 
 
Dans notre exemple [http://home.tele2.fr/solsTiCe/img/dualbooting.png], GRUB est dans le MBR et l’autre chargeur de démarrage (CD) (que ce soit grub ou lilo) est dans le ''Boot Record'' de (hd0,2).
 
-------------------------------------------------
 
|  |          |          |    %  (hd0,2)    |
 
| M |          |          | B  %              |
 
| B |  (hd0,0)  |  (hd0,1)  | L  %  Autre        |
 
| R |          |          |    %  Distro      |
 
|  |          |          |    %              |
 
-------------------------------------------------
 
  |                            ^
 
  |    chainloadage          |
 
  -----------------------------
 
 
 
Ensuite, utilisez simplement ceci dans votre {{Filename|menu.lst}} :
 
title Autre distro Linux
 
root (hd0,2)
 
chainloader +1
 
 
 
Ceci fonctionne bien sûr aussi d’une autre manière, i.e. si votre racine arch est dans (hd0,2)/sda2 et que vous choisissez d’installer le GRUB d’Arch à cet endroit au lieu de le mettre dans le MBR parce vous avez installé une autre distribution en premier, alors recopiez le code ci-dessus dans le {{Filename|menu.lst}} de cette distribution.st, just put the above code in that distros menu.lst.
 
 
 
=== Trucs et Astuces ===
 
==== Redémarrer avec un nom de démarrage de votre choix ====
 
 
 
Si vous réalisez que vous avez besoin de changer pour un autre SE (système d’exploitation) qui ne soit pas par défaut, comme Windows, vous pouvez trouver que c’est fastidieux de redémarrer et d’attendre que le menu de GRUB apparaisse. GRUB offre une solution simple pour se souvenir du SE de votre choix au redémarrage au lieu d’attendre pour le menu. Cela se fait tout simplement en ''désignant'' une nouvelle entrée par défaut temporaire qui se réglera (en « default par defaut ») au sitôt qu’il aura été utilisé.
 
 
 
Supposons que l’on ait un simple configuration {{Filename|menu.lst}} comme ceci :
 
 
 
# general configuration:
 
timeout  10
 
default 0
 
color light-blue/black light-cyan/blue
 
 
 
# (0) Arch
 
title  Arch Linux
 
root  (hd0,1)
 
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/a29113d7-2204-49e9-be69-d94699eba466 ro
 
initrd /boot/kernel26.img
 
 
 
# (1) Windows
 
  title Microsoft Windows XP Pro
 
 
  rootnoverify (hd0,0)
 
  rootnoverify (hd0,0)
  makeactive
+
  makeactive # Cette ligne est à commenter pour Windows 7
 
  chainloader +1
 
  chainloader +1
  
Arch est l’entrée par défaut (0). Nous voulons démarrer en Windows. Changez default a saved (“default saved”) — cela enregistrera le l’entrée actuelle par défaut dans un fichier “default” dans le répertoire grub même si la commande grub “savedefault” est utilisée. Maintenant, ajoutez la ligne “savedefault 0” au bas de l’entrée Windows. Même si Windows a démarré, grub remettra l’entrée par défaut à Arch, ce qui fera changer l’entrée par défaut à Windows temporairement.
+
L'argument de {{codeline|rootnoverify}} doit correspondre à la partition où est installé Windows.
 
 
Maintenant, tout ce dont on aura besoin va être de changer simplement l’entrée par défaut « manuellement ». Cela peut être réalisé en utilisant la commande “grub-set-default [numéro de l’entrée (en commeçant à 0)]”. Ainsi, pour démarrer en Windows, entrez la commande suivante :
 
 
 
  sudo grub-set-default 1 && sudo shutdown -r now
 
 
 
Pour une utilisation plus aisée, vous souhaitez peut-être de mettre en place la « correction [[Allow users to shutdown|permettant aux utilisateurs l’extinction]] » (comprenant l’exécutable {{Filename|/sbin/grub-set-default}} parmi les autres commandes qui sont permises à l’utilisateur sans avoir besoin du mot de passe).
 
  
== Interaction entre LiLO et GRUB ==
+
== Installation du chargeur ==
Si vous avez installé [[lilo]] n’oubliez pas de le supprimer comme ceci :
 
pacman -R lilo
 
  
Des tâches (par ex. compilation du noyau via <code>make all</code>) peuvent faire des appels à lilo et ainsi lilo s’installe à la place de grub.
+
Les fichiers de GRUB sont copiés à l'installation du système, si vous ne l'avez pas installé à cette étape, copiez les manuellement:
Notez que cela ne supprimera pas lilo du MBR mais il sera écrasé lorsque vous installerez un autre chargeur de démarrage.
+
cp -a /usr/lib/grub/i386-pc/* /boot/grub
  
== Résolution Framebuffer ==
+
{{warning|N'oubliez pas de monter la partition /boot si vous ne le faites pas en automatique.}}
  
On peut utiliser la résolution donné par le {{Filename|menu.lst}} de [[grub]]. Mais vous pourriez avoir envie d’utiliser votre écran LCD large avec sa résolution native. Voici ce que vous pouvez faire pour accomplir ça,
+
=== Shell grub ===
  
Sur [http://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers wikipedia], il y a une longue liste de résolution framebuffer (i.e. en plus de ce qu’il y a dans le standard VBE). Mais celle que je veux utiliser est, par exemple, 1440×900 et <code>vga=867</code> ne fonctionne pas. Peut-être parce que ces résolutions sont en dehors du standard et chaque fabriquant de carte graphique ont leur propre code.
+
A adapter selon l'emplacement des fichiers GRUB:
 +
grub> root (hd0,0)
  
Donc, au lieu d’utiliser cette table, je suggère d’utiliser cette méthode :
+
Pour installer sur le [[wikipedia:MBR|MBR]]:
 +
grub> setup (hd0)
  
=== Comment trouver le bon code pour utiliser la résolution désirée ===
+
Installation sur la première partition:
# Installez le paquet ''lrmi'' à partir du dépôt '''[community]''' (qui contient vbetest) ;
+
grub> setup (hd0,0)
# lancez ''vbetest'' en tant que root et dans une '''console''' qui se trouve déjà en framebuffer. Tant que ''vbetest'' retourne les résultats dans un terminal dans X, vous ne pourrez pas tester avec <tt>vbetest -m votrenombreici</tt> à moins que vous utilisez une console en framebuffer ;
 
# ensuite, notez le nombre qui se trouve entre « [ ] » correspondant à la résolution que vous souhaitez ;
 
# Tapez 'q' pour quitter le prompt interactif de ''vbetest''. Si vous voulez tester la résolution que vous venez de récupérer, vous pouvez lancer <tt>vbetest -m votrenombreici</tt>. Vous verrez alors une image de contrôle des couleurs sur votre console.
 
Après quelques secondes, l’image redeviendra noire. Si le texte contenu dans votre console n’est pas restaurée, vous devrez changer de console et revenir pour restaurer le texte (problème mineure) ;
 
# additionnez 512 à votre nombre et prenez le résultat en tant que code pour l’utiliser à l’option noyau <tt>vga=</tt> dans {{Filename|menu.lst}} ;
 
# redémarrez et voilà !
 
  
Par exemple, j’ai ceci avec ''vbetest'' :
+
=== grub-install ===
[356] 1440x900 (256 color palette)
 
[357] 1440x900 (8:8:8)
 
Donc, le nombre que je veux est 357. Ensuite, 357 + 512 = 869, alors j’utiliserai ''vga=869''. Ajoutez votre valeur vga à la fin de la ligne noyau de {{Filename|menu.lst}} comme indiqué ci-dessous :
 
kernel /vmlinuz26 root=/dev/sda1 ro '''vga=869'''
 
  
Désormais, vous aurez une console utilisant la résolution native de votre écran. La prochaine étape est d’utiliser une police de caractère différente avec la bonne taille. Dans mon cas, j’utilise la police ''terminus'' nommée ter-120b.
+
{{tip|Cette méthode à le défaut de ne pas toujours fonctionner.}}
  
'''Note''':
+
Installation sur le MBR:
* (8:8:8) correspond aux couleurs 24-bit (ou 32-bit ?) ;
+
grub-install /dev/sda
* (5:6:5) correspond aux couleurs 16-bit ;
 
* (5:5:5) correspond aux couleurs 15-bit.
 
  
== Dépannage ==
+
Sur la première partition:
=== Éditer les entrées de GRUB juste avant de démarrer ===
+
  grub-install /dev/sda1
Une fois que vous avez sélectionné une entrée avant de démarrer, vous pouvez l’éditer en utilisant la touche 'e' et suivre les instructions sur l’écran. Ensuite vous pouvez démarrer dessus en utilisant la touche 'b'. Ces réglages '''ne seront pas sauvegardés'''.
 
 
 
=== Le menu de redémarrage dans KDE n’a aucuns effets ===
 
Si vous avez ouvert un sous menu avec la liste de tous les systèmes d’exploitation configurés dans grub, que vous en avez sélectionné un et dès le redémarrage vous avez toujours votre SE par défaut, alors vous devriez sans doute regarder si vous avez cette ligne
 
  default  saved
 
dans le fichier {{Filename|/boot/grub/menu.lst}}.
 
 
 
== Ressources externes ==
 
* [http://www.gnu.org/software/grub/ Site officiel de GRUB]
 
* [http://www.troubleshooters.com/linux/grub/index.htm GRUB Grotto - une excellente documentation sur GRUB]
 
 
 
[[Catégorie:Démarrage]]
 
[[Catégorie:Howto]]
 
[[Category:Necessite relecture]]
 

Version du 19 mars 2011 à 19:10


GRUB est un chargeur d'amorçage (bootloader) multiboot. Il est actuellement le bootloader par défaut.

Installation

grub est en théorie installé par défaut, mais au cas où:

pacman -S grub

Configuration

Le fichier de configuration est /boot/grub/menu.lst, exemple (en supprimant quelques commentaires):

Fichier: /boot/grub/menu.lst
# general configuration:
timeout   5
default   0
color light-blue/black light-cyan/blue

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 ro
initrd /kernel26.img

# (1) Windows
#title Windows
#rootnoverify (hd0,0)
#makeactive
#chainloader +1

Options

  • timeout: le temps en secondes avant de lancer le système par défaut ;
  • default: l'entrée à lancer par défaut au bout de timeout secondes ;
    default saved retient la dernière entrée de démarrage sélectionnée et la fait devenir la nouvelle entrée par défaut. Placez savedefault à la fin de chaque section de démarrage pour que cette fonctionnalité prenne effet.
  • (hdn,m): est la partition m sur le disque n, les nombres commencent à partir de 0 ;
  • splashimage (hdn,m)/grub/name.xpm.gz est l'image de fond ;
  • timeout m: m secondes d'attente avant la sélection automatique de l’entrée par défaut ;
  • password -md5 str: mot de passe chiffré ;
  • title str: Titre d'une entrée ;

Directive root

GRUB doit connaître la partition où il trouvera les fichiers dont il a besoin, cette partition est indiqué à l'aide de la directive root:

root   (hd0,0)

Afin de celle de votre système, vous pouvez lancer le shell grub et utiliser la commande find:

# grub
grub> find /grub/stage1
 (hd0,0)

L'argument à passer à find dépend évidemment de votre partitionnement, si vous n'avez pas de partition /boot:

grub> find /boot/grub/stage1

Dual boot avec Windows

title Windows
rootnoverify (hd0,0)
makeactive # Cette ligne est à commenter pour Windows 7
chainloader +1

L'argument de rootnoverify doit correspondre à la partition où est installé Windows.

Installation du chargeur

Les fichiers de GRUB sont copiés à l'installation du système, si vous ne l'avez pas installé à cette étape, copiez les manuellement:

cp -a /usr/lib/grub/i386-pc/* /boot/grub
Attention : N'oubliez pas de monter la partition /boot si vous ne le faites pas en automatique.

Shell grub

A adapter selon l'emplacement des fichiers GRUB:

grub> root (hd0,0)

Pour installer sur le MBR:

grub> setup (hd0)

Installation sur la première partition:

grub> setup (hd0,0)

grub-install

Astuce : Cette méthode à le défaut de ne pas toujours fonctionner.

Installation sur le MBR:

grub-install /dev/sda

Sur la première partition:

grub-install /dev/sda1