Ceci est une ancienne révision du document !
Dapper, Breezy, Hoary, Warty
Traduction libre de GrubHowto
Rédigé par Manu complété par Les contributeurs d'Ubuntu-fr. Relu par methu. Merge avec doc statique Ju.. Explications fond d'écran Eric P. Explication GrubConf Zolgot
Paramétrage
Grub désigne les disques et partitions présents sur votre machine d’une manière différente de celle utilisée par Ubuntu.
Avec Grub, les disques et les partitions sont identifiés à l’aide d’expressions écrites entre parenthèses. Si par exemple on souhaite désigner le lecteur de disquettes, on écrira (fd0)
. fd
signifie qu’on s’intéresse au lecteur de disquettes. Le 0
est là pour indiquer qu’il s’agit du premier lecteur de disquettes. Si on possède un deuxième lecteur de disquettes, celui-ci sera désigné par (fd1)
. Notez que même si l’on ne possède qu’un seul lecteur, il est nécessaire de mentionner le 0
.
Pour désigner un disque dur, on utilise la même notation en remplaçant fd
par hd
(peu importe que le disque dur soit IDE, ou SATA). Comme pour les lecteurs de disquettes, la numérotation des disques commence à 0
. Le disque /dev/hda
est donc désigné par (hd0)
. Pour indiquer une partition, on fait suivre l’expression entre parenthèse par une virgule et le numéro attribué à la partition. Comme pour les lecteurs, la numérotation débute à 0
. La notation utilisée pour designer la deuxième partition du disque /dev/hdb
(c.-à-d. /dev/hdb2
) est donc (hd1,1)
.
Nous arrêtons ici la description des conventions d’écriture employées par Grub pour désigner des disques et des partitions. Si vous désirez en connaître plus à ce sujet, consultez la documentation officielle de Grub. La prévention : une disquette de démarrage.
Paramétrage de base de Grub
Pour entrer dans le menu de Grub, vous devez appuyer sur Echap
juste après le démarrage "par défaut", vous devez appuyer sur Echap
très rapidement. Pour augmenter ce temps, éditez /boot/grub/menu.lst
(avec Nano, par exemple), puis augmentez le nombre de secondes dans la section timeout. Vous pourrez également faire apparaître systématiquement le menu de GRUB pendant le boot en commentant hiddenmenu dans le même fichier (rajouter un symbole # devant). Une fois que vous avez changé menu.lst vous devez taper la commande :
sudo update-grub
Notez que si l’installateur d’Ubuntu détecte d’autres systèmes d'exploitation sur le disque pendant l’installation, alors le menu de Grub sera visible par défaut au boot et le timeout sera augmenté, ainsi les étapes ci-dessus seront inutiles.
Paramètrage du noyau dans Grub
Le script update-grub
se sert d’un certain nombre d'options lorsqu’il met à jour le menu.lst
, options qu'il trouve aussi dans le menu.lst
.
Dans /boot/grub/menu.lst
, vous trouverez une ligne comme ceci :
kopt=root=/dev/sda1 ro
C'est un commentaire, mais n'enlevez pas le #
au début, c’est important.
Si vous avez besoin de paramètres additionnels pour le noyau (par exemple, si quelqu'un vous a demandé d’examiner le boot avec certains paramètres afin de dépanner un problème), ajoutez-les à la fin de la ligne, par exemple pour ajouter le noapic :
kopt=root=/dev/sda1 ro noapic
Après les modifications, mettez à jour Grub en tapant la commande :
sudo update-grub
Windows dans le menu Grub
Pour ajouter Microsoft Windows dans la liste des systèmes d'exploitation pouvant être démarrés qu'affiche Grub, il faut modifier le fichier /boot/grub/menu.lst
. Ceci peut être fait, par exemple, graphiquement avec un logiciel d'édition de texte simple, comme gEdit ou KWrite, ou avec un éditeur de texte simple fonctionnant dans un terminal, tel Nano. Que vous choisissiez l'un ou l'autre de ces logiciels, vous devez le démarrer avec les droits du superutilisateur ; saisissez l'une des commandes suivantes dans un terminal :
- pour Ubuntu :
Alt+F2
puisgksudo "gedit /boot/grub/menu.lst"
- pour Kubuntu :
Alt+F2
puiskdesu "kate /boot/grub/menu.lst"
- en console :
sudo nano /boot/grub/menu.lst
Les lignes à ajouter dépendent de votre cas en particulier où se trouve la partition Windows.
Hypothèses
Windows se trouve sur la 1re partition du 1er disque dur
Ajoutez les lignes suivantes à la fin du fichier :
title Windows NT/2000/XP root (hd0,0) savedefault makeactive chainloader +1 boot
Windows se trouve sur la 1re partition du 2e disque dur
Il faut alors virtuellement placer ce disque dur en hd0 sans quoi windows ne peut démarrer. Les lignes à ajouter sont alors :
title Windows NT/2000/XP root (hd1,0) # la partition a démarrer makeactive # cette commande positionne le bit de partition active à 1 (au cas où) map (hd0) (hd1) # hd0 devient hd1 map (hd1) (hd0) # hd1 devient hd0 virtuellement chainloader +1 # saut au début de la piste suivante car c'est un OS Microsoft(R).
Windows/Dos est présent en plusieurs versions sur un même disque dur et ne sont pas gerés par le multi-boot de Windows
L’installation normale de Windows, de la version la plus ancienne à la version la plus récente (si cette dernière prend en charge le multi-boot) propose normalement un multi-boot reprenant les diverses versions de Windows ou Dos installées. Dans certains cas atypiques, concernant le plus souvent les anciennes versions et/ou une installation dans le désordre, il est parfois necessaire d’utiliser les commandes hide et unhide.
Ceci permet de cacher la ou les versions que l’on ne veut pas voir démarrer, outre le fait qu’il faut utiliser map
si ce disque n’est pas le premier.
Un exemple :
Windows 2000 (NT 5.0) est sur la première partition du premier disque(hd0,0)
, Win 98 sur la seconde(hd0,1)
.
Et vous voulez démarrer Windows 2000.
Votre fichier de configuration (vers la fin) menu.lst
devra contenir les « paragraphes » suivant :
title Windows 2000 hide (hd0,0) #la 1re partition est masquée unhide (hd0,1) #la 2e partition est démasquée (même si elle n'était pas masquée) rootnoverify (hd0,1) makeactive chainloader +1
Dans cet exemple, ce paragraphe est bien entendu suivi de :
title Windows 98 hide (hd0,1) #la seconde partition est masquée unhide (hd0,0) #la première partition est démasquée rootnoverify (hd0,0) makeactive chainloader +1
pour pouvoir démarrer Win 98.
Note : En aucun cas n’utilisez la commande hide
pour masquer la partition qui contient le repertoire /boot/grub
avec les fichiers menu.lst
et stage2
car cette partition une fois masquée et l’ordinateur éteint, au redémarrage stage1
qui tentera de charger stage2
soit ne le trouvera pas, vous obtiendrez
Error 15 (file not found)
ou plus probablement le trouvera mais ne pourra y accéder :
Error 17 (filesystem type unknown etc.)
Choix du système d’exploitation par défaut
Par défaut, c’est Ubuntu qui se charge, mais vous préféreriez que ce soit Windows ?
Au menu de Grub, vérifiez à quelle position se trouve Windows dans votre menu. Puis, soustrayez 1 à ce nombre. Enfin, dans Ubuntu, ouvrez le fichier /boot/grub/menu.lst
tel que décrit à l'étape précédente et recherchez la ligne suivante :
default 0
Remplacez 0
par le nombre que vous avez obtenu.
Comment faire un sous menu avec grub
Vous avez plusieurs distribution linux, plusieurs ubuntu debian ou autre, comment faire des menu qui vont etre toujours a jour.
Chaque distribution gére son menu de démarage normalement automatique, mais on ne peut pas le faire depuis un unique menu. On va donc utiliser des sous menu
Grub permet d'avoir un menu qui va charger un fichier de config différent, qui peut etre sur une autre partitions bien sur.
title monsounemu ubuntu autre version root (hd0,0) configfile /boot/grub/menu.lst
cela peut etre un autre emplacement a definir soit meme , c'est tous, ce n'est pas plus complique.
En cas de soucis
N'oubliez pas de créer une disquette_de_boot_avec_grub.
Restauration
Lorsque Grub a été effacé par l'installation d'un autre système d'exploitation (par exemple Windows), la disquette de démarrage s'avère utile. En effet, grâce à elle, vous pouvez démarrer votre système Ubuntu ! Pour cela, consultez l'article recup_ubuntu_apres_win.
Attention: Il existe un live-cd specialment conçu pour la restauration du grub après une re-installation de Windows très facile d'employer. C'est le Super Grub Disk. Despuis le cdrom de Super Grub Disk tu suives les options: Français → Linux → Arranger Demarrage de Linux. SGD te dira: SGD a reussi!
Et Grub sera a nouveau sur ton MBR te permettant de demmarrer tant Windows comme Linux.
Toutefois, si vous ne possédez pas de disquette de démarrage, ne cédez pas à la panique car il y a moyen de s'en sortir à l'aide d'un Live CD contenant le programme Grub. Si vous n'avez pas de Live CD, vous pouvez, par exemple, télécharger SystemRescueCd dont la taille avoisine 100 Mio.
Vous pouvez egalement utiliser le Live CD Ubuntu.
En dernier recours, le CD d'installation peut aussi aider.
Avec Ubuntu ou un Live CD
Note pour le Live CD Ubuntu : le paquet grub
n'étant pas installé, vous devez faire :
sudo apt-get install grub
La source du paquet peut provenir d'Internet (si vous avez configuré le réseau) ou d'un CD d'installation d'Ubuntu.
apt-cdrom add /media/cdrom
permet d'ajouter le CD-ROM comme source de paquets.
Sous Ubuntu, ou à partir d'une machine démarrée avec un Live CD, dans un terminal, lancez Grub :
sudo -s
Étapes communes aux deux méthodes
grub --batch
Si vous ne savez pas sur quelle partition se trouvent les fichiers de Grub, entrez à l'invite grub>
:
grub> find /boot/grub/stage1
Cette commande vous indiquera la partition sur laquelle sont situés ces fichiers. Imaginons que cette commande nous a fourni (hd0,1)
comme réponse. Dans ce cas, il faut entrer :
grub> root (hd0,1)
Remplacez bien entendu (hd0,1)
par la partition correspondante.
L'étape suivante consiste à indiquer à Grub le disque sur lequel il doit (ré)installer le chargeur de système. Si par exemple, on souhaite l'installer sur le disque (hd0)
:
grub> setup (hd0) grub> quit
Voilà le travail est fini. Grub est remis d'aplomb !
Avec le CD d'installation version supérieure ou égale à 6.06 (Dapper)
rédigé par Théo Thirion
C'est la méthode la plus simple.
Pré-requis
Vous devez savoir quel est le nom de votre partition racine (/dev/hdxy
où x est une lettre et y un chiffre disponible dans /etc/fstab
) ainsi que les numéros Grub correspondants ( (hdz,w)
où z et w sont des chiffres disponibles dans /boot/grub/menu.lst
). Ces informations sont primordiales. Sans elles, il est quasi impossible de récupérer Grub.
Astuces : Si vous n'avez qu'un disque dur et qu'il est en IDE il s'agit de /dev/hda
.
Si celui-ci est SATA il s'agit de /dev/sda
.
De plus, si vous n'avez qu'Ubuntu d'installée, il y a de fortes chances pour qu'elle le soit dans la première partition du disque soit /dev/hda1
pour un IDE ou /dev/sda1
pour un SATA.
Grub ne se souciant pas du système d'exploitation, mais récupérant les informations depuis le BIOS, considérera qu'il s'agit du premier disque dur et de la première partition venue, d'où (hd0,0)
que ce soit pour de l'IDE ou du SATA.
Démarche
Insérez le cd d'installation.
Lors du premier menu selectionnez "Restauration système" Répondez à toutes les questions.
Vous arrivez à un menu, choisissez "Restauration GRUB".
Selectionnez votre disque racine. Puis selectionnez le disque contenant la MBR. Le plus souvent (hd0).
Validez. Sur le menu suivant choisissez reboot, retirez le disque en benissant Ubuntu et rangez le soigneusement.
Avec le CD d'installation version inférieure à 6.06
rédigé par Raphaël Doursenaud
À moins que vous n'ayez d'autres choix, je vous recommande vivement d'utiliser la méthode avec le Live CD présentée ci-dessus.
Pré-requis
Vous devez savoir quel est le nom de votre partition racine (/dev/hdxy
où x est une lettre et y un chiffre disponible dans /etc/fstab
) ainsi que les numéros Grub correspondants ( (hdz,w)
où z et w sont des chiffres disponibles dans /boot/grub/menu.lst
). Ces informations sont primordiales. Sans elles, il est quasi impossible de récupérer Grub.
Astuces : Si vous n'avez qu'un disque dur et qu'il est en IDE il s'agit de /dev/hda
.
Si celui-ci est SATA il s'agit de /dev/sda
.
De plus, si vous n'avez qu'Ubuntu d'installée, il y a de fortes chances pour qu'elle le soit dans la première partition du disque soit /dev/hda1
pour un IDE ou /dev/sda1
pour un SATA.
Grub ne se souciant pas du système d'exploitation, mais récupérant les informations depuis le BIOS, considérera qu'il s'agit du premier disque dur et de la première partition venue, d'où (hd0,0)
que ce soit pour de l'IDE ou du SATA.
Démarche
Démarrez l'installation normalement jusqu'à l'invite de partitionnement. Rassurez-vous jusqu'ici rien n'est modifié sur le système.
Pressez alors la combinaison de touches [Ctrl]+[Alt]+[F2].
Vous retrouvez alors une console. Pressez [Entrée] pour y pénétrer.
Créez alors un répertoire pour accueillir votre partition racine :
mkdir -p /cible/proc
Montez « /proc » dans votre partition :
mount /proc -t proc /cible/proc
Entrez dans l'environnement de votre partition :
chroot /cible
Enfin à partir de là suivez les étapes communes aux deux méthodes ci-dessus en n'oubliant pas d'adapter les lignes avec les valeurs relevées dans la section pré-requis.
Fond d'écran dans Grub
Il est possible de paramétrer Grub pour qu'une image, appelée « splash image » soit affichée en fond d'écran.
Installation
Tout d’abord, vous pouvez installer un paquet contenant des images par défaut :
sudo apt-get install grub-splashimages
Ces images vont être placées dans /boot/grub/splashimages/
. Il n'est pas obligatoire d'utiliser ce paquet, vous pouvez télécharger vos propres images sur Internet ou les créer vous-mêmes (voir Création de son image), mais il faut que vous les placiez dans /boot/grub/splashimages/
.
Cependant vous n'aurez probablement pas les droits d'écriture pour les placer à cet endroit. Utiliser alors la commande cp
qui sert à copier des fichiers d'un emplacement vers un autre (on doit les saisir en les séparant avec un espace). En la combinant avec sudo vous obtenez les droits d'écriture. Manipulez-là toutefois avec précaution (gare à la syntaxe) :
sudo cp /chemin_de_votre_image /boot/grub/splashimages
Ce site-ci (erreur 404) et ce site-là contiennent de chouettes images pour Ubuntu.
Rajouter ceci dans le fichier /boot/grub/menu.lst
(juste avant la déclaration des divers systèmes installés, car si vous rajoutez cette ligne à la fin du fichier cela ne fonctionnera pas.)
splashimage (hdX,Y)/boot/grub/splashimages/NOM_IMAGE.xpm.gz
Où :
- NOM_IMAGE est à remplacer par le nom de l'image que vous avez choisie, par exemple, biosplash ;
(hdX,Y)
est à remplacer par la partition montée en/boot
, ou en/
si vous n'avez pas choisi d'installer/boot
sur une partition séparée. Par exemple, si vous avez un disque monté en/boot
(par exemple(hd0,3)
), vous devrez mettre :splashimage (hd0,3)/boot/grub/splashimages/biosplash.xpm.gz
Le (hdX,Y) est facultatif. Dans la plupart des cas, vous n'êtes pas obligé de le mettre.
Pour voir votre image, redémarrez l’ordinateur et admirez.
Il est possible également d'installer un « boot splash » pour que toute la suite du démarrage d'Ubuntu soit graphique, avec une barre de progression. Cette page est la suivante boot splash, mais vous pouvez aussi vous référer à ce how-to, paru sur le forum anglophone d'Ubuntu.
Note : Ce « boot splash » est présent dans la version 6.06.
Création de son image
Les images utilisées par grub sont bien particulières. Elle doivent remplir un certain cahier des charges :
- fichier de type
xpm.gz
; - taille de 640x480 ;
- être en 14 couleurs seulement.
Pour vous aider, Coffee a écrit un petit script disponible ici.
Grime
Grime permet de configurer aisément le « splashimage » de Grub. Pour cela, il vous suffit de le télécharger et le décompresser. Il faut ensuite, en ligne de commande, se placer dans le dossier où il a été décompressé et saisir :
./configure sudo make
Ensuite, si tout s'est bien passé, tapez :
sudo grime
Et normalement une fenêtre devrait apparaitre pour régler les splashimage.
Note : Grime requiert ImageMagick. Si il y a un message d'erreur après ./configure
, l'installer avec :
sudo apt-get install imagemagick
Note : Si vous êtes sur Kubuntu :
sudo apt-get install imagemagick python-glade2
Ne garder que le dernier noyau dans la liste
Lors des mises à jour d'une nouvelle version du noyau, Grub conserve la liste des versions précédentes pour des raisons de sécurité et régler certaines incompatilibités éventuelles. Or, cette liste peut devenir très longue et inesthétique. Il est possible de dire à Grub combien de versions différentes du noyau on souhaite afficher. Ouvrir un terminal et taper :
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
On fait une sauvegarde du fichier que l'on va modifier, puis:
(Pour Ubuntu) Alt+F2 puis : gksudo gedit /boot/grub/menu.lst
(Pour Kubuntu) Alt+F2 puis : kdesu kate /boot/grub/menu.lst
(Toutes versions) : sudo nano /boot/grub/menu.lst
Cherchez la ligne :
# howmany=all
et la remplacer par :
# howmany=1
où 1 est le nombre de noyaux qu'on veut afficher. Pour afficher les 2 derniers, mettre le chiffre 2 et ainsi de suite.
Attention, ne pas retirer le symbole #
Sauvegardez le document. À la prochaine mise à jour du noyau, la liste se mettra à jour automatiquement.
Alternativement on peut desinstaller les noyaux que l'on n'utilise plus… comme d'habitude il faut garder un peu de recul et ne pas laisser que le strict minimum (ou être sportif)
Documentation complémentaire
Liens
Voici quelques liens, pour ceux qui veulent approfondir le sujet :
- site du projet GNU GRUB (en anglais):
Les fichiers de Grub ont disparu !
Si vous avez malencontreusement effacé le répertoire /boot/grub/
, vous pouvez vous en sortir en recréant un nouveau répertoire grub/
dans /boot/
et en y copiant le contenu de /lib/grub/i386-pc/
:
sudo mkdir /boot/grub sudo cp -a /lib/grub/i386-pc/* /boot/grub/
Ensuite, suivez les étapes décrites au point 5 à partir d'ici.
De plus, si vous comptez également regénérer le fichier /boot/grub/menu.lst
, vous pouvez vous inspirer du fichier /usr/share/doc/grub/examples/menu.lst
.