Jexécute GRUB 2.00 sur un système Gentoo Linux.
Je compile mes propres noyaux manuellement, puis je les installe dans /boot
avec make install
. Jai les noyaux suivants dans /boot
pour le moment:
# ls -1 /boot/vmlinuz* /boot/vmlinuz-3.7.4-gentoo-5 /boot/vmlinuz-3.7.4-gentoo-first /boot/vmlinuz-3.7.4-gentoo-fourth /boot/vmlinuz-3.7.4-gentoo-third
Lexécution de grub2-mkconfig
donne le résultat suivant:
# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.7.4-gentoo-third Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth Found linux image: /boot/vmlinuz-3.7.4-gentoo-first Found linux image: /boot/vmlinuz-3.7.4-gentoo-5 done
Si je lis maintenant le fichier /boot/grub2/grub.cfg
résultant, je remarque que les entrées suivantes ont été créées:
- Une entrée principale par défaut qui démarre
vmlinuz-3.7.4-gentoo-third
- Un sous-menu avec toutes les autres entrées (y compris celles de récupération), dans le même ordre que
grub2-mkconfig
commande
Le problème est quau démarrage je « voudrais charger par défaut la cinquième révision de mon noyau (vmlinuz-3.7.4-gentoo-5
), pas le troisième (vmlinuz-3.7.4-gentoo-third
). Je préfère également ne pas accéder au sous-menu pour choisir le bon noyau à charger.
Comment puis-je changer ce comportement? Comment puis-je dire à GRUB que je veux exécuter la cinquième révision de mon noyau par défaut et non lancienne troisième révision? En général, comment puis-je changer la ligne dentrée par défaut pour quelle corresponde au noyau que je veux et non à un noyau apparemment aléatoire choisi par GRUB?
Jai également essayé de mettre les lignes suivantes dans /etc/default/grub
:
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true
Cela ne résout pas le problème comme je le souhaite. Mais au moins GRUB semble se souvenir du dernier noyau sur lequel jai démarré et le sélectionne automatiquement dans le sous-menu. Cest juste que je naime pas accéder au sous-menu.
Commentaires
Réponse
Pour sélectionner une entrée de menu dans le sous-menu « Advanced options » set GRUB_DEFAULT = « 1> 3 ». Vous pouvez maintenant exécuter grub2-mkconfig pour générer le fichier de configuration grub . Au prochain redémarrage, vmlinuz-3.7.4-gentoo-5 devrait démarrer.
Remarque : Cela ne changera pas lentrée par défaut dans le menu grub, cest-à-dire que lentrée par défaut indiquera toujours la même entrée que celle que vous avez actuellement. Mais limage qui sera démarrée par défaut sera la 4ème image sous les « Options avancées ». Pour que vmlinuz-3.7.4-gentoo-5 soit lentrée par défaut dans le menu grub, lordre des images doit être tel que vmlinuz-3.7.4-gentoo-5 soit la première image lorsque vous exécutez grub2-mkconfig .
Commentaires
- Notez que les guillemets sont importants. Cest à dire. GRUB_DEFAULT = 1 > 3 gagnés ‘ t fonctionnent.
Réponse
Si vous avez un sous-menu dans votre grub.cfg, vous devez utiliser deux chiffres comme celui-ci:
grub-reboot "1>3"
Le premier est lindex du menu et le deuxième est lindex du sous-menu .
Par exemple, pour démarrer la dernière entrée de la configuration comme ceci:
grep menu /boot/grub/grub.cfg menuentry "Debian GNU/Linux" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { submenu "Advanced options for Debian GNU/Linux" $menuentry_id_option "gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" {
vous devez utiliser:
grub-reboot "1>5"
et redémarrez.
Commentaires
- Bizarre. lindex du sous-menu commence par 0, tandis que le menu principal de 1
Answer
vous pouvez aussi utiliser GRUB_DEFAULT=saved
. Dans ce cas, vous « utiliseriez
$ grub2-set-default -h Usage: grub2-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier.
ou si ce nest que pour le prochain démarrage:
$ grub2-reboot -h Usage: grub2-reboot [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB, for the next boot only. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier.
Réponse
Avec centos7 (ou RHEL7) et grub2:
grub utilise lentrée « saved_entry » de grubenv par défaut pour démarrer, sniplet de /boot/grub2/grub.cfg:
if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi
pour vérifier ce quest la « Saved_entry » est maintenant ma version:
grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)
pour le changer, par exemple dans ma version de débogage:
grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)"
Réponse
Essayez
mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup
Ceci déplace tous vos noyaux inutilisés vers un répertoire de sauvegarde, maintenant:
grub2-mkconfig -o /boot/grub/grub.cfg
Ceci ajoute uniquement le choix r5
à votre menu. Après cela, lisez ce ce lien, puis renumérisez tous les noyaux du répertoire de sauvegarde autre que vmlinuz si vous insistez pour les conserver
Réponse
Ce que jai fait pour obtenir le résultat souhaité était:
-
définir le
GRUB_DEFAULT=saved
comme indiqué dans lgrub-set-default
aidegrub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.
-
Définit la valeur par défaut
grub-set-default "1>2"
Il crée un nouveau fichier dans / boot / grub appelé grubenv avec les informations requises.
-
Ensuite, je recrée le fichier de configuration
grub-mkconfig > /boot/grub/grub.cfg
Et jai vu que la configuration a été modifiée pour utiliser létat enregistré:
if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi
Réponse
Vous pouvez définir le choix par défaut par valeur numérique. Si vous définissez
`GRUB_DEFAULT=3`
dans /etc/default/grub
Vous définirez la valeur par défaut sur lentrée gentoo-5.
GRUB_DEFAULT
est un offset zéro, donc 3 sélectionnera la quatrième entrée comme vous le souhaitez.
Commentaires
- Je ne ‘ Je ne sais pas pourquoi, mais il il semble que cela ne ‘ t fonctionne pas. Jai mis
GRUB_DEFAULT=3
comme vous lavez dit, puis relancezgrub2-mkconfig
. Mais au démarrage, lentrée par défaut est toujoursvmlinuz-3.7.4-gentoo-third
. - Essayez de commenter
GRUB_SAVEDEFAULT=true
Cela ne devrait pas ‘ t importe, mais ‘ nest pas nécessaire avec nume rical. - Je nai ‘ cette option dans mon fichier
/etc/default/grub
.
Réponse
Je soupçonne que grub2-mkconfig
trie les noyaux dans lordre inverse, en supposant quils sont principalement contiennent des numéros de version à augmentation monotone. Commencez donc à choisir vos balises en fonction de cette convention.
Réponse
in ubuntu:
sudo grub-pc
grub-pc vous permettra de choisir quel menu.
sudo update-grub
voir: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
Réponse
mv
ces fichiers de version nouveaux / non utilisés dans /boot
dans un répertoire de sauvegarde par exemple /boot/back
initrd.img-3.13.0-xx-generic vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-xx-generic
Redémarrez le système en mode de sauvetage, puis choisissez grub dans la boîte de dialogue de sauvetage, alors tout ira bien.
Cest la méthode la plus appropriée, je pense. Jutilise ubuntu 14.04.
-o /boot/grub2/grub.cfg
comme fichier de sortie. Le répertoire/boot/grub/
existe-t-il toujours?