Accueil

Menu Linux

Menu Windows

I. Partie LINUX

  • Préliminaire

Introduction Linux

LiveCD Linux

  • Installation

LiveCD Ubuntu

Installation Ubuntu

Ubuntu sur Netbook

Installation Netbook

Installations, mise à jour

Applications Ubuntu

Documentation-Aides

  • Aller plus loin

Arborescence Ubuntu

Recherche Ubuntu

Edition Linux

Terminal & Super Utilisateur

Commandes Linux (1)

Commandes Linux (2)

Utilisateurs, groupes, droits

Installation Imprimante

Compression-Archivage

Déplacer le /home

  • Réseau

Connexion Linux

Réseau Linux

Analyse Réseau - Gestion parc

Partages,Transferts

Contrôle à distance

Serveur Linux

OpenVPN

Sécurité Linux

  • Utiliser des applications Windows

Virtualisation

Wine: Applications Windows sous Linux

  • Téléphonie VOIP

Asterisk, TrixBox

  • Maintenance, dépannage

Dépannage Ubuntu

Grub

Partitions Linux

Fstab

Sauvegarde-Synchronisation

  • BDD

BDD Linux

Access/MySQL

Talend Open Studio

II. Partie commune

Présentation

  • Internet

Navigation Internet

Thunderbird (1)

Thunderbird (2)

Thunderbird (3)

Courrier GMail

  • Bureautique

Open Office

  • Graphisme

Picasa

  • Photo

Photo: Théorie

Photo: Pratique

Diaporama, site photos

Retouche: Gimp

  • Vidéo

YouTube

  • BDD

Access/MySQL

III. Partie WINDOWS

  • Préliminaire

Logiciels Windows

Téléchargements

Utilitaires Windows

  • Internet

Connexion Internet

Export OutlookExpress

Changement d'ordinateur

Agenda

Blog: Dotclear

Exploration/Dépannage Internet

  • Création de site

Joomla

Dreamweaver

  • Réseau

Partage Connexion

Partage Fichiers

Partage Imprimante

Transfert Fichiers

  • Dépannage

Prévention-dépannage Windows

  • Divers

Anti-virus

Gravure CD

Installation périphérique Windows

Partitions Windows

Organisation disque dur

Sauvegarde-Synchronisation Windows

Putty

Contrôle à distance

Ubuntu: Le Grub

1. Introduction

GRUB (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. Fonctionnement

Quand 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 Grub

Pour 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

  • On peut agrémenter le menu du Grub au démarrage avec de la couleur. Pour cela, décommenter la 2° ligne:
# Pretty colours
# color cyan/blue white/blue
  • On peut paramétrer le temps d’attente du Grub avant qu’il ne lance l’option par défaut.
## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout         15
  • Si le Grub n’apparaît pas (sauf invite à entrer ESC), éditer le fichier et ajouter le caractère # (commentaire) devant la 3° ligne hiddenmenu pour le faire réapparaître.
# hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

4. Conseil

La 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 Grub

A 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 1

Suivre dans l’ordre les opérations suivantes:

  • démarrer sur un LiveCD
  • identifier la partition racine Ubuntu
    • soit par
      fdisk -l | grep Linux  # qui liste les partitions Linux
    • soit simplement par
      df  # qui donne l'occupation des systèmes de fichiers et des partitions
    • soit par le gestionnaire de partitions GParted
  • créer si nécessaire dans /media, soit un répertoire /custom qui servira par défaut pour toute opération de montage temporaire, soit un répertoire dans /media ayant le même nom que le baptême utilisé dans /dev. On prend ici pour exemple sda2:
sudo mkdir /media/sda2
  • monter cette partition
sudo mount /dev/sda2 /media/sda2  # remplacer sda2 par hda2 sur les versions Ubuntu moins récentes
  • se placer dans la partition montée
cd /media/sda2
  • modifier si nécessaire le fichier /etc/fstab s’il y a eu ajout de partition (voir la partie Fstab).
sudo gedit etc/fstab  # ou /media/sda2/etc/fstab
  • modifier ou récrire le fichier /boot/grub/menu.lst (voir § précédents)
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 Ubuntu

Cette méthode est très simple à mettre en oeuvre.

  • Lancer le LiveCD, ouvrir un terminal, installer l’application grub si nécessaire:
sudo apt-get install grub ## au cas où GRUB n'est pas installé
  • Lancer ensuite la commande:
sudo grub
  • On atterrit sur le menu principal de GRUB (les lignes commencent par “grub>”). Taper :
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ément

Aprè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.

  • Editer le menu du Grub.
sudo gedit /boot/grub/menu.lst
  • Ajouter le paragraphe suivant à l’endroit voulu dans le menu (vers la fin du texte du fichier) pour avoir la hiérarchie cherchée:
title   Windows 95/98/NT/2000/XP
root   (hd0,0)                   # pour un disque C:\ Windows en hda1
makeactive
chainloader   +1
  • Compléter, s’il y a lieu, le fichier fstab pour y incorporer une partition récemment ajoutée et permettre de la monter au démarrage.
sudo gedit /etc/fstab

sinon, utiliser Disk-Manager.

6. Enregistrement du Grub

6.1 Par défaut avec Ubuntu, le Grub est installé sur le MBR.

  • Dans la partie Dépannage Ubuntu, la méthode suivante est présentée pour reconstituer et enregistrer un Grub après effacement (cas typique d’une installation Windows sur une machine Linux). Ici, le Grub est 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
  • On peut, également, l’installer sur la partition racine d’Ubuntu.

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.

  • La commande pour sauvegarder la table de partition complète du disque dur (hda) est:
sfdisk -d /dev/hda > bak-hda
  • La commande suivante permet au contraire de la restaurer:
sfdisk /dev/hda < bak-hda

6.2 Autre solution pour le MBR

  • Sauvegarde par
dd if=/dev/sda of=/tmp/mbr.bak bs=1 count=512
  • Restauration par
dd if=/tmp/mbr.bak of=/dev/sda

Attention, s’il y a erreur, on peut perdre son disque.

7. Commandes du Grub

Il existe plusieurs autres commandes pour le Grub:

  • update-grub, qui après examen dans /boot des fichiers vmlinuz écrit le fichier menu.lst du Grub,
  • grub-install, qui installe 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:

  • A partir du shell, créer le répertoire dans "/media” :
sudo mkdir /media/rep
  • Monter la partition “sda3” (On suppose ici que la racine sur le disque est enext3 sur sda3) sur ce point de montage:
sudo mount -t ext3 /dev/sda3 /media/rep
  • Se chrooter dans la partition :
sudo chroot /media/rep
  • Lancer l’installation de grub (éventuellement vérifier et modifier le fichier de conf /boot/grub/menu/lst si besoin était) :
grub-install /dev/sda  # on n'a pas besoin de sudo, on est passé root avec le chroot
  • Quitter le chroot par quit.

8. Effacement du MBR

En 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 Grub

Pour 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. GAG

En 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 Grub

Une alternative est d’utiliser Super Grub. Documentation sur http://www.commentcamarche.net/faq/sujet-15961-super-grub-disk-live-cd#

12. Grub2

Avec 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 :

  • /dev/hda1 ou /dev/sda1 sera nommé hd(0,1) par grub-pc au lieu de hd(0,0) dans grub-legacy.
  • /dev/hdc5 ou /dev/sdc5 sera nommé hd(2,5) par grub-pc au lieu de hd(0,4) dans grub-legacy.

Cas du multi-disques

Quand 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.

 
 
grub.txt · Dernière modification: 2009/11/19 11:07 par guy
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki