¿Hay alguna forma de recuperar la lista de títulos de "menuentries" de GRUB?
Necesito un resultado en un formato que grub-set-defaultacepte. p.ej.
"Ubuntu"
"Memory test (memtest86+)"
etc.
command-line
grub2
madneon
fuente
fuente

Respuestas:
Utilizando
awkle brinda una lista completa de todas las entradas de menú en
grub.cfg.fuente
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfgawk. : \awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfgpara usargrub-set-defaultCaptura de pantalla en color (versión corta)
La rueda de desplazamiento del ratón uso, Home, End, PgUp, PgDn, ↑y ↓teclas para navegar por el menú.
Captura de pantalla de texto (versión larga)
El script bash se usa en
whiptaillugar dedialogmostrar el menú. Una ventaja es que puede copiar la imagen del terminal en el portapapeles como texto y pegarla en este sitio web como texto. Otras ventajas incluyen:dialogno está instalado por defecto en Ubuntu Server o Lubuntu.whiptailestá incluido por defecto.Aquí hay una captura de pantalla de texto:
Resalte la entrada y presione Entrar
Use las teclas de navegación para resaltar una opción y presione Enterpara ver los controladores pre-kernel cargados
gruby los parámetros de arranque pasadosgrubal kernel al arrancarlo:grub-menu.shscript bashgrub-menu.shsolo tiene una opción para ajustar:Establezca el valor en
true(ocultar las entradas adicionales) ofalse(enumerar todas las entradas).El formato predeterminado se puede anular al llamar al script usando:
o:
El código:
fuente
Exactamente esto me ha estado molestando durante más de un año, así que hice un guión rápido y sucio para hacerlo. ¿Espero que esto ayude a otros?
Esto apila los nombres en una cola push / pop, pero no la indexación del menú, por lo que podría ser mejor, pero he ido tan lejos como podría ser molestado.
Aquí puedes ver una captura de pantalla de mi cuadro que muestra cómo se ejecuta
Como se solicitó en un comentario de 2019/8, mencioné anteriormente hacer un "arranque temporal". Esta idea fue lo que comenzó originalmente mi script, y el método de arranque temporal vino de otra publicación y es algo como esto
# vi /etc/default/grub# sudo update-grub# sudo grub-set-default 0# sudo grub-reboot 4Ref: https://ubuntuforums.org/showthread.php?t=1310463
fuente
pushypopen tu respuesta. Ojalá los hubiera conocido antes de escribir mi respuesta.test1. Configure GRUB_DEFAULT en GRUB_DEFAULT = guardado (/ etc / default / grub) 2. Actualice la configuración de grub en / boot #sudo update-grub 3. Configure el SO predeterminado para cargar (esto se cargará cada vez que reinicie la máquina) # sudo grub -set-default 0 4. Cuando necesite cargar otro sistema operativo (el número es un número de menú del sistema operativo como en /boot/grub/grub.cfg, esto cargará otro sistema operativo solo una vez durante el próximo reinicio; el reinicio se iniciará manualmente): sudo grub-reboot 4Esta debería ser la "cadena" correcta ...
La última tubería elimina el espacio en blanco al comienzo de cada fila y corrige la secuencia numérica de acuerdo con la entrada del número de grub. Salida de muestra:
Si desea ver todas las entradas, también las avanzadas, puede usar
pero la secuencia de números no es adecuada para usar con grub-set-default.
fuente
Me acabo de enterar de que puede usar el autocompletado (presionando
tabdos veces) en comandos comogrub-rebootogrub-set-defaulty le dará una lista de las entradas disponibles en el menú de arranque. Luego puede copiar el título que desee literalmente, no necesita usar un número.Desafortunadamente, por alguna razón mi instalación de Windows 7 no aparece de esa manera.
fuente
Otro awk one-liner que maneja submenús:
Este podría ser un pensamiento falible, porque \ t se usa para identificar entradas de submenú.
fuente
En OpenSuSE, grub2-once proporciona la identificación del menú que luego puede usar en otros comandos. Sin embargo, no hay mucha ayuda para los usuarios de Ubuntu.
fuente