J'ai plusieurs distrib installées sur le même ordi dont Toutou en 4.3.1, installé en dur parce qu'installé en frugal grub2 ne le trouvait pas du tout.
Oui car Grub n'est plus apte à démarrer ma (jeune et fougueuse) Frugalware, et je dois à regrets utiliser grub2. Je me résigne, je me dis que c'est le progrès. Enfin: oui, il est plus joli...
Seulement voilà, grub2 n'est pas encore totalement abouti. Patché à convenance par chaque distro, celui de Frugal(ware) me créait de belles salades mêlées façon... - enfin le bordel quoi ! - mettait des entrés en double, voire en quadruple, avec des "linux inconnu", je m'y retrouvais mal, je ne démarrait jamais le bon système, j'étais parfois en recovery, bref pas le top.
Je me suis donc plongé dans le code pour essayer de changer cela. Je ne vais pas vous faire un cours mais au coeur du truc un dossier, /etc/grub.d, qui renferme des bash. A la configuration (# grub-mkconfig) chaque bash définit une partie du fichier /boot/grub/grub.cfg que lit grub au boot. Il y a un bash pour la forme générale, un pour la distro d'origine, un pour windows (Mouaaaahh !), un pour les autres entrés et... un pour les entrés manuelles. Donnez un œil ici si le coeur vous en dis:
http://www.linuxpedia.fr/doku.php/expert/grub2
Devant la complexité du truc pour mon petit niveau j'ai décidé purement et simplement d'empêcher l’exécution des bash principaux (chmod -x) et de créer mes entrés manuellement dans le bash exprès pour ça afin de me faire un écran de boot tout mignon. Pas dur: il suffit juste de bien indiquer ou se trouve les liens symboliques, générés automatiquement à l’installation d'un noyau, vers vmlinuz et initrd et l'affaire est normalement réglée. J'ai donc écris les entrés de ce bash:
Code: Select all
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#Frugalware sur /dev/sda5
menuentry "Frugalware (on /dev/sda5)" {
set root=(hd0,5)
linux /boot/vmlinuz root=/dev/sda5 ro quiet silent
initrd /boot/initrd
}
#Xubuntu sur /dev/sda7
menuentry "Xubuntu (sur /dev/sda7)" {
set root=(hd0,7)
linux /vmlinuz root=/dev/sda7 ro quiet silent
initrd /initrd.img
}
#Salixos sur /dev/sda9
menuentry "Salixos (sur /dev/sda9)" {
set root=(hd0,9)
linux /boot/vmlinuz root=/dev/sda9 ro quiet silent
initrd /initrd.img
}
#Toutou sur /dev/sda11
menuentry "Toutou (sur /dev/sda11)" {
set root=(hd0,11)
linux /boot/vmlinuz root=/dev/sda11 ro vga=normal
initrd /initrd.gz
}
Vous allez me dire: oui mais initrid est mal indiqué. Je vous répondrais deux choses:
- celui de Salixos n'est pas mieux indiqué, et Salixos démarre;
- grub legacy n'a besoin que d'une ligne dans menu.lst pour joindre le kernel. Celle-ci:
Code: Select all
kernel /boot/vmlinuz root=/dev/sda11 ro vga=normal
Voilà mon problème tel qu'il est. Je m'excuse pour ce post un peu long mais j'avais un peu envie de vous interpeler (vous provoquer serait plus exact ) car je pense que dans l'avenir grub2 va de se répandre et devra sans doute de plus en plus booter Toutou.
Je vous remercie de m'avoir lu et si vous avez des éléments de reponse à mon problème je vous en serais reconnaissant.
PS: Je serais bien tenté d’essayer grub 4dos mais je ne sais pas ce qui se passe chez moi, il ne s'installe purement et simplement pas. Corrompu sans doute. Le hash était pourtant bon. Zut je m'égare là...