GRUB_DEFAULT = _ não está funcionando corretamente

GRUB_DEFAULT = _ não está funcionando corretamente

Eu fiz esta configuração devido a um bug de atualização do Kernel:

GRUB_DEFAULT = 4

em/etc/default/grub

Do que eu executei

sudo setup-grub

No entanto, não deu certo. Minha versão desejada é 4.2.0-16 genérica, porque 4.2.0-18 e 4.2.0-17 (que na verdade não está listada) não funcionam. Na lista, 4.2.0-16 é o 4º.

Quando não funcionou, tentei isto:

GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"

e

sudo setup-grub

no entanto, ainda não funcionou e abriu uma versão do kernel que não funcionava. Atualmente só consigo acessar o 4.2.0-16 manualmente através das opções avançadas do Ubuntu, mas quero que ele carregue automaticamente. Que solução você me recomendaria?

As dpkg --list | grep linux-imagesaídas:

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 as últimas 4 saídas (apenas aquelas para Ubuntu 15.10 que contém Kernel 4.2.0).

Responder1

Você precisa usar os IDs das linhas submenue correspondentes menuentry.

Observação "Opções avançadas para Ubuntu"é um submenu, você precisa usar seu ID.

Corrergrep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg

Por exemplo, se a saída for:

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)' {

A configuração correta seria:

GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"

Observe que você também pode usar uma numeração baseada em 0, mas leve em consideração as entradas do submenu:

GRUB_DEFAULT="1>3"

Não se esqueça de correr update-grubno final.

Responder2

  1. Faça um backup do seu grub atual.

    sudo cp /etc/default/grub /etc/default/grub.bak

  2. Agora, abra o arquivo.

    sudo gedit /etc/default/grub

  3. Abra outro terminal e digite:

    cat /boot/grub/grub.cfg | grep 4.2.0-16

    Você verá uma linha como esta:

    menuentry 'Ubuntu, com 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' {..........

  4. Copie esta linha e cole:

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"

  1. Salve o arquivo.

  2. Agora, digite o comando:

    sudo update-grub

Responder3

OK! Eu encontrei a solução. Tive que vincular um PPA ao grub-customizer.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

Do que eu fiz:

sudo apt-get update

O próximo passo é

sudo apt-get install grub-customizer

Depois disso eu abro o grub-customizer através do Unity Dash e seleciono o kernel desejado a partir daí e tada! :)

Responder4

Pequena função bash para listar todos os kernels do Ubuntu adequados para inserção GRUB_DEFAULTem/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@\$@\"@"

Saída:

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"

Em seguida, basta escolher um e colar /etc/default/grub, executar update-grube reiniciar.

informação relacionada