Configurer GRUB sous Ubuntu 11.10

J’ai installé Ubuntu 11.10 mais je ne souhaite pas complètement me séparer de Windows 7. En effet, je ne parviens pas encore à utiliser le HDMI sous Ubuntu et je me sers régulièrement de Microsoft Office (qui quoiqu’on en dise a encore de l’avance sur LibreOffice).

Lors de l’installation d’Ubuntu, si on choisit de partitionner le disque dur pour garder Windows, l’installeur met en place GRUB qui permet de choisir au démarrage de la machine entre Windows et Linux.

Seulement, avec les réglages par défaut, on se retrouve avec plein de choix que je n’utilise jamais et un temps d’attente de 10 secondes que je trouve un peu long. Voyons donc comment changer tout ça :

Les choix des valeurs se fait dans le fichier /etc/default/grub qu’il faut ouvrir en root pour pouvoir le modifier :
gksudo gedit /etc/default/grub
La valeur GRUB_DEFAULT permet de choisir le système qui sera présélectionné. Attention, le compteur commence à 0 pour présélectionner à a première ligne !
La valeur GRUB_TIMEOUT permet de régler le délai. J’ai pour habitude de le mettre à 4 (ni trop long donc ça ne ralentit pas trop le boot mais pas trop court non plus pour avoir le temps de changer si besoin)
Je décommente aussi (enlever le #) la ligne GRUB_DISABLE_RECOVERY=true afin de ne pas avoir les entrées liées à Linux Recovery.

Les valeurs ainsi changées et enregistrées ne sont pas prise en compte de suite. A partir de ce fichier de configuration préliminaire, GRUB élabore son fichier de configuration définitif dans /boot/grub/grub.cfg mais il ne faut pas éditer ce fichier à la main. Pour mettre à jour ce fichier, il faut lancer la commande :
sudo update-grub

Pour enlever la ligne memtest, ça ne se passe pas au même endroit. Lorsque GRUB élabore son fichier de configuration définitif, il va lire le fichier /etc/default/grub mais aussi exécuter une série de scripts contenus dans le répertoire /etc/grub.d/. On va retrouver en particulier dans ce répertoire un fichier 20_memtest86+ qui se charge de créer l’entrée memtest. Pour ne pas que GRUB n’exécute ce script, il suffit que ce script ne soit pas exécutable. Cela peut être fait à l’aide de la commande :
sudo chmod -x /etc/grub.d/20_memtest86+

Pour résumer et mettre les commandes dans l’ordre :
gksudo gedit /etc/default/grub
sudo chmod -x /etc/grub.d/20_memtest86+
sudo update-grub

Il ne me reste ainsi que 3 entrée ce qui ne me satisfait pas encore complètement car il reste le Windows Recovery… Mais je n’ai pas trouvé de manière propre de l’enlever…

Dernier conseil, soyez prudents lors de la manipulation de GRUB car, en cas de mauvaise manip’, vous risquez de ne plus pouvoir booter sur votre disque dur. Si cela vous arrive, tout n’est pas perdu : vous pouvez toujours booter sur la clé USB ou sur le CD d’install d’Ubuntu et exécuter un sudo update-grub.

8 réactions sur “Configurer GRUB sous Ubuntu 11.10”

Les trackbacks sont désactivés.

  • @lex dit :

    Merci beaucoup pour l’astuce !

    Ça a marché chez moi… Il ne me reste plus qu’à trouver comment masquer l’entrée de windows recovery !

    @+

  • pepesoupape dit :

    merci beaucoup pour l’astuce
    indispenssable quand ont est plusieurs a ce servir de l’ordi
    merci

  • LastWissh dit :

    Salut !

    Merci pour l’info, seulement je me pose tout de même une question..

    Si nous enlevons le recovery et 20_memtest86+
    Cela change le nombre d’éléments dans la liste.
    Et donc si nous avons mis: GRUB DEFAUT=5
    Cela n’est-il pas érroné ?

    Merci de me répondre

  • Tom dit :

    Tout à fait, il faut compter le nombre d’éléments du menu une fois que le « nettoyage » a été fait pour choisir la valeur de GRUB DEFAULT. De même, si lors de l’installation d’un nouveau noyaux une nouvelle entrée est ajoutée, le GRUB DEFAULT ne sera plus correct (a moins que ce soit pris en compte automatiquement lors de la mise à jour). Je n’ai pas vérifié ça car mon GRUB DEFAULT est 0. Une autre solution serait de changer l’ordre en mettant le « DEFAULT » en premier (renommer les script 10_… 20_… etc pour les mettre dans l’ordre voulu.

  • LastWissh dit :

    Oui mais pour moi peu importe la valeur que j’affecte à GRUB DEFAULT (Je n’ai pas oublier update-grub ^^). L’OS par defaut reste ma distrib’ Linux. Par ailleurs je n’ai plus le recovery de windows (Ça c’est cool parcontre).
    J’ai mes trois OS (BT, W7 et vista) et c’est tout.

  • LastWissh dit :

    Désolé du double post (On peut pas édité :p )

    Pour ce qui est de « changer l’ordre en mettant le « DEFAULT » en premier (renommer les script 10_… 20_… etc pour les mettre dans l’ordre voulu. »

    Dans : /etc/default/grub Il n’y a que Linux…
    D’ou le problème (Je pense) du fait que ma valeur GRUB DEFAULT (Même à 3 par exemple) lance Linux… Quand pensez-vous ?

  • Tom dit :

    N’oublie pas que l’index commence à 0 donc si ton entrée « Windows » apparait en 3, il faut mettre GRUB DEFAULT à 2.

    Sinon, les scripts sont dans /etc/grub.d/. De mémoire, il y en a 1 qui s’appelle XX_os_prober. C’est pour celui-là qu’il faut mettre un nombre XX inférieur aux XX du script linux et 20_memtest pour changer l’ordre.

  • LastWissh dit :

    Effectivement…Erreur de merde ^^ Je vais regarder pour les script, je re ferais un retour. En tout cas merci bien :)