Outils pour utilisateurs

Outils du site


tuto:linux:grub

Source : http://doc.ubuntu-fr.org/grub

Gestionnaire d'amorçage : Grub

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 désigner 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 très rapidement appuyer sur « Echap » juste après le démarrage « par défaut ». Pour augmenter ce temps, éditez « /boot/grub/menu.lst », puis augmentez le nombre de secondes dans la section timeout. Vous pouvez également faire apparaitre 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 pouvez redémarrer votre ordinateur, les changements seront pris en compte.

La commande update-grub permet la mise à jour automatique du « menu.lst » :

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.

Pour mettre à jour le menu que Grub affiche au démarrage du disque hd0, Tapez la commande :

sudo grub-install hd0

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.

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

(cette commande annule toute modification… donc il vaut mieux ne pas le faire…)

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 odifier, avec les droits d'administration, le fichier « /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 géré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 nécessaire 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 seconde partition du premier disque (hd0,0 1), Win 98 sur la seconde première (hd0,1 0).
Et vous voulez démarrer Windows 2000.

Votre fichier de configuration (vers la fin) « menu.lst » devra contenir les « paragraphes » suivants :

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) #on part sur la 2e
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) #on part sur la 1re
makeactive
chainloader +1

pour pouvoir démarrer Win 98.

En aucun cas n’utilisez la commande « hide » pour masquer la partition qui contient le répertoire « /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.)

Utiliser Grub comme relais (Chainloader), pour lancer un autre système Linux

Si vous voulez installer un autre système Linux et éviter d'avoir à modifier votre « menu.lst » à chaque changement de noyau pour pouvoir le lancer ou, si vous ne voulez pas que le Grub de votre nouveau système écrase celui de votre système principal, vous pouvez utiliser Grub comme un relais qui ira chercher le Grub propre à votre 2e système.

C'est la façon la plus simple et la plus sûr pour lancer d'autres systèmes Linux car ils restent ainsi indépendants, et ne viendront pas compromettre votre système principal.

Pré-requis

Le Grub de votre 2e système Linux ne doit pas être installé dans le MBR de votre disque dur. Il doit être installé dans le secteur d'amorçage (BS) de la partition sur laquelle vous avez installé votre 2e système Linux (la partition / root).

Exemple :

Le 2e système Linux se nomme GNU/Debian, et a été installé, ainsi que son Grub, sur la partition « /dev/sda3 » (ici hd0,2 dans le langage de Grub).

Rajouter simplement une entrée dans le « /boot/grub/menu.lst » de votre système Linux principal (en dessous des lignes « END DEBIAN AUTOMAGIC KERNELS… » pour ne pas quelle soit effacée lors d'une mise à jour du Grub) en adaptant bien sûr (hd0,2) à votre cas :

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root

# GNU/Debian Linux installé sur /dev/sda3
title Grub Debian
root (hd0,2)
chainloader +1
boot

Ainsi, lorsque vous sélectionnerez votre 2e système, le Grub de votre système principal passera le relais au Grub de votre 2e système et vous proposera les choix configurés dans son propre « menu.lst ».

Choix du système d’exploitation par défaut ou du noyau par défaut

Le système d'exploitation lancé par défaut par Grub peut être choisi par l'utilisateur, en modifiant la valeur du champ default dans le fichier « /boot/grub/menu.lst ».

Ce champ default correspond au numéro de la ligne qui est sélectionnée par défaut lors du démarrage.

Attention, 0 correspond a la 1re ligne, 1 correspond à la deuxième ligne, etc.

Pour modifier le système d'exploitation lancé par défaut, on peut procéder en deux étapes :

  • Étape 1 : Position de ce sur quoi on veut booter dans le menu de Grub, vérifier dans quelle position se trouve le noyau ou l'OS sur lequel vous voulez booter. On peut utiliser deux méthodes pour celà : Soit on redémarre l'ordinateur, et on retient le numero (n) de la ligne qui correspond (méthode bête mais simple), soit on ouvre le fichier /boot/grub/menu.lst, et on retient l'index (n) de la présentation de l'OS qui correspond (méthode plus rapide mais mon explication n'est peut-être pas très claire)
  • Étape 2 : Modification du fichier de configuration de grub dans Ubuntu, ouvrez le fichier /boot/grub/menu.lst tel que décrit à l'étape précédente et recherchez la ligne suivante :

default k où « k » est un nombre (généralement 0). Remplacez « k » par le nombre « n-1 ».

Exemple : vous voulez booter par défaut sous windows

  • au redémarrage de l'ordinateur, on regarde quelle ligne est sélectionnée par defaut (k+1) et a quelle ligne se trouve windows (par exemple n=4).
  • on ouvre le fichier menu.lst, on cherche les occurrences de default en tappant ctrl+F puis rechercher puis default. Normalement il n'y a qu'une seule ligne qui ne commence pas par # et qui contienne le mot default. Alors il suffit de modifier k+1 par n-1, soit default 0 par default 3

Comment faire un sous-menu avec grub

Vous avez plusieurs distributions GNU-Linux, plusieurs Ubuntu, Debian ou autre. Comment faire des menus qui vont être toujours à jour ?

Chaque distribution gère son menu de démarrage normalement automatiquement, mais on ne peut pas le faire depuis un unique menu. On va donc utiliser des sous menus

Grub permet d'avoir un menu qui va charger un fichier de configuration différent, qui peut être sur une autre partitions bien sur.

title monsousmenu ubuntu autre version
root (hd0,0)
configfile /boot/grub/menu.lst

Cela peut être un autre emplacement à définir soi-même, c'est tout, ce n'est pas plus compliqué.

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 !

Il existe un live-cd spécialement conçu pour la restauration du grub après une ré-installation de Windows, et très facile à employer. C'est le Super Grub Disk. Depuis le cdrom de Super Grub Disk vous devez suivre les options : Français → Linux → Arranger Démarrage de Linux. SGD vous dira: SGD a reussi!

Et Grub sera à nouveau sur votre MBR vous permettant de démarrer aussi bien Windows que 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 Mo.

Vous pouvez également utiliser le Live CD Ubuntu.

En dernier recours, le CD d'installation peut aussi aider.

Avec le Live CD Ubuntu

sudo 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)

C'est la méthode la plus simple.

Pré-requis

Vous devez savoir quel est le nom de votre partition racine (/dev/hdxyx est une lettre et y un chiffre disponible dans /etc/fstab) ainsi que les numéros Grub correspondants ( (hdz,w)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.

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é, 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 sélectionnez « Restauration système ». Répondez à toutes les questions.

Vous arrivez à un menu, choisissez « Restauration GRUB ».

Sélectionnez votre disque racine. Puis sélectionnez le disque contenant la MBR. Le plus souvent (hd0).

Validez. Sur le menu suivant choisissez reboot, retirez le disque en bénissant Ubuntu et rangez le soigneusement.

Avec le CD d'installation version inférieure à 6.06

À 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/hdxyx est une lettre et y un chiffre disponible dans /etc/fstab) ainsi que les numéros Grub correspondants ( (hdz,w)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.

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 le paquet grub-splashimages contenant des images par défaut.

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, 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

Ou, pour ne pas les avoir en double sur le disque :

sudo mv /chemin_de votre_image /boot/grub/splashimages

Ce site-ci et ce site-là contiennent de chouettes images pour Ubuntu.

Puis ajoutez 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, le Grub met en place le fond avant le reste). Si /boot n'est pas une partition, insérez juste après : ## ## End Default Options ## :

splashimage=(hdX,Y)/boot/grub/splashimages/NOM_IMAGE.xpm.gz

Ou :

splashimage=/boot/grub/splashimages/NOM_IMAGE.xpm.gz

Ou :

splashimage=(hdX,Y)/grub/splashimages/NOM_IMAGE.xpm.gz

(hdX,Y) représente alors la partition /boot.

(hdX,Y) se détermine ainsi : X=numéro du disque, numéroté à partir de 0. Si vous n'avez qu'un dique X=0 ; si vous en avez deux et que /boot est sur le second, X=1, s'il est sur le premier, toujours X=0. Grub ne fait pas la différence entre les disque IDE, SATA. Il leur attribue un numéro en fonction de leur ordre de détection.

Y=numéro de la partition sur le disque, numérotées à partir de 0. Si votre « /boot » est sur la 5e partition, Y=4. Le plus simple, consiste à regarder sous la ligne que vous insérez, à quel endroit Grub a défini « root ». Vous trouverez pour chaque boot possible des blocs du type :

title Ubuntu, kernel...
root (hdX,Y)
...

Pour voir votre image, redémarrez l’ordinateur et admirez.

Sachez que cependant si vous utilisez splashimage dans /boot/grub/menu.lst, la commande color pour choisir les couleurs des textes, du cadre, des ombres et du fond ne fonctionnera pas. Néanmoins il existe une astuce. Remplacez « color » par :

foreground XXXXXX
background XXXXXX

Ou XXXXXX est un code de couleur hexdécimal, comme dans le code HTML. Pour vous faciliter la vie, cherchez, par exemple dans The Gimp une couleur qui vous plaît et notez son code.

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.

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 640×480 ;
  • être en 14 couleurs seulement.

Pour vous aider, Coffee a écrit un petit script disponible ici.

Sinon, vous pouvez transformer vos images en ligne de commande grâce à imagemagick. Vérifiez que le paquet est installé puis :

 convert -resize 640x480! -colors 14 /...chemin.../MonImage.jpg MonImage.xpm

Notez que « .jpg » dans le format initial est un exemple. Puis il faut compresser l'image au format « .gz » :

 gzip MonImage.xpm

Enfin vous la déplacez dans le répertoire « /boot/grub/splashimages » :

 sudo mv /...chemin.../MonImage.xpm.gz /boot/grub/splashimages

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.

Grime requiert ImageMagick. Si il y a un message d'erreur après ./configure, installez le paquet imagemagick. Si vous êtes sur Kubuntu, installez les paquets 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 incompatibilité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 on l'ouvre.

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.

Ne pas retirer le symbole « # ».

Sauvegardez le document. À la prochaine mise à jour du noyau, la liste se mettra à jour automatiquement.

Après les modifications, ne pas oublier de mettre à jour Grub en tapant la commande :

sudo update-grub

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

Passer votre clavier de QWERTY en AZERTY

Si un jour vous devez éditer des lignes dans Grub ou que vous décidez d'activer un mot de passe, vous constaterez que le clavier est en QWERTY.

Si vous avez un clavier AZERTY vous allez peiner pour retrouver certaines touches. En effet par défaut Grub utilise en clavier QWERTY.

Pour remédier à cela il faut faire ceci:

Sauvegardez puis ouvrez le fichier « menu.lst » :

# Emulation d'un clavier azerty_FR
setkey less backquote
setkey greater tilde
setkey ampersand 1
setkey 1 exclam
setkey tilde 2
setkey 2 at
setkey doublequote 3
setkey 3 numbersign
setkey quote 4
setkey 4 dollar
setkey parenleft 5
setkey 5 percent
setkey minus 6
setkey 6 caret
setkey backquote 7
setkey 7 ampersand
setkey underscore 8
setkey 8 asterisk
setkey backslash 9
setkey 9 parenleft
setkey at 0
setkey 0 parenright
setkey parenright minus
setkey numbersign underscore
# no change for equal
# no change for plus
setkey a q
setkey A Q
setkey z w
setkey Z W
setkey caret bracketleft
# no equivalent for diaresis => we keep the US braceleft
setkey dollar bracketright
# no equivalent for pound => we keep the US braceright
setkey q a
setkey Q A
setkey m semicolon
setkey M colon
setkey bracketleft quote
setkey percent doublequote
setkey asterisk backslash
setkey bracketright bar
setkey w z
setkey W Z
setkey comma m
setkey question M
setkey semicolon comma
setkey period less
setkey colon period
setkey slash greater
setkey exclam slash
setkey bar question

Ceci va dire à Grub qu'il doit changer chacune des touches d'un clavier QWERTY par son équivalent en AZERTY. Au prochain démarrage, votre clavier dans Grub sera un AZERTY.

Vous pouvez également ajouter un menu au fichier « /boot/grub/menu.lst » pour repasser sous clavier QWERTY. Pour faire cela ajoutez le fragment suivant à la fin du fichier :

# Repasser le clavier en qwerty

title Repasser le clavier en qwerty
setkey

Voir le détail du démarrage (Edgy Eft)

Lors du boot de la version 6.10, l'affichage par défaut ne donne pas d'information sur l'état de l'arrêt ou du démarrage. Pour changer ce comportement, il faut éditer son « /boot/grub/menu.lst » et supprimer le mot « quiet » de la ligne qui commence par « # defoptions= ». Il faut ensuite actualiser :

sudo update-grub

On voit alors des lignes bleues s'afficher indiquant l'état de l'avancement de l'arrêt-démarrage.

Documentation complémentaire

Liens

Voici quelques liens, pour ceux qui veulent approfondir le sujet :

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

Pour Feisty Fawn au moins, c'est :

sudo cp -a /usr/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 ».

Problèmes connus et résolus

Les gros disques durs et les limites du BIOS

À la mise sous tension de l'ordinateur, le BIOS récupère l'information primaire des composantes du système, dont les disques durs.

De ce fait, au démarrage du système, si le gestionnaire de démarrage Grub cherche à démarrer un système d'exploitation au-delà des limites connues du BIOS, il plantera.

Cas type

Dans mon cas, le matériel est un disque dur Western Digital de 250 Go, reconnu comme un 136 Go dans le BIOS.

À la mise sous tension de l'ordinateur, le BIOS récupère l'information primaire des disques durs.

L'ordinateur est un GoldStar LG8S, la carte mère est une « MSI 815E PRO VER. 1 » et son BIOS ne sait pas gérer correctement les disques durs supérieurs à 136 Go, même avec la dernière mise à jour du BIOS version 1.4 (2007-05-25).

De ce fait, au démarrage du système, si le gestionnaire de démarrage Grub cherche à démarrer un système d'exploitation au-delà des 136 Go, il plantera.

Ce problème est repandu et résolu par des logiciels de gestion de disque intégré aux systèmes d'exploitation récents, mais pour qu'il fonctionne, il faut que les logiciels à lancer soient installés dans les limites d'accès du BIOS, dans mon exemple, dans les 136 premiers Go.

Pour MS-Windows, le système est toujours installé au début du disque dur, donc pas de problème.

Pour les systèmes Linux, ils sont souvent installés en double amorçage avec Windows « dual boot », il est donc plus loin sur le disque dur. Il faut vous assurer que la partition racine « / » de votre Linux soit installée dans les limites d'accès du BIOS, dans mon exemple, dans les 136 premiers Go.

Pour connaître les limites de votre BIOS (8 Go, 32 Go 136 Go ou 137 Go), vérifiez, au démarrage de votre ordinateur, immédiatement après la vérification de la mémoire, la taille des disques durs est détectée ou vérifiez en entrant dans le BIOS avec la touche « Suppr » ou « F1 » ou « F2 », etc. Le début de votre partition racine « / » de Linux ne doit pas être au-delà de cette limite.

Si vous restez dans les limites du BIOS avec la partition racine de Linux, vous n'aurez plus de problème.

Taille réelle de disque dur perdu

Cas type

En interrompent une copie du disque dur entier sur un autre, volontairement ou par coupure de courant, la taille du disque dur cible peut-être erroné. Au BIOS, dans mon cas type, je me retrouvais avec une taille de 33821 Mo. Que cela soit avec un formatage de bas niveau (low Format) ou en réinstallant le MBR, rien n'y faisait. Il y avait plusieurs utilitaires qui reconnaissaient la véritable taille du disque et reformataient bien le disque dur, mais que cela soit sous Windows Xp SP2 ou Linux Kubuntu 7.04, rien ne fonctionnait.

La solution se trouvait du côté de la réécriture de la bonne taille du disque dur sur le disque dur.

Pour ce faire, je vous suggère la méthode testée suivante :

  • Avec le CD (déjà cité si haut) « Ultimate Boot CD », ma version était 4.0.3 (2007-05-25), démarrer votre ordinateur.
  • Entrer dans la section « Hard Disk Tools ».
  • Entrer dans la sous-section « Installations Tools ».
  • Sélectionner le programme « MaxBlast V4.0 (Maxtor).
  • Suivez les instructions et appuyez sur la touche « Entrée ».
  • Accepter les termes de la licence d'utilisation en cliquant sur le bouton « I agree ».
  • Sur l'écran suivant, cliquer sur le bouton « Yes ».
  • Sélectionner l'option « Utilites ».
  • Puis, sélectionnez l'option « Set Hard Drive Size ».
  • Cliquer sur le bouton « Next ».
  • Copier la valeur du champ « Native LBA » ou la plus grande taille que vous verrez sur cette page, dans le champ « Recommended Reported LBA ».
  • Cliquer sur le bouton « Next » pour procéder à l'écriture de la bonne valeur sur votre disque dur.

Voilà, il ne vous reste plus qu'a redémarré votre ordinateur et à re-partitionner et reformater votre disque dur pour y récupérer tout son espace réel.

tuto/linux/grub.txt · Dernière modification : 2009/03/15 10:41 de root