#1 Le 29/01/2010, à 09:43
- sds108
GRUB2/9.10 : modifier les entrées du menu ?
Bonjour,
J'ai pas mal lu, pas mal recherché sur le net au sujet de GRUB2.
Tout fonctionne bien, merci.
j'ai donc un GRUB avec entrées multiples (un 9.10 32 bits, le même en 64, un Mint en 32, un 7 en 64 bits, etc., le tout sur plusieurs DD).
Le GRUB que j'utilise est celui installé avec 9.10/64, sur le premier disque, dans le MBR.
Ma question toute simple mais sans réponse trouvée par moi est :
Peut-on changer non pas les entrées en elles-même mais la façon dont sont décrites ces entrées dans le menu ? Au lieu du classique : Ubuntu, Kernel 2.6.20.17-generic, avoir à la place, par exemple Ubuntu 9.10-32bits, Mint 32, etc.
Avant de faire des bêtises, de l'aide serait la bienvenue car va falloir que je trifouille 40_custom ou simplement les GRUB_DISTRIBUTOR peut-être ?
Vous l'aurez compris, je suis un "Newbie" en Linux, que je viens de découvrir il a 3 semaines environ. Après plusieurs essais et utilisations réelles, Ubuntu 32 a ma préférence et va devenir mon OS principal.
Mon seul regret : Qu' AUTOCAD n'ait pas (encore ?) été porté sur Linux !
merci de votre aide
sds
Dernière modification par sds108 (Le 29/01/2010, à 09:44)
Hors ligne
#2 Le 29/01/2010, à 13:09
- bendel
Re : GRUB2/9.10 : modifier les entrées du menu ?
bonjour sds108,
Apparemment, c'est faisable.
Je n'ai pas grub2, je suis resté avec l'ancienne version, mais d'après ce que j'ai pu lire, il faudrait éditer le fichier 10_linux et 30_os-prober (donc peut être à confirmer) :
10_linux pour modifier les entrées "linux"
30_os-prober pour les autres OS
il faudrait modifier ce qui se trouve entre les guillemets après menuentry
et ne pas oublier un
sudo update-grub
je pense autrement qu'éditer le GRUB_DISTRIBUTOR n'aura une influence que sur les versions ubuntu.
@ +
bendel
Ubuntu 10.10 pc portable NEC 1,6 GHz, 512 Mo RAM (oui je sais...)
Hors ligne
#3 Le 29/01/2010, à 14:17
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
Je pense que:
menuentry "Ubuntu, Linux 2.6.31-17-generic"
=
linux_entry "${OS}, Linux ${version}" \
menuentry "Microsoft Windows XP Professionnel (on /dev/sda1)"
=
menuentry "${LONGNAME} (on ${DEVICE})" {
Et qu'il faut plûtot changer les fichers dans /etc/grub.d/ que le fichier /boot/grub/grub.cfg parce que celui-ci se met à jour en fonction des autres après le update-grub.
Mais sauvegarde les versions originales avant de faire des tentatives.
Hors ligne
#4 Le 29/01/2010, à 14:25
- netsuai
Re : GRUB2/9.10 : modifier les entrées du menu ?
Bonjour,
pour la doc sur grub 2 : http://doc.ubuntu-fr.org/grub-pc
La seule question idiote est celle que l'on ne pose pas.
netsuai
Hors ligne
#5 Le 29/01/2010, à 17:48
- sds108
Re : GRUB2/9.10 : modifier les entrées du menu ?
Bonjour,
et merci de votre aide, le monde Linux n'est pas simple à appréhender !
mais bon ! voilà un bon mois que je lis tout ce qui me tombe sous l'écran, ou presque, et je dois dire que c'est très intéressant !
Intéressant comme Grub2 d'ailleurs, et l'installation de plusieurs OS sur le même ordinateur.
Mauvaise piste donc que celle de GRUB_DISTRIBUTOR. je le pressentais puisque la doc de Grub-pc indique, comme toi francoise_peace, que ce fichier est mis à jour à chaque démarrage selon l'ordre des scripts dans le répertoire grub.d. Mais un autre document WEB indique de le modifier "à la main", alors un autre avis m'intéressait !
Le problème est que je ne peux me lancer dans une modif d'un fichier dont je ne comprends pas le premier traître mot du langage employé (c'est lequel ?), il me faut donc une méthode (dans les grandes lignes car il faut que j'apprenne à me débrouiller ).
j'avais pensé à "vider" grub.d pour "tout" passer en 40_custom et donc pouvoir modifier à la main ???
Attention, je suis newbie d'accord, mais avec un cerveau en état de marche, je ne ferai donc rien sans aide ou doc probante !
merci à tous ceux qui ont bien voulu m'aider.
je continue ma quête
a+
sds
Hors ligne
#6 Le 29/01/2010, à 23:26
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
Je te conseille quand même de conserver l'entrée de type recovery mode du dernier système installé (celui qui gère ton grub).
L'intérêt du recovery c'est que si ton grub ne marche pas, même si tu peux t'"auto-pirater" pour sauvegarder tes données avec le cd de Ubuntu en changeant les permissions sous root (sudo bash), tu ne peux pas corriger les erreurs de ton grub (update-grub) à partir du CD d'Ubuntu. Après comme t'as compris que grub c'est que l'écran de démarrage, tu sauras sûrement ré-installer ton dernier système sans endommager les autres (mount point = /, swap = 3000MB).
Sinon j'ai trouvé ça en anglais: https://help.ubuntu.com/community/Grub2 (ci-bas)
Creating the Custom Menu
The user can either edit the default /etc/grub.d/40_custom file or create a new one. The easiest way to create the content of a custom menu is to copy a working entry from /boot/grub/grub.cfg. Once copied, the contents of 40_custom can be tailored to the user's desires.
Je ne suis pas informaticienne donc je remercie le compliment, mais d'après ce que je comprends 40_custom n'est pas construit sur le model de /etc/grub.d/10_linux ou 11_os-prober mais sur le modèle de grub.cfg, et les entrées que tu rentres sont rajoutées au niveau de la queue de grub.cfg après le update-grub.
Donc tu copies et colles le contenu de grub.cfg (sans son début) sur 40_custom et tu le personnalises.
grub.cfg est quand même assez simple à comprendre:
menuentry "Nom du système d'exploitation" {Truc à pas toucher}
- Il ne faut pas qu'il y ait d'espace blanc à la fin des lignes. Donc retour charriot (enter) derrière la dernière lettre.
- set root=(nom de la partition, id)
Il y a aussi ce message qui est intéressant qui te suggère de désactiver la recherche de nouveaux systèmes d'exploitation si tu veux n'utiliser que ta personnalisation. Cependant cela empêchera Grub de détecter de nouveau systèmes d'exploitations installés et il ne reconnaîtra que les systèmes d'exploitation de ton fichier 40_custom:
http://forum.ubuntu-fr.org/viewtopic.php?pid=3206385
sudo gedit etc/default/grub
# Désactiver la recherche d'autres systèmes d'exploitation
GRUB_DISABLE_OS_PROBER=true
Hors ligne
#7 Le 30/01/2010, à 06:29
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
N'empêche que je n'aurais pas modifié mes entrées comme ça. Car je préfère que le Grub détecte automatiquement mes OS et soit mis à jour. Je pense que le problème c'est que tu dois avoir une dizaine de OS dans un ordre que tu ne sais pas changer et avec des détails du nom ainsi que des entrées inutiles ?
Hors ligne
#8 Le 30/01/2010, à 07:52
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
Ce que je te suggère plûtot c'est de changer le numéro de tes OS_ en choisissant un nombre entre 10 et 30. Pour moi Windows XP s'appelle OS-PROBER et ubuntu s'appelle LINUX. Ecrit toutes les commandes que tu souhaites faire sur gedit puis fais pour chaque ligne CTRL+C CTRL+V dans le terminal.
cd /etc/grub.d
ls
sudo rename 's/30_os-prober/09_os-prober/' 30_os-prober
sudo update-grub
Autre manière de faire:
cd /etc/grub.d
ls -l
sudo chmod a+rwx *
Changer les nombres à 2chiffre sur place.
sudo chmod o-w *
sudo chmod a-x README
ls-l
sudo update-grub
Utiliser après chaque Upgrade de chacun de tes systèmes d'exploitation (OS) le Computer Janitor (Balai) ou le Synaptic Package Manager (Gestionnaire de Paquets Synaptique) pour supprimer les noyaux supplémentaires en gardant les noyaux récents (sinon tu supprimes l'OS):
Synaptic > Installed > Search: linux-headers ; linux-image
Puis aller dans le système qui gère ton grub, généralement le dernier système installé et taper:
sudo update-grub
Pour enlever le memory-test d'un OS, tu enlèves la permission: x = exécute sans supprimer le OS:
sudo chmod -x /etc/grub.d/20_memtest86+
sudo update-grub
Pour additionner une nouvelle entrée, je te conseille de l'ajouter comme spécifiée à 40_custom.
N'enlève pas les recovery.
Moi j'ai eu ce problème, mais c'est pas conseillé de faire une double entrée. J'ai mis à jour Grub 2.0 et comme je l'avais personnalisé avant la mise à jour, j'ai eu des entrées doubles. Donc j'ai supprimé de /etc/grub.d les 11_linux et 12_os-prober que j'avais en plus. r= read, w=write, x=execute (ici c'est de l'auto-éxécution de tous les fichiers avec +x). a = all users. o = others (tout ce qui n'est pas root). ~ = home/nom-d-utilisateur, * = tous les fichiers sans les sous-fichiers.
cd /etc/grub.d
ls -l
sudo chmod a+rwx *
ls -l
mkdir ~/backups
cp * ~/backups
sudo rm 11_linux
sudo rm 12_os-prober
sudo chmod o-w *
sudo chmod a-x README
ls-l
sudo update-grub
Sinon pour le langage il s'agit en ce qui concerne les fichiers de grub.d de Bash Shell (vrai nom: "bash - GNU Bourne-Again SHell", dit "shell" pour le traitement de texte et "bash" pour l'installation du shell dans cygwin) parce qu'ils commencent tous par #!/bin/sh, pour les autres je ne sais pas.
man bash
Mais si tu as d'autres changements à faire, c'est dans la partie finale de tes fichiers qu'il faut le faire. Dollar introduit une variable. Et de if à fi on a une petite boucle. Tu peux par exemple transformer:
linux_entry "${OS}, Linux ${version}" \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
quiet
if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}, Linux ${version} (recovery mode)" \
"single ${GRUB_CMDLINE_LINUX}"
fi
En:
linux_entry "${OS}" \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
quiet
sudo chmod a+rw *
sudo gedit 11_linux
sudo update-grub
sudo gedit /boot/grub/grub.cfg
Ce qui fait que dans grub.cfg automatiquement on n'a plus que "Ubuntu" comme menuentry sans la version et sans le "(recovery mode)". OK j'ai tout testé. Et donc ce sont mes conseils.
Sinon pour Autocad, essaye avec Wine, certains .exe acceptent de bien fonctionner dans cet environnement, d'autres fonctionnent moins bien, mais c'est une autre histoire: http://www.winehq.org/
Dernière modification par francoise_peace (Le 30/01/2010, à 08:15)
Hors ligne
#9 Le 31/01/2010, à 13:47
- sds108
Re : GRUB2/9.10 : modifier les entrées du menu ?
Whaou ! francoise_peace, quel boulot !
C'est vraiment sympa, très sympa de ta part. Un grand merci donc, j'apprècie, et si je peux t'aider, c'est très volontier que je te renverrai l'ascenseur.
Pour l'instant, je vais me plonger attentivement dans ton magnifique travail de recherche et de synthèse car ton boulot est conséquent et ce ne serait pas pas lui rendre hommage que de lire en diagonale ce que tu as écrit sans vraiment l'étudier !
Bien sûr, cela va me prendre du temps ( t'as bien bossé !) aussi, je vais poster plusieurs messages marquant et résumant les étapes qui me (nous) conduirons à modifier ces entrées.
Premières réactions à chaud :
1) mon but est possible puisque dans le menu de grub, la distribution de Mint est décrite comme "Linux Mint Helena..."
Reste à savoir comment ils y arrivent. je vais peut-être leurs demander ?
2) Sur le site du zéro, il est indiqué dans le tutoriel GRUB2 qu'on peut modifier GRUB_DISTRIBUTOR à l'aide d'opérateurs :
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` # donne : Ubuntu, Linux 2.6...
#GRUB_DISTRIBUTOR=`lsb_release -d -s 2> /dev/null || echo Debian` # donne : Ubuntu 9.10, Linux 2.6...
#GRUB_DISTRIBUTOR=`echo -n $(lsb_release -cds 2> /dev/null || echo Debian)` # donne : Ubuntu 9.10 karmic, Linux 2.6....
Ceci ajoute à ma perplexité puisque - apparemment - GRUB_DISTRIBUTOR est bien dans GRUB.CONF qui est (semble) généré à chaque démarrage par les scripts de grub.d. Il y a quelquechose qui m'échappe : comment la modif perdure ? peut-être dans /grub.d/10_linux ?
3) La solution est dans 40_custom, certainement **, mais tout est encore flou même si ton aide est précieuse.
Il faut que je comprenne, j'appréhende la manière dont sont organisés ces fichiers pour tenter de les modifier.
Par exemple, je ne comprends pas comment modifier l'appelation des Linux (dans /10_linux ?) par 40_custom. Faudrait désactiver 10_linux (chmod), non ? (tu en parles dans ton dernier message) et tout mettre en 40_custom.
4) certainement** : Pas si sûr puisque mon but premier était de distinguer les 32 des 64 bits et comme il existe des opérateurs (voir #2), peut-être existe-t'il un opérateur pour cela, d'où ma recherche de savoir quel language était utilisé dans ces fichiers Linux.
maintenant quelques précisions pour toi :
5) Je ne souhaite pas désactiver 30_os-prober, je m'en sers régulièrement pour une méthode peu orthodoxe mais qui fonctionne bien pour installer, ajouter ou enlever des OS.
J'ai, en revanche, désactivé memtest86+ mais conservé recovery bien que je ne sois pas si sûr que cela soit utile. En effet, mon expérience montre qu'il est plus rapide, plus efficace de reinstaller plutôt que de réparer. Bien sûr, cela suppose de savoir ce que l'on fait en plus de méthodes et de techniques de "sauvegarde" préalables éprouvées et maîtrisées. Et des machines "simples", pas des serveurs....
6)
Je pense que le problème c'est que tu dois avoir une dizaine de OS dans un ordre que tu ne sais pas changer et avec des détails du nom ainsi que des entrées inutiles ?
Non, j'ai quelques connaissances en informatique et je peux installer les OS dans l'odre qui me convient, nettoyer les entrées inutiles dans le menu de GRUB, etc.
Mon but - je sais, je suis casse-pieds - est de modifier la description des entrées.
7)
Ce que je te suggère plûtot c'est de changer le numéro de tes OS_ en choisissant un nombre entre 10 et 30. Pour moi Windows XP.....
Bon ! là, ça devient ardu ! je vais étudier et essayer tes conseils et tes méthodes. Je t'en reparle.
8)
Sinon pour Autocad, essaye avec Wine, certains .exe acceptent de bien fonctionner dans cet environnement, d'autres fonctionnent moins bien, mais c'est une autre histoire: http://www.winehq.org/
J'ai Wine installé pour d'autres appli WINDOWS mais ce n'est pas probant pour AutoCAd. j'ai plusieurs ordinateurs et bidouiller, même en virtuel, un AutoCad dans une machine Linux est moins efficace que de dédier un machine physique pour un Windows/CAO/DAO
9)
Utiliser après chaque Upgrade de chacun de tes systèmes d'exploitation (OS) le Computer Janitor (Balai) ou le Synaptic Package Manager (Gestionnaire de Paquets Synaptique) pour supprimer les noyaux supplémentaires en gardant les noyaux récents (sinon tu supprimes l'OS):
Oui, c'est fait, par le biais de synaptic, c'est tout de même plus simple que l'autre méthode !
Mince ! pas vu l'heure !
Je me sauve et je bosserai, grâce à toi et avec plaisir, ce soir.
Ah ! pardonne la pauvre qualité de ma prose et de mon orthographe, plus le temps de corriger !
A+ " pas informaticienne" !
Hors ligne
#10 Le 01/02/2010, à 01:03
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
Je pense que tu vas t'en sortir facilement, et donc bonne chance.
1) Oui, tout est possible.
2) Oui on peut modifier GRUB_DISTRIBUTOR dans:
sudo gedit /etc/default/grub
1) et 2)
Ce ne sont pas des opérateurs mais des commandes ou des fichiers ou des programmes qui te permettent de connaître le nom de ton système d'exploitation et la version du kernel.
Commandes:
lsb_release -d -s && uname -r
lsb_release -a
uname -a
Manuels:
man lsb_release
q
Contenus de fichiers:
cat /etc/lsb-release
grep "model name" /proc/cpuinfo
Logiciels:
Ubuntu Software Center > Sysinfo
Ubuntu Software Center > Device Manager
Or comme je ne vois pas de commande associée au nombre de bits, pour afficher 34 ou 64 bits, il faut soit personnaliser 40_custom qui ressemble à grub.cfg:
menuentry "Ubuntu, Linux 2.6.31-17-generic, 32 bits"
Soit personnaliser les fichiers de /etc/grub.d/, et je pense que c'est la meilleure solution car elle est dynamique:
linux_entry "${OS}, Linux ${version}, 32 bits"
3) Oui, en le désactivant -x, il ne sera plus reconnu, et donc le système d'exploitation dont il représente l'existence non plus. Si tu souhaites le rendre exécutable de nouveau: +x. Tu peux vérifier sur place le résultat de tes modifications dans le terminal.
chmod a-x fichier
chmod a+x fichier
7)
rename 's/nom-du-fichier/nouveau-nom-du-fichier/' parmi-tous-ces-fichiers
En réalité ce qu'il renomme ce sont des motifs:
fran@Charmmy-Kitty:~/test$ ls
aabbcc abcabc ccbbaa
fran@Charmmy-Kitty:~/test$ rename 's/aa/ii/' *c*
fran@Charmmy-Kitty:~/test$ ls
abcabc ccbbii iibbcc
Renommer permet de changer l'ordre d'apparition des OS dans le menu de démarrage, donc si tu changes tes habitudes, tu n'as pas besoin de ré-installer tes systèmes dans le bon ordre.
fran@Charmmy-Kitty:/etc/grub.d$ ls
00_header 10_linux 11_os-prober 40_custom
05_debian_theme 10_linux~ 20_memtest86+ README
fran@Charmmy-Kitty:/etc/grub.d$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
Found Microsoft Windows XP Professionnel on /dev/sda1
Found memtest86+ image: /boot/memtest86+.bin
done
fran@Charmmy-Kitty:/etc/grub.d$ sudo rename 's/11_os-prober/08_os-prober/' 11_os-prober
fran@Charmmy-Kitty:/etc/grub.d$ sudo update-grubGenerating grub.cfg ...
Found Microsoft Windows XP Professionnel on /dev/sda1
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
Found memtest86+ image: /boot/memtest86+.bin
done
Mais comme tu as beaucoup de fichiers fait:
sudo chmod a+w
Et change le nom sur place. w c'est write, et donc la possibilité d'écrire sur les fichiers. Et a c'est tous les utilisateurs. Après tu peux faire a-w.
9) Oui synaptic c'est utile si tu laisses ton système chercher automatiquement le nom de tes systèmes d'exploitation. Windows ne change jamais, mais Linux évolue assez vite.
Dernière modification par francoise_peace (Le 01/02/2010, à 07:45)
Hors ligne
#11 Le 03/02/2010, à 17:19
- francoise_peace
Re : GRUB2/9.10 : modifier les entrées du menu ?
Je souhaite partager aussi mon astuce pour redimensionner la taille de la police sur le Grub2. Parce que ça ne me sert à rien de garder ça dans un .pdf si c'est sur le forum qu'on cherche les réponses. Il n'y a pas encore cette astuce dans les forums anglais.
Installez: grub2-splashimages (depuis Synaptics ou avec sudo apt-get install fichier)
cd /usr/share/images
chmod a+rw ./grub
Rajoutez une image personnalisée dans ./grub
Installez: gthumb (depuis Ubuntu Software Center ou avec sudo apt-get install fichier)
System > Preferences > Display
Regardez la résolution exacte de votre écran. Elle vous servira à configurer deux choses: la taille de votre fond d'écran (-15%) et la taille de votre police (-20%). Mes valeurs en pourcentage ne sont pas aléatoires mais empiriques, j'ai remarqué que toutes les fois où le Grub redimensionne le texte en supposant qu'on est à res-20% alors il redimensionne l'image en supposant qu'on est à res-15%. En tout cas c'est ce qui se passe sur mon écran, sans connaître le calcul qu'il y a derrière.
Résolution réelle de l'écran: 1440x900 pixels
Taille de la police: 1152x720x32 pixels (32étant le nombre de bits de Ubuntu)
Taille du fond d'écran: 1124x765 pixels
Rappel pour calculer un pourcentage:
1440x0.2 = 288 ; 1440-288= 1152 (à moins 20%)
1440x0.15= 216 ; 1440-216= 1224 (à moins 15%)
La taille de la police:
Soit res-20%
sudo gedit /etc/default/grub
Décommentez: # GRUB_GFXMODE=640x480
Et mettez res-20% multiplié par le nombre de bits.
Exemple:
GRUB_GFXMODE=1152x720x32
sudo update-grub
La taille de l'image:
Ouvrez l'image avec gThumb Image Viewer
Gthumb > Image > Crop
Crop > Width x Height = res-15% > Apply
Save as … *.jpg (ou si vous utilisez GIMP, Save as … *.tga)
sudo gedit /etc/grub.d/05_debian_theme
Remplacer:
for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga}
Par l'adresse, le nom et l'extension de votre image, par exemple:
for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/birds_screen-res-15.{png,tga,jpg} ; do
sudo update-grub
Et maintenant vous avez une belle image avec une police visible
Hors ligne
#12 Le 22/09/2010, à 23:17
- Davbiss
Re : GRUB2/9.10 : modifier les entrées du menu ?
je vais droit au but , en ce qui concerne le changement du menu Grub il suffit seulement et simplement de verifier les fichier sur le /boot psk au moment de la mise à jour du grub (sudo update-grub) on voit bien que le systeme cherche des images sur le /boot, personnelement j'avais un probleme du duplication causé par une mauvaise mise à niveau du grub ce qui fait que je vois le menu repeté ceci est due au fait que les anciennes images ne sont pas supprimés sur le /boot ceci dit que le systeme charge les nouvelles et les anciennes images lors de la mise à jour du menu grub, alors il suffit de supprimer les anciennes images et tout redeviens normal.
j'éspère que àa aide qlq1. merci.
Hors ligne