Hice esta configuración debido a un error de actualización del Kernel:
GRUB_DEFAULT = 4
en/etc/default/grub
De lo que ejecuté
sudo setup-grub
Sin embargo, no funcionó. Mi versión deseada es 4.2.0-16-genérica, porque 4.2.0-18 y 4.2.0-17 (que en realidad no figuran en la lista) no funcionan. En la lista, 4.2.0-16 ocupa el cuarto lugar.
Cuando no funcionó, probé esto:
GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"
y
sudo setup-grub
sin embargo, todavía no funcionó y abrió una versión del kernel que no funcionaba. Actualmente sólo puedo acceder a 4.2.0-16 manualmente a través de las opciones avanzadas de Ubuntu, pero quiero que se cargue automáticamente. ¿Qué solución me recomendarías?
Las dpkg --list | grep linux-image
salidas:
ii linux-image-extra-4.2.0-16-generic 4.2.0-16.19 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-17-generic 4.2.0-17.21 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-18-generic 4.2.0-18.22 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-generic 4.2.0.18.20 amd64 Generic Linux kernel image
como las últimas 4 salidas (solo para Ubuntu 15.10 que contiene Kernel 4.2.0).
Respuesta1
Debe utilizar los ID de las submenu
líneas correspondientes menuentry
.
Nota "Opciones avanzadas para Ubuntu" es un submenu
, necesitas usar su ID.
Corrergrep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg
Por ejemplo si la salida es:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
La configuración correcta sería:
GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"
Tenga en cuenta que también puede utilizar una numeración basada en 0, pero tenga en cuenta las entradas del submenú:
GRUB_DEFAULT="1>3"
No olvides correr update-grub
al final.
Respuesta2
Haga una copia de seguridad de su comida actual.
sudo cp /etc/default/grub /etc/default/grub.bak
Ahora, abre el archivo.
sudo gedit /etc/default/grub
Abra otra terminal y escriba:
cat /boot/grub/grub.cfg | grep 4.2.0-16
Verás una línea como esta:
entrada de menú 'Ubuntu, con Linux 4.2.0-16-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-18-generic-advanced-esx5367c-b4ug -19sd-v6j8-ty2hj01ui3kj' {..........
Copia esta línea y pégala:
EDITADO DE:
GRUB_DEFAULT="gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
EDITADO PARA:
GRUB_DEFAULT ="gnulinux-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98>gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
Guarda el archivo.
Ahora, escribe el comando:
sudo update-grub
Respuesta3
¡DE ACUERDO! Encontré la solución. Tuve que vincular un PPA al personalizador de grub.
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
Que yo:
sudo apt-get update
El siguiente paso es
sudo apt-get install grub-customizer
Después de eso, abro el personalizador de grub a través de unity dash y selecciono el kernel deseado desde allí y ¡tada! :)
Respuesta4
Pequeña función bash para enumerar todos los kernels de Ubuntu adecuados para insertar
GRUB_DEFAULT
en/etc/default/grub
MENUID=$( grep -E "^\\s*(submenu) " /boot/grub/grub.cfg | grep -oP "gnuli.*(?=')" )
grep '(?<=menuentry_id_option ).gnuli\S+' /boot/grub/grub.cfg -Po | \
sed "s@'@@g" |grep -vE 'recovery|simple|gnulinux-advanced' | sed "s@^@GRUB_DEFAULT=\"${MENUID}>@; s@\$@\"@"
Producción:
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-6.6.10-usb2-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-5.15.0-35-generic-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
Luego simplemente elija uno, péguelo, /etc/default/grub
ejecútelo update-grub
y reinicie.