|
Table des matières
Ubuntu: Le Grub1. IntroductionGRUB (pour GRand Unified Bootloader) est un programme de multiboot, libre, au même titre que LILO (Linux Loader), qui permet de choisir le système d’exploitation au démarrage de l’ordinateur. C’est le chargeur de configuration utilisé par défaut sur Ubuntu. 2. FonctionnementQuand l’ordinateur est allumé, le BIOS cherche un disque sur lequel booter, et transfère le contrôle au Master Boot Record (MBR) de ce disque, correspondant aux 512 premiers octets du disque. Le MBR contient la partie 1 de GRUB, les parties suivantes du Grub peuvent se trouver ailleurs. Quand le Grub est chargé, il affiche une interface à l’utilisateur, et ce dernier peut choisir quel système d’exploitation charger. GRUB peut également charger un système d’exploitation automatiquement, après une période donnée. Une fois le système choisi, GRUB le charge et lui transfère le contrôle de la machine. 3. Modification du GrubPour modifier le fichier du Grub, il faut l’éditer en tant qu’administrateur, il est enregistré dans le fichier /boot/grub/menu.lst. Pour cela, ouvrir un terminal par Applications/Accessoires/Terminal et écrire : gksudo gedit /boot/grub/menu.lst & gksudo (pour passer en mode super-utilisateur avec interface graphique Gnome), laisser un espace, gedit (commande pour ouvrir l’éditeur Gedit), espace, /boot/grub/menu.lst (adresse du fichier) & pour garder la main dans le terminal. La console en réponse demande le mot de passe de l’utilisateur : Puis, il ouvre Gedit : Bien agrandir verticalement pour voir le menu, assez long. Toutes les lignes précédées du caractère # sont des commentaires. Les textes encadrés par ## des deux côtés sont des titres dans les commentaires. Sur l’exemple ici, Windows XP est mis en premier. Si on ne fait rien, il démarrera par défaut après la temporisation. Si ce n’est pas le cas et que l’on veut mettre XP au début, il suffit de le chercher dans le Grub et faire un couper-coller du paragraphe XP et le mettre en tête de la liste qui suit la ligne de titre ## End default Options ##. Quand la modification est faite, faire Enregistrer dans Gedit et Quitter. Au prochain démarrage, la modification fera effet. Nota
# Pretty colours # color cyan/blue white/blue
## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). timeout 15
# hiddenmenu # Hides the menu by default (press ESC to see the menu) #hiddenmenu 4. ConseilLa syntaxe du Grub n’est pas homogène avec les baptêmes Linux des partitions. Le 1° disque appelé d’habitude hda est ici hd0. Ensuite, les partitions sont comptées à partir de zéro et s’écrivent pour le 1° disque: (hd0,0), (hd0,1), (hd0.2)… au lieu de hda1, hda2, hda3… ou sda1, sda2…. On voit sur l’exemple précédent que la partition de démarrage XP est marquée en (hd0,0) qui correspond à la première partition du premier disque qui est appelée partout ailleurs hda1. Pour éviter tout risque d’erreur, enregistrer en lieu sûr et accessible dans tous les cas de figures (partie Fat32, clé USB, répertoire/home) une copie d’un Grub qui fonctionne bien. La copie se fait soit en mode graphique en navigant dans le système de fichiers, soit en lignes de commande du terminal: cp /boot/grub/menu.lst /home/votre_login/grub_menu.lst # ou ailleurs (autre partition,...) Ce fichier pourra servir plus tard de modèle en cas de besoin… Une bonne habitude à prendre quand on modifie un Grub est de commenter les lignes à modifier (ajouter en tête de ligne un dièze) et réécrire en-dessous les nouvelles lignes. Cette précaution permet de revenir facilement à l’état précédent en cas de problème. A titre d’exemple, un tel fichier menu.lst est mis sur le site à côté de ce fichier. 5. Réinstallation GrubA la suite d’une installation ou réinstallation Windows sur une partition, le Grub est effacé. On ne peut plus démarrer qu’en Windows. Il faut donc refaire le Grub. A titre d’information, la documentation Ubuntu comporte une page sur le sujet. 5.1 Méthode 1Suivre dans l’ordre les opérations suivantes:
sudo mkdir /media/sda2
sudo mount /dev/sda2 /media/sda2 # remplacer sda2 par hda2 sur les versions Ubuntu moins récentes
cd /media/sda2
sudo gedit etc/fstab # ou /media/sda2/etc/fstab
sudo gedit boot/grub/menu.lst # ou /media/sda2/boot/grub/menu.lst Il faut ensuite écrire ce grub sur le MBR du disque de démarrage. sudo grub-install /dev/sda --root-directory=/media # pour un disque de démarrage hda. Remplacer sda par hda si besoin Probing devices to guess BIOS drives. This may take a long time. # cela peut demander du temps Installing GRUB to /dev/sda as (hd0)... Installation finished. No error reported. This is the contents of the device map /media/boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb (hd2) /dev/sdc 5.2 Méthode UbuntuCette méthode est très simple à mettre en oeuvre.
sudo apt-get install grub ## au cas où GRUB n'est pas installé
sudo grub
grub> find /boot/grub/stage1 si le message “Error 15 : file not found” est rapporté, essayer : grub> find /grub/stage1 La réponse devrait être sous la forme (hdx,y) avec x et y en tant que nombres entiers. Taper ensuite : grub> root (hdx,y) où x et y sont remplacés par les nombres obtenus ci-dessus. Taper, ensuite grub> setup (hdx) où hd0 représente hda le premier disque dur. Une dernière commande pour sortir: grub> quit Et voila, normalement c’est bon !! 5.3 ComplémentAprès application de la méthode 2, la machine redémarre en Ubuntu. Si Ubuntu a été installé avant Windows, l’ancien Grub ne pouvait pas le connaitre. Il faut donc compléter le menu de démarrage.
sudo gedit /boot/grub/menu.lst
title Windows 95/98/NT/2000/XP root (hd0,0) # pour un disque C:\ Windows en hda1 makeactive chainloader +1
sudo gedit /etc/fstab sinon, utiliser Disk-Manager. 6. Enregistrement du Grub6.1 Par défaut avec Ubuntu, le Grub est installé sur le MBR.
sudo grub # lance l'éxécution de Grub. (S'il n'est pas installé: sudo apt-get install grub) find /boot/grub/stage1 # recherche du fichier stage1 du répertoire Grub. Le résultat sera sans doute (hd0,i), c'est à dire disque hda1, partition i root (hd0,i) # pour le réinstaller au même endroit qu'avant setup (hd0) # pour garder le même disque de démarrage quit # ou Ctl+C
Pour l’installer sur une partition-racine Ubuntu, il suffit de remplacer la ligne 4 du setup par: setup (hd0,i) # le Grub est alors installé sur cette partition Il est inutile de préciser que cette commande est à utiliser avec la plus grande prudence car elle écrasera la table de partition existante. Avant de restaurer, il faudra faire une sauvegarde de la version actuelle. Cela permettra de restaurer la table de partition en cas de problème.
sfdisk -d /dev/hda > bak-hda
sfdisk /dev/hda < bak-hda 6.2 Autre solution pour le MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=1 count=512
dd if=/tmp/mbr.bak of=/dev/sda Attention, s’il y a erreur, on peut perdre son disque. 7. Commandes du GrubIl existe plusieurs autres commandes pour le Grub:
La procédure nécessite de se “chrooter” sur la partition racine du système avant d’entreprendre de réinstaller grub. Derrière ce terme barbare, se cache tout simplement le fait de “monter” une partition d’un disque, se chrooter dessus, autrement dit faire de cette partition la partition racine et ainsi le faire croire au système. La procédure à suivre est la suivante:
sudo mkdir /media/rep
sudo mount -t ext3 /dev/sda3 /media/rep
sudo chroot /media/rep
grub-install /dev/sda # on n'a pas besoin de sudo, on est passé root avec le chroot
8. Effacement du MBREn cas d’effacement total du MBR, se reporter à la documentation suivante http://coursinforev.ovh.org/dokuwiki/doku.php?id=depannage_ubuntu#effacement_du_mbr. 9. Emplacement du GrubPour voir les emplacements du Grub, regarder le fichier /boot/grub/devicemap guy@Athos:~$ cat /boot/grub/device.map (hd0) /dev/sda (hd1) /dev/sdb guy@Athos:~$ sudo grub [sudo] password for guy: Probing devices to guess BIOS drives. This may take a long time. grub> # le point d'insertion des commandes grub est après le signe> 10. GAGEn cas de difficulté en multi-boot, on peut également avoir recours à GAG (initiales en Espagnol de Graphical Boot Manager) est un programme Boot Manager. Il est chargé au démarrage de l’ordinateur et permet de choisir le système d’exploitation à utiliser. Le téléchargement se fait sur http://gag.sourceforge.net/. Pour le fonctionnement, se reporter sur http://doc.ubuntu-fr.org/installation/multiboot#utilisationconfiguration. 11. Super GrubUne alternative est d’utiliser Super Grub. Documentation sur http://www.commentcamarche.net/faq/sujet-15961-super-grub-disk-live-cd# 12. Grub2Avec Ubuntu 9.10, un nouveau Grub apparaît, le Grub2. La configuration ne se fait plus par /boot/grub/menu.lst elle est faite par /etc/default/grub. Pour plus de précision, se reporter à http://doc.ubuntu-fr.org/grub-pc et http://grub.enbug.org/OptionsDeGrub. Attention. La convention de numérotage des partitions dans grub-pc a changé: celui des disques durs physiques démarre toujours de 0 mais celle des partitions commence à 1, à la différence de grub-legacy (l’ancien grub).
Par exemple :
Cas du multi-disquesQuand on a plusieurs disques, il est bon de préciser l’ordre entre les disques pour éviter les confusions au boot. Se reporter au chapitre Dépannage Linux. |