En remplaçant Lilo par Grub2, vous risquez de ne plus pouvoir de démarrer votre système. Avec Zenwalk, si vous faites une erreur en installant Grub2, il vous est toujours possible de démarrer un LiveCD et d'utiliser LiloFix pour pouvoir démarrer votre système. Cela peut prendre du temps, donc vous voilà prévenus! Normalement, si vous suivez les instructions qui suivent vous devriez avoir un nouveau chargeur de démarrage prêt à démarrer votre Zenwalk ou un autre Linux!
Grub2 est le successeur de Grub Legacy, qui n'est maintenant plus développé. Le paquet pour Zenwalk est la version SVN, avec les derniers patches et fonctionnalités. Il a été testé sur la plupart des systèmes de fichiers supportés. Grub2 va bientôt devenir le chargeur de démarrage par défaut de Slackware et Zenwalk. Il offre beaucoup plus de possibilités, comme par exemple la récupération d'un système qui ne démarre pas.
Ce document ne se veut pas un manuel complet sur le fonctionnement de Grub2. Vous trouverez plus d'informations sur le site de Grub2 avec son wiki, encore incomplet. Les développeurs n'ont pas encore créé de manuel, mais c'est en projet, avec l'amélioration du wiki.
Pour remplacer Lilo par Grub2, il faudra d'abord supprimer lilo du secteur de démarrage de votre disque dur (ou MBR). Après avoir installé le paquet grub2, lisez ce qui suit puis éxécutez les instructions. D'abord, supprimez Lilo du MBR en éxécutant en root
lilo -u /dev/sdX
en remplaçant X par la lettre de votre disque (a pour le premier disque, b pour le deuxième, etc…). Si vous obtenez un message d'erreur, utilisez alors
lilo -U /dev/sdX
Si vous voulez être sûr que votre secteur de démarrage a bien été effacé, éxécutez cette commande pour écrire des zéros sur le secteur de chargement:
dd if=/dev/zero of=/dev/sdX bs=440 count=1
Maintenant installez Grub2 avec
grub-install /dev/sdX
en remplaçant X par la lettre du disque sur lequel se trouve la partition /boot de votre système.
Cette commande copie tous les fichiers dont Grub2 a besoin dans le dossier /boot. Si vous le voulez, vous pouvez vérifier que vous avez à présent un dossier /boot/grub avec tout un tas de fichiers .mod .Une fois que c'est terminé, il va falloir créer un fichier grub.cfg . Pour les utilisateurs de Grub Legacy, grub.cfg remplace le fichier menu.lst .Avec Grub Legacy le fichier menu.lst était dans /boot, mais maintenant tous les fichiers sont dans /boot/grub. Bien qu'il soit possible de convertir son menu.lst en grub.cfg, vous devriez plutôt laisser Grub2 générer un nouveau grub.cfg, puis l'éditer.
Maintenant lancez la commande:
grub-mkconfig -o /boot/grub/grub.cfg
Cela va lire les informations rassemblées par grub-install pour créer un grub.cfg basique. Vous pourrez voir un exemple de grub.cfg plus bas avec quelques modifications. Vous pourrez éditer le fichier plus tard et ajouter ou changer bien des choses. Notez que contrairement à Lilo, grub n'a pas besoin d'être réinstallé pour que les modifications du fichier de configuration soient prises en compte. Vous devriez pouvoir trouver des exemples de configuration sur internet. Il est recommandé d'éditer rapidement les lignes /boot/vmlinuz: Grub2 utilise le nom exact du fichier avec la version du noyau (exemple: vmlinuz-22.214.171.124) au lieu d'utiliser le lien symbolique vmlinuz. Supprimez le numéro de version du noyau en ne laissant que “vmlinuz” sinon un noyau mis à jour ne pourra pas être booté. Si vous oubliez de le faire, ce n'est cependant pas un problème, Grub2 permet d'éditer temporairement le fichier depuis le menu de démarrage. grub-mkconfig lit directement les fichers dans /boot, beaucoup d'utilisateurs voudront modifier les menuentry de grub.cfg, en remplaçant le titre par “Zenwalk 6.0” ou “Mon noyau”, mettez ce que vous voulez tant que vous le mettez entre guillemets!
Voilà, l'installation de Grub2 est terminée! Redémarrez pour le tester, si vous avez suivi correctement les instructions, vous devriez être accueilli par un écran noir et blanc avec la liste de vos options Attendez la fin du compte à rebours ou appuyez sur Entrée. Vous pouvez rendre Grub2 plus joli, n'importe quelle image jpg ou png pourra servir de fond, vous devrez juste vous assurer que l'image est bien de la même taille que la résolution de l'écran de démarrage, indiquée par la ligne gfxmode= car l'image ne sera pas adaptée à votre écran. Avec quelques rajouts à votre grub.cfg, vous pourrez obtenir de très bons résultats.
À propos de l'installation. Grâce à Andreas Born (Shador), Zenwalk a maintenant un programme d'installation simple appelé sg2conf. Ce programme sera utilisé lors de l'installation de Zenwalk pour lancer le chargeur de démarrage. Il peut aussi être utilisé pour installer Grub2 en remplacement de Lilo ou de Grub Legacy. sg2conf peut être lancé depuis un terminal root ou depuis le Panneau de Contrôle. Cependant une installation manuelle comme celle décrite ici permet de mieux comprendre ce qui est fait.
Un utilisateur a remarqué sur son ordinateur portable que grub-install pouvait ne pas fonctionner si un périphérique externe était branché. Il s'agissait dans son cas d'un cdrom mais d'autres pourraient rencontrer le même problème avec des périphériques divers. Étant donné que Grub2 regarde tous les supports connectés, il pourrait être embrouillé par certains types de périphériques externes. Si vous rencontrez ce même problème, avec une erreur en lançant grub-install, utilisez grub-mkdevicemap avant. Cette commande crée un fichier /boot/grub/device.map qui permet à grub-install de s'éxécuter correctement. Bien entendu, déconnecter le support avant de lancer grub-install devrait également régler le problème.
Une fois que vous êtes sûr d'avoir un Grub2 opérationnel, supprimez le paquet Lilo installé sur votre système. Vous pouvez garder votre fichier lilo.conf au cas où vous voudriez revenir en arrière mais si vous ne supprimez pas le paquet, Lilo sera réinstallé sur le secteur de démarrage à la prochaine mise à jour du noyau. Vous devrez alors refaire lilo -U pour le supprimer, puis grub-install /dev/sdX pour réinstaller Grub2! Vous pouvez utiliser le gestionnaire de paquets ou la commande removepkg lilo. Tant que Zenwalk n'a pas changé pour Grub2, vous devrez y faire attention. Après le changement, avec la version 6.2, lilo ne posera plus de problèmes.
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/update-grub using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### set default=0 set timeout=10 set root=(hd0,2) if loadfont /usr/share/grub/ascii.pf2 ; then set gfxmode=1024x768x32 # (This can be set to 1280x1024, 800x600 or 640x480 also, just be sure your video card framebuffer can support it) insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm fi fi insmod png background_image /boot/grub/Zenblack.png ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/10_hurd ### ### END /etc/grub.d/10_hurd ### ### BEGIN /etc/grub.d/10_linux ### set root=(hd0,2) menuentry "GNU/Linux, Zenwalk 6.0" { linux (hd0,2)/boot/vmlinuz root=/dev/sda2 ro resume=/dev/sda4 splash=silent vga=794 initrd (hd0,2)/boot/initrd.splash } set root=(hd0,2) menuentry "GNU/Linux, linux 126.96.36.199 (single-user mode)" { linux (hd0,2)/boot/vmlinuz root=/dev/sda2 ro single } menuentry "Windows Vista" { chainloader (hd0,1)+1 } ### END /etc/grub.d/10_linux ###
Pour modifier les couleurs de Grub2, vous devez ajouter les options set menu_color_normal et set menu_color_highlight à votre grub.cfg, par exemple:
set menu_color_normal=light-blue/black set menu_color_highlight=light-cyan/blue
Plusieurs combinaisons sont possibles. C'est ce que vous devrez indiquer si vous ne voulez pas utiliser d'image de fond ou voulez juste une nouvelle couleur d'arrière-plan.
Vous pouvez changer la durée du compte à rebours (set timeout), la valeur est à indiquer en secondes.
La valeur de la ligne set default=0 est le numéro de votre disque dur, zéro pour la plupart, mais cela pourrait être aussi bien 1 ou 2 voire plus, Grub2 étant capable de gérer les RAID. Vous remarquerez que Grub2, tout comme Grub Legacy, désigne les disques par hdX. On a donc des équivalents comme hd0=sda ou hd1=sdb.
Si vous modifiez l'option gfxmode, vous devrez d'abord vous assurer que votre carte graphique supporte la résolution que vous voulez. Vous devrez ensuite préciser la profondeur des couleurs, et il faudra utiliser une image de fond de la même taille, en .png ou en .jpg. Si l'image que vous avec choisie n'est pas bonne, elle ne sera pas affichée; mais cela ne gènera pas le bon fonctionnement de Grub2.
Le second nombre est le numéro de la partition du disque sur lequel se trouve votre système ou le dossier /boot. Dans l'exemple précédent la partition en question est la deuxième du premier disque (hd0,2). Cela doit être indiqué clairement pour que Grub2 puisse trouver les informations dont il a besoin. Vous remarquerez la ligne indiquant directement “root” à partir de la table de partitions du disque (root=/dev/sda2). La vôtre pourrait être sdb ou sdc ou 1,2,3,4 ou encore quelque chose d'autre. Là aussi il est important que l'information soit correcte. Si vous utilisez grub-mkconfig, il reconnaîtra et choisira la bonne partition. Grub2 peut réellement démarrer un système à partir de n'importe quelle partition, ce qui est notamment très pratique pour ceux qui ont plusieurs distributions GNU/Linux sur leur ordinateur!
L'option resume permet d'utiliser les fonctions d'hibernation, de veille et d'économie d'énergie sur les ordinateurs portables.L'option resume pointe toujours sur la partition swap!
Si vous ajoutez l'option splash=silent, l'initrd indiqué à la ligne suivante sera utilisé, ne la rajoutez pas si vous voulez voir du texte défiler. L'option vga est la résolution du splash, le nombre qui suit est associé à une résolution, par exemple 794=1280×1024 ou encore 791=1024×768. Quel que soit le paramètre que vous utilisiez avec Lilo, choisissez le même ou alors lancez la commande mkinitrd -s <résolution> pour réinitialiser la résolution. Si vous avez bien rajouté l'option splash=silent, mais que vous voyez toujours le texte défiler au démarrage, vous pourriez devoir changer les entrées linux et initrd par linux16 et initrd16 pour le faire fonctionner.
Vous remarquerez que la dernière entrée qu'a créé grub-mkconfig est “recovery mode”. Ce mode démarre le système sur le runlevel 1, sans monter de partitions ou périphériques, ni charger de drivers. Ce mode convient plutôt aux administrateurs et aux expérimentés, et la plupart des utilisateurs n'en auront pas besoin. Si vous ne pensez pas l'utiliser, vous pouvez supprimer l'entrée du menu.
Vous pouvez voir dans l'exemple de grub.cfg donné plus haut une entrée pour Windows. Bien entendu si vous n'avez pas Windows, laissez votre grub.cfg tel quel. Si jamais vous ajoutez une entrée pour un système qui n'est pas là, Grub2 vous le signalera ou vous dira qu'il n'a pas pu le trouver. Windows est encore préinstallé sur la plupart des ordinateurs, il y a donc de fortes chances pour que votre partition Windows soit la première du disque (hd0,1). Modifiez la partition si ce n'est pas le cas sur votre ordinateur.
La version SVN de Grub2 est en changement permanent, il y a très souvent des mises à jour et des paquets de nouveaux fichiers. Le paquet Grub2 pour Zenwalk est maintenu par Bandipat, si vous voulez avoir le paquet le plus récent, n'oubliez pas de lancer grub-install /dev/sdX après avoir mis à jour le paquet. Cela n'efface pas les fichiers dans /boot/grub, donc vous n'aurez pas à tout reconfigurer.
À propos de grub-install, la commande doit normalement non seulement déplacer les nouveaux fichiers aux bons emplacements mais également remplacer la configuration du secteur de démarrage de votre disque, qui indique à Grub2 où se trouvent ses fichiers.
Ça ne s'est pas fait avec les mises à jour récentes sur SVN, utilisez alors la commande indiquée plus haut: dd if=/dev/zero of=/dev/sdX bs=440 count=1 en remplaçant bien le X par la lettre de votre disque dur et surtout en utilisant uniquement bs=440, une valeur supérieure effacera la table de partition du disque ou effacera son numéro de série!
Si après une mise à jour de Grub2, au redémarrage vous vous retrouvez face au prompt “grub rescue mode”, vous devrez éxécuter la procédure ci-dessus.
Si vous connaissez Grub Legacy, le changement devrait se faire sans douleur. Vous pouvez convertir votre fichier menu.lst en grub.cfg, bien qu'il y ait eu des changements et que certaines choses ne soient plus nécessaires, votre ancien menu.lst est toujours valable avec Grub2. Vous aurez juste besoin d'installer le paquet grub2 puis lancer la commande grub-install /dev/sdX puis renommer votre fichier menu.lst en grub.cfg et le déplacer dans /boot/grub ou bien, comme il est recommandé, utiliser grub-mkconfig -o /boot/grub/grub.cfg pour créer un nouveau fichier puis lui rajouter ce que vous voulez de votre ancien menu.lst. Si tout se passe bien au redémarrage, vous pouvez supprimer le paquet Grub Legacy.
Vous pouvez bien entendu garder les deux, et à tout moment revenir à Grub Legacy si vous le voulez, mais Grub2 devrait bien vous plaire et vous en dissuader!
Ceci n'est qu'une petite partie des possibilités de Grub2 et de ce que l'on peut faire avec son grub.cfg. Vous pouvez aller sur les channels IRC de Zenwalk (#zenwalk (en anglais) et #zenwalk-fr (en français) sur irc.freenode.net ou #Zendo (en anglais) sur irc.webchat.org). Inscrivez-vous à la mail list du développement de grub pour des réponses plus détaillées.
Vous n'aurez plus jamais à faire lilo -v après avoir édité lilo.conf ou installé un nouveau noyau avec Grub2! Comme vous ne devriez plus vous retrouver devant un écran vide ou un “L 99 99 99 99” comme on peut en voir lorsque Lilo ne marche plus. Grub2 devrait enrichir votre expérience sous GNU/Linux en vous offrant un chargeur de démarrage plus flexible, avec plus de sécurités pour ne pas vous retrouver coincé.
Le développement très actif de Grub2 est mené par une excellente équipe. Ils essayent de ne rien laisser de côté et sont impatients d'entendre vos questions et suggestions.