Bonjour,
Il n'existe actuellement aucun tuto pour grub2 sur le site ubuntu-fr.org malgré que le reste du net soit bien garni.
grub2 n'est pas encore l'application officielle d'ubuntu car "on" dit qu'elle n'est pas encore stable.
Je l'ai testée sous Intrépid et Jaunty et cela fonctionne à merveille.
Alors je pense qu'il serait bon d'ajouter une petite page sur le wiki pour expliquer comment cela fonctionne.
Il y a normalement suffisamment d'informations sur le site "off":
http://www.gnu.org/software/grub/grub-2.en.html
et les paquets sont disponibles en dépôts.
Tout cela est suffisant pour un tuto mais n'étant pas doué pour cela, je préfère vous le proposer et avoir vos avis.
Pour l'installer c'est simple, suffit d'utiliser aptitude ou synaptic pour installer le paquet grub2 et s'assurer que grub (legacy) est bien supprimé.
Il se configure seul avec la commande
sudo update-grub
La configuration est générée, en fonction des fichiers (bash) présents dans le dossier "/etc/grub.d/", dans le fichier "/boot/grub/grub.cfg" suivant les différents blocs présents dans celui-ci.
Le fichier grub.cfg peut être directement modifié mais cela n'est pas une bonne idée car à chaque commande "update-grub" il sera remis par défaut.
Pour le modifier à sa guise, il faut donc directement modifier les fichiers présents dans "/etc/grub.d"
Faites évidemment des copies de vos fichiers d'origines avant de porter une quelconque modification pour le cas où cela ne fonctionnerait pas.
Voici les 2 modifications que j'ai apporté pour vous montrer un exemple:
- Dans le fichier "/etc/grub.d/00_header":
J'ai modifié la résolution de grub2 pour avoir un truc acceptable et moins affreux. celle-ci dépend de votre matos, je vous conseille d'utiliser la même résolution que sur votre bureau ubuntu.
case ${platform}:${GRUB_TERMINAL} in
pc:gfxterm)
# Make the font accessible
prepare_grub_to_access_device `${grub_probe} --target=device ${GRUB_FONT_PATH}`
cat << EOF
if font `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
set gfxmode=1440x900
insmod gfxterm
insmod vbe
terminal gfxterm
fi
EOF
;;
Ici "gfxmode" définit la résolution de votre écran, je l'ai modifié de 640x480 en 1440x900
- Dans le fichier "/etc/grub.d/10_linux":
Je ne sais pas si, comme moi, vous en avez marre de voir 30.000 ubuntu dans votre liste grub mais voici une des solutions possibles. Celle-ci ne permet l'affichage que d'une seule entrée (si vous en voulez 2, ce n'est pas difficile mais il faudra procéder autrement).
Il faut en fait remplacer la boucle while par un simple if.
J'ai à la base:
while [ "x$list" != "x" ] ; do
linux=`find_latest $list`
echo "Found linux image: $linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
//Plein de jolies instructions dont on se passera pour l'exemple
fi
cat << EOF
}
EOF
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
done
J'ai remplacé par
//Cette ligne est facultative, c'est juste un rappel lors de la configuration
echo "It will save only the last kernel." >&2
if [ "x$list" != "x" ] ; then
linux=`find_latest $list`
echo "Found linux image: $linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
//Plein de jolies instructions dont on se passera pour l'exemple
fi
cat << EOF
}
EOF
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
fi
Pour ceux qui codent en bash, c'est un jeu d'enfant.
Mais attention à ceux qui ne connaissent pas, une erreur peut vous empecher de redémarrer sous linux et donc de ne pouvoir orriger l'erreur que difficilement.
Vérifiez votre fichier grub.cfg avant tout redémarrage.
En espérant voir un peu de changement sur le wiki et pas me faire jeter.