• {0} Easy|{1} Medium|{2} Hard

Free online content available in this course.

You can get support and mentoring from a private teacher via videoconference on this course.

Got it!

Last updated on 11/21/13

Configurez Grub-legacy

Log in or subscribe for free to enjoy all this course has to offer!

Dans ce chapitre, vous allez apprendre à configurer Grub (ou encore "Grub legacy", l'ancienne version) pour le rendre plus convivial et à terme plus sécurisé !

Déterminer l'ordre de boot

Prenez votre menu et définissez le numéro auquel va correspondre le système qui vous intéresse de cette façon :

Ubuntu, kernel 2.6.17-10-generic

Ubuntu, kernel 2.6.17-10-generic (recovery mod)

Ubuntu, memtest86+

Other operating systems:

Windows XP Media Center Edition

Windows NT/2000/XP

Microsoft Windows XP Embedded

Sur mon code :

  • Ubuntu, kernel 2.6.17-10-generic = 0

  • Ubuntu, kernel 2.6.17-10-generic (recovery mode) = 1

  • Ubuntu, memtest86+ = 2

  • Other operating systems = 3

  • Windows XP Media Center Edition = 4

  • Windows NT/2000/XP = 5

  • Microsoft Windows XP Embedded = 6

Notez bien le nombre qui vous intéresse : celui sur lequel vous désirez booter par défaut.

Méthode 1 : Le default

Une fois revenu sur votre bureau, ouvrez un terminal et entrez-y :

  • pour KDE :

    kdesu kate /boot/grub/menu.lst
  • pour Gnome :

    gksudo gedit /boot/grub/menu.lst
  • pour XFCE :

    sudo mousepad /boot/grub/menu.lst

Si vous n'avez pas compris, on va ouvrir le fichier cible de l'adresse /boot/grub/menu.lst.

Effectivement, ce n'est pas très digeste... :'(
Le mien est résumé ainsi :

default 0

timeout 15

hiddenmenu


title Ubuntu, kernel 2.6.17-10-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda5 ro quiet splash
initrd /boot/initrd.img-2.6.17-10-generic
quiet
savedefault
boot



title Ubuntu, kernel 2.6.17-10-generic (recovery mode)
root (hd0,4)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda5 ro single
initrd /boot/initrd.img-2.6.17-10-generic
boot



title Ubuntu, memtest86+
root (hd0,4)
kernel /boot/memtest86+.bin
quiet
boot


title                Other operating systems:
root



title                Windows XP Media Center Edition
root                (hd0,0)
savedefault
makeactive
chainloader        +1

Remplacez tout simplement le chiffre suivant default par celui qui vous intéresse.

default X

Où X est le chiffre que vous avez choisi en première partie.

Enregistrez votre fichier, fermez et redémarrez.
Magique :magicien: , le curseur est déjà placé sur le choix que vous vouliez. Laissez passer le temps et Grub bootera sur votre choix par défaut.
C'est tout.

Méthode 2 : savedefault

Il existe une autre méthode afin de déterminer le système par défaut.

Grub vous propose de déterminer lui-même le système sur lequel vous allez booter, en ne choisissant pas n'importe lequel, mais le dernier état sauvegardé.

Question logique : comment sauvegarde-t-on ?

Regardez vos entrées, avec un peu de chance, vous devriez y voir au moins un savedefault. Cela signifie que vous allez automatiquement enregistrer ce choix comme choix par défaut pour le boot.

Placez donc savedefault après votre choix le plus important et prenez soin de le retirer aux autres.
Ensuite, remontez en haut du fichier et éditez encore une fois la ligne default X et changez le X par saved.

Grub sélectionnera automatiquement le système qu'il aura sauvegardé au préalable ;)

Annexes

Le timeout

Une chose qui peut être intéressante est de pouvoir modifier la ligne :

timeout 15

Cette ligne permet de régler le temps limite pour faire votre choix.

Les noms des systèmes

Autre chose : il est possible et facile de modifier les noms des systèmes.

Une partie de mon menu.lst :

title Ubuntu, kernel 2.6.17-10-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda5 ro quiet splash
initrd /boot/initrd.img-2.6.17-10-generic
quiet
savedefault
boot

Il suffit de modifier cette ligne :

title Ubuntu, kernel 2.6.17-10-generic

En :

title Ubuntu

Pour changer le nom et avoir un menu de boot plus simple.

La protection des entrées

Et oui ! C'est possible ! Grub vous permet de protéger votre système avec un mot de passe supplémentaire.

Et alors ? J'ai déjà un Mdp pour me connecter sur ma machine, moi !

C'est vrai. Néanmoins, ce que vous ne savez peut être pas, c'est qu'en mode recovery, vous avez accès à beaucoup d'éléments et notamment une console en root sans mot de passe ! C'est plutôt risqué !

Pour protéger Grub par un mot de passe, il vous faut déjà ... un mot de passe.
Grub vous propose par ailleurs de le crypter lui-même en md5 :

grub> md5crypt
md5crypt
Password: votre mot de passe
Encrypted: $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
grub> quit

Décommentez ensuite la ligne correspondant dans le menu.lst (en n'oubliant pas de changer le mot de passe encrypté par le vôtre !!!)

Citation

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

Maintenant vous avez deux possibilités :

Protéger une seule entrée

C'est assez facile, ajoutez simplement lock à la suite de vos options sur le système voulu :

Citation

title Ubuntu 9.04, kernel 2.6.28-14-generic (recovery mode)
lock
uuid e77d8ae8-36d8-42d1-891d-2cf89dbf0b0c
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=e77d8ae8-36d8-42d1-891d-2cf89dbf0b0c ro single
initrd /boot/initrd.img-2.6.28-14-generic

Pour être sûr de ne pas vous planter, testez sur un ancien noyau ou un vieux truc histoire de ne pas rester coincé au menu.

Protéger tous les recovery mode

Encore une fois, cela va être assez rapide.
Remplacez :

Citation

# lockalternative=false

Par :

Citation

# lockalternative=true

Ainsi, tous vos recovery modes seront protégés et cela même après mise à jour du noyau ;)

Il est vrai que la première version est plus facile à configurer que la dernière, tout tient en un seul fichier (un peu "mastoc" certes :p ).

Example of certificate of achievement
Example of certificate of achievement