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

  • Jai remarqué que vous avez spécifié -o /boot/grub2/grub.cfg comme fichier de sortie. Le répertoire /boot/grub/ existe-t-il toujours?

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 l grub-set-default aide

    grub-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 relancez grub2-mkconfig. Mais au démarrage, lentrée par défaut est toujours vmlinuz-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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *