Forums


  • Ce qui suit à été réaliser sur une Debian Testing (Squeeze) En théorie cela devrait aussi être applicable à Ubuntu mais je ne garanti rien 1 - Introduction Grub est un un boot loader. Un boot loader est le petit programme qui démarre juste après le Bios sur votre machine et qui permet de choisir entre différents systèmes d'exploitation ou différentes options du système. Tout les OS modernes disposent d'un boot loader , même Windows (ntldr et boot.ini). Grub a plusieurs avantages par rapport à la concurrence, dont le plus important est celui de proposer une ligne de commande qui permet de faire pas mal de choses dès le boot sans avoir besoin de lancer un quelconque système. La première version contenait pas mal de bug de conception et de limitation qui ont finalement obligé sa réécriture totale, ainsi est né Grub2 aussi connu sous le nom de Grub-PC A signaler aussi que Grub2 est toujours en version béta mais à été juger assez stable par plusieures distributions pour être utilisé par défaut. 2 - Utilisation Depuis quelques semaines, Grub2 est automatiquement installé sur les Debian testing en remplacement de Grub1 (qu'on appelle maintenant grub-legacy (grub-héritage)). En fait pour assurer une transition en douceur, Grub2 est installer en "chain-loader", ce qui veux dire que, si grub-legacy est installé, celui ci n'est pas supprimer, Grub2 est installer en parallèle. Grub-legacy continu de booter en premier mais une entrée est créer vers grub2 et celle-ci est par défaut, ce qui veux dire que après quelques secondes vous passer automatiquement à grub2. Ceci afin de vous permettre de tester, en toute sécurité, le fonctionnement de Grub2. Je vous conseille de tester toutes les options avant de complètement basculer vers grub2. 3 - Configuration Attention: toutes les modifications qui suivent implique que l'on soit loggué en temps que root. sous Ubuntu, il faut soit ajouter "sudo" devant les commandes soit faire "sudo su" pour passer en root de manière permanente Avec Grub1, la configuration se faisait principalement manuellement en modifiant un fichier texte.
    /boot/grub/menu.lst
    Bien que peux évident au premier abort, après quelques recherches, il était assez simple de modifier ce fichier pour ajouter/modifier/supprimer de nouveaux systèmes d'exploitation. Avec Grub2, ceci n'est plus possible. Celui ci utilise les numéro d'identification des disques qui sont assez dificile d'accès afin de pouvoir aussi booter à partir d'un stick USB. Maintenant Grub2 utilise des fichiers de configurations qui se trouvent en :
    /etc/default/grub
    /etc/grub.d/
    et un script qui génère le fichier
    /boot/grub/grub.cfg
    à partir de ces fichiers de configuration Avant d'aller plus loin vous pouvez installer les packages suivant en plus de Grub2: os-prober : permet de détecter les autres systèmes d'exploitation installé sur la machine, si vous avez un dual-boot avec windows par exemple ou une autre distro de Linux ou un BSD... grub2-splashimage : une collection d'images pour mettre en fond de menu de grub2. Pas franchement utile car contrairement à grub1, grub2 ne nécessite pas un format spécifique. (à priori, le tga et le png seraient supporté ainsi que le jpeg 8bit) memtest+ : petit utilitaire qui se lance au boot (donc à partir de grub) pour tester en profondeur le fonctionnement de vos barrettes mémoires. Pas utilisé tout les jours mais bien utile en cas de doute, si votre machine fait des choses bizarres (sous Linux ou Windows) si elle plante de manière inexpliqué après quelque temps d'utilisation. Pour que osprober et memtest+ soient pris en compte dans le menu de grub (ainsi que après toutes modifications dans les fichiers de configuration) il faut lancer la commande:
    update-grub
    fichier /etc/default/grub
    # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"
    Les lignes qui commencent par un "#" sont des commentaires et sont donc ignorées par "update-grub" GRUB_DEFAULT : indique quelle entré du menu sera lancé par défaut, sauf circonstance exceptionnelle, il vaut mieux laissé 0. A noter que l'on peux mettre "saved" ce qui signifie que Grub va mémoriser l'entrée que vous choisissez et que celle-ci deviendra celle par défaut lors du prochain boot GRUB_TIMEOUT : temps en secondes après lequel l'entrée par défaut sera lancée si l'utilisateur ne presse aucune touche GRUB_DISTRIBUTOR : Nom de la distribution . encore une fois mieux vaux laisser la configuration par défaut, sauf si vous voulez rigoler un peu. GRUB_CMDLINE_LINUX_DEFAULT : commande ajoutées au kernel de Linux, vous pouvez ajouter "splash" par exemple si vous avez installé "splashy" pour avoir une image lors du chargement de Linux au lieu des lignes de codes. L'option "quiet" permet de limiter la quantité d'informations qui s'affiche ... vous ne voyez que les info importantes. GRUB_CMDLINE_LINUX : même chose que le précédents par pour les entrées du menu de secours (mode rescue), sauf si vous savez ce que vous faites, laissez vide GRUB_TERMINAL : force le lancement de la console de Grub ... par défaut la ligne est en commentaire, il faut donc supprimer le "#" pour l'activer ... pas toucher GRUB_GFXMODE : résolution du menu Grub ou framebuffer. Je vais y revenir plus tard GRUB_DISABLE_LINUX_UUID : définie le mode d'identification des disques, si cette option est à "true" alors Grub enverra au noyau l'identification des disques selon l'ancienne méthode (root=/dev/sdXY ou root=/dev/hdXY) . Pas touche !! GRUB_DISABLE_LINUX_RECOVERY : Désactive l'entrée du menu "rescue" !!! Il faut croire au Père-Noël et que sa machine ne plantera jamais pour activer cette option rolleyes donc Pas touche !! Répertoire /etc/grub.d Ce répertoire contient un certain nombre de fichier de configuration qui sont exécuter par "update-grub" dans l'ordre de leur n° comme pour les fichiers dans /etc/rcX.d
    00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober 40_custom
    Logiquement, il est déconseillé de modifier ces fichiers, sauf le 40_custom, car lors de la prochaine mise à jour de Grub2, ils risquent d'être replacés. 4- FrameBuffer et SplashImage Une des grandes innovations de Grub2 est le support du FrameBuffer dès le menu et de format d'images un peu plus habituel que Grub1. Pour rappel, Grub1 ne supportait qu'une résolution de 640x480 et que le XPM compresser (xpm.gz) en 14 couleurs comme format d'image. FrameBuffer : Nous avons tous aujourd'hui dans nos machines des cartes vidéo qui sont en mesure d'afficher des résolutions délirantes comme du 1920x1080 ou pire. A partir de là il est désolant de devoir, en mode console, se contenté d'uniquement 640x480 qui était la résolution des PC au temps du 80286. Depuis longtemps, les fabricants de cartes vidéo ont mis en place une norme commune qu'on appelle le vbe (Video Bios Extension) ou VESA que Linux utilise sous le nom de FrameBuffer et qui permet d'avoir des consoles dans des résolutions plus élevés voir même d'afficher des graphiques. A noter que si votre carte video n'est pas supporté par Xorg, il est possible de l'utilisé en mode FrameBuffer, car Xorg propose un driver fb , certe moins rapide qu'un drivers natif mais qui à l'avantage de fonctionner avec quasiment n'importe quelle carte vidéo qui à moins de 10 ans !! D'ailleurs c'est fréquemment utiliser par les LiveCD. Le FrameBuffer n'était pas utiliser par Grub1 et pour l'activé il fallait passer le paramètre "vga=ask" pour définir les modes supportés par votre carte et ensuite "vga=0x314" si par exemple vous aviez défini que le mode 314 était le mode optimal pour votre carte Grub2 permet donc maintenant d'utiliser le FrameBuffer et donc d'avoir une image au boot de meilleure qualité . Étape 1 : Définir le meilleur mode pour votre carte vidéo Quand vous démarrez votre machine, sur le menu de Grub2, vous appuyez sur la touche "c" pour passer en mode console. Puis vous tapez la commande
    vbeinfo
    L'écran va clignoter pendant quelques instants (pas de panique cela peux prendre presque 1 min) et vous afficher la liste des modes supportés. Disons que votre carte supporte le 1024x768x24 (24 bits ou 16Millions de couleurs) ce qui devrait être le minimum pour toutes les cartes. Évitez les résolutions en 32 bits et ne prenez pas non plus une résolution trop grande, parce qu'en suite vous risquez de ne plus pouvoir lire le texte qui s'affiche sur la console smile Donc vous notez la résolution quelque part et vous booter sous Linux. Ensuite vous editez le fichier /etc/default/grub et à la ligne
    GRUB_GFXMODE=640x480
    vous remplacez par
    GRUB_GFXMODE=1024x768x24
    mais ce n'est pas tout !! En effet, Grub2 ne fait pas comme Gnome ou XFCE ou autres gestionnaires de bureau , il ne manipule pas l'image !! Donc par défaut vous avez une image qui fait 640x480 et vous devez la changer, sinon elle n'occupera qu'une petite partie de l'écran !!! et une partie du menu sera invisible (texte noir sur fond noir ce n'est pas vraiment lisible) Plusieures possibilités : Soit vous prenez l'image par défaut (/boot/grub/moreblue-orbit-grub.png) et avec The Gimp (par exemple) vous l'agrandissez ... pas très joli mais efficace. Soit vous trouvez une image de la taille voulue en png (convertissez là si nécessaire) et vous la copier dans /boot/grub/ avec le nom "moreblue-orbit-grub.png" en écrasant ainsi celle existante. Soit enfin, vous prenez une image de la taille voulue en png, vous la copiez dans le répertoire /boot/grub/ (ce n'est pas obligatoire mais préférable) puis vous éditez le fichier /etc/grub.d/05_debian_theme Puis vous recherchez la ligne :
    for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
    et vous remplacez par (si votre nouvelle image se nomme "MoreBlue_Aqua.png" par exemple:
    for i in {/boot/grub,/usr/share/images/desktop-base}/MoreBlue_Aqua.{png,tga} ; do
    Cette ligne cherche dans le répertoire /boot/grub/ et /usr/share/images/desktop-base/ une image avec le nom que vous donnez et l'extension .png ou .tga Pour info, si vous avez installé le package "grub2-splashimage" les images se trouvent dans le répertoire /usr/share/images/grub/ Un petit truc: Si vous voulez tester le résultat avec d'autres images mais ne pas être obligé de rebooter à chaque fois; c'est possible ! Quand vous êtes dans le menu Grub2, vous appuyez sur "c" pour passer en mode console et vous tapez (par exemple)
    background_image=/usr/share/images/grub/
    puis la touche "tab" pour avoir la liste des images contenue dans le répertoire. Vous complétez le nom de l'image que vous souhaitez tester puis "Enter" et l'image se change thumbup La touche "Esc" vous permet de revenir au menu Vous allez vite constater un petit problème ! Suivant l'image que vous choisissez, les couleurs du texte du menu peuvent faire que le menu n'est quasiment plus visible. Bien sur il est possible de remédier à cela. Grub ne connait qu'un nombre limité de couleur. celle-ci sont établie aussi dans le fichier /etc/grub.d/05_debian_theme Cherchez les lignes :
    set menu_color_normal=cyan/blue
    set menu_color_highlight=white/blue
    Comme vous le voyez, il y 2 paire de couleurs. La première est celle du texte, la seconde est celle du fond du texte. le noir (Black) est considéré comme transparent quand il est en couleur de fond. Vous pouvez choisir parmis , black (or transparent), dark-gray, light-gray, white, brown, yellow, red, light-red, blue, light-blue, green, light-green, cyan, light-cyan, magenta, light-magenta.
     white blue magenta cyan
     light-gray yellow red light-magenta
     dark-gray green light-blue light-red
     black light-cyan light-green brown

    Bien, il nous reste un petit détail à régler. Avec ce que nous venons de faire, Grub2 utilisera le FrameBuffer avec une jolie image (ou une moche selon votre choix). Le seul soucis, c'est que ensuite la console, de manière surprenante, repasse en mode 640x480 bigeek J'ai mis un peu de temps à trouver d'où venait le problème. Donc il faut maintenant éditer le fichier /etc/grub.d/00_header. Vers la fin du fichier, il faut trouver les lignes :
    set gfxmode=${GRUB_GFXMODE}
      insmod gfxterm
    et ajouter au milieu set gfxpayload=keep
    set gfxmode=${GRUB_GFXMODE}
      set gfxpayload=keep
      insmod gfxterm
    Voila !! Maintenant un petit : update-grub histoire de valider toutes nos modifications Vous testez votre configuration et toutes les entrés de votre menu et quand vous aurez suffisamment confiance en Grub2, vous pourrez vous débarrasser de Grub1 en tapant : upgrade-from-grub-legacy qui le désinstallera !! Et voila !! En espérant avoir été utile à quelqu'un Have Fun ericc me sources : /etc/default/grub en Francais How to spalshimages Grub2 Documenation Ubuntu-Grub2 (excellente, plus complète que ce modeste texte, mais en Anglais)
     

  • Excellent tuto ricco !
    Merci beau boulot thumbup
    Je vais avoir l'occasion de le tester pleinement comme je vais faire une installation neuve d'Ubuntu , GRUB2 est le boot loader par défaut dans 9.10

    Il faut savoir que GRUB2 pose encore beaucoup de problèmes suffit de trainer sur les sites linux en discutant , une mise a jour d'un multiboot se traduit souvent par un plantage , il y a énormément de changements dont la numérotation des partitions qui commençait par hd0.1 , commence maintenant par hd1.1 sous GRUB2
    Vous devez savoir ce que vous faites !
     

  • Comme je l'ai dit cela fait plusieures semaines que je l'utilise et je n'ai pas constaté de soucis spécifiques.
    Pour le problème des hd0 qui passent en hd1, il suffit désactiver le paramètre
    GRUB_DISABLE_LINUX_UUID=false
    pour utiliser les UUID (Universal Unique IDentifier) qui (comme le nom l'indique) ne change jamais.

    J'ai une config multiboot et je n'ai jamais eu de problème !

    Le seul plantage que j'ai eu est en utilisant la commade : vbetest qui permet de lire les info de la carte video
    mais rien de problèmatique

    ericc me
     

  • Je viens d'upgrader mon netbook de Ubuntu 9.04 à 9.10 et le bootloader est toujours Grub 1 !!

    Peut être en cas de nouvelle installation

    ericc me
     

Modérateur(s): ericc, toxxic, mich_belge