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-image
saí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 submenu
e 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-grub
no final.
Responder2
Faça um backup do seu grub atual.
sudo cp /etc/default/grub /etc/default/grub.bak
Agora, abra o arquivo.
sudo gedit /etc/default/grub
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' {..........
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"
Salve o arquivo.
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_DEFAULT
em/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-grub
e reiniciar.