Existe-t-il un moyen de récupérer la liste des titres "entrées de menu" de GRUB?
J'ai besoin d'un résultat dans un format qui grub-set-default
accepte. par exemple.
"Ubuntu"
"Memory test (memtest86+)"
etc.
command-line
grub2
madneon
la source
la source
Réponses:
En utilisant
awk
vous donne une liste complète de toutes les entrées de menu dans
grub.cfg
.la source
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk
. : \awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg
à utiliser pourgrub-set-default
Capture d'écran couleur (version courte)
La roue Utilisez la souris, Home, End, PgUp, PgDn, ↑et les ↓touches pour naviguer dans le menu.
Capture d'écran du texte (version longue)
Le script bash utilise
whiptail
au lieu dedialog
pour afficher le menu. Un avantage est que vous pouvez copier l'image du terminal dans le presse-papiers sous forme de texte et la coller dans ce site Web sous forme de texte. Les autres avantages incluent:dialog
n'est pas installé par défaut dans Ubuntu Server ou Lubuntu.whiptail
est inclus par défaut.Voici une capture d'écran de texte:
Mettez en surbrillance l'entrée et appuyez sur Entrée
Utilisez les touches de navigation pour mettre en surbrillance une option et appuyez sur Enterpour voir les pilotes pré-noyau chargés par
grub
et les paramètres de démarrage transmisgrub
au noyau lors du démarrage:grub-menu.sh
script bashgrub-menu.sh
n'a qu'une seule option à modifier:Définissez la valeur sur
true
(masquer les entrées supplémentaires) oufalse
(répertorier toutes les entrées).Le format par défaut peut être remplacé lors de l'appel du script à l'aide de:
ou:
Le code:
la source
Exactement, cela m'ennuie depuis plus d'un an - j'ai donc fait un script rapide et sale pour le faire. J'espère que cela aide les autres?
Cela empile les noms dans une file d'attente push / pop, mais pas l'indexation du menu, donc cela pourrait être mieux, mais je suis allé aussi loin que possible.
Ici, vous pouvez voir une capture d'écran de ma boîte le montrant en cours d'exécution
Comme cela a été demandé dans un commentaire de 2019/8, je l'ai mentionné ci-dessus en faisant un "démarrage temporaire". Cette idée a été à l'origine de mon script, et la méthode de démarrage temporaire est venue d'un autre article et elle ressemble à ceci
# vi /etc/default/grub
# sudo update-grub
# sudo grub-set-default 0
# sudo grub-reboot 4
Réf: https://ubuntuforums.org/showthread.php?t=1310463
la source
push
etpop
dans votre réponse. J'aurais aimé les connaître avant d'écrire ma réponse.test
1. Définissez GRUB_DEFAULT sur GRUB_DEFAULT = enregistré (/ etc / default / grub) 2. Mettez à jour la configuration de grub dans / boot #sudo update-grub 3. Définissez le système d'exploitation par défaut à charger (cela se chargera à chaque redémarrage de la machine) # sudo grub -set-default 0 4. Lorsque vous devez charger un autre système d'exploitation (le numéro est un numéro de menu du système d'exploitation comme dans /boot/grub/grub.cfg, cela ne chargera l'autre système d'exploitation qu'une seule fois lors du prochain redémarrage - le redémarrage doit être démarré manuellement): sudo grub-reboot 4Cela devrait être la bonne "chaîne" ...
Le dernier canal supprime les espaces blancs au début de chaque ligne et corrige la séquence de numéros conformément à l'entrée du numéro de vers. Exemple de sortie:
Si vous aimez voir toutes les entrées, aussi les avancées, vous pouvez utiliser
mais la séquence de nombres ne convient pas pour une utilisation avec grub-set-default.
la source
Je viens de découvrir que vous pouvez simplement utiliser la saisie automatique (en appuyant
tab
deux fois) sur des commandes commegrub-reboot
ougrub-set-default
et cela vous donnera une liste des entrées de menu de démarrage disponibles. Vous pouvez alors simplement copier le titre que vous voulez littéralement, vous n'avez pas besoin d'utiliser un numéro.Malheureusement, pour une raison quelconque, mon installation de Windows 7 ne s'affiche pas de cette façon.
la source
Un autre awk one-liner qui gère les sous-menus:
Cela pourrait être une pensée faillible, car \ t est utilisé pour identifier les entrées de sous-menu.
la source
Dans OpenSuSE, grub2-once fournit l'ID de menu que vous pouvez ensuite utiliser dans d'autres commandes. Pas beaucoup d'aide pour les utilisateurs d'Ubuntu.
la source