Como posso escolher qual kernel GRUB2 deve carregar por padrão? Eu instalei recentemente um kernel linux em tempo real e agora ele carrega por padrão. Eu gostaria de carregar o normal por padrão.
Até agora, só consegui escolher o sistema operacional padrão .. e, por alguma razão, o /boot/grub.cfg
já pressupõe que eu quero carregar o rt-kernel e colocá-lo na entrada de menu genérica do linux (no meu caso, Arch Linux).
grub.cfg
correspondem apenas aos sistemas operacionais e não aos kernels.Respostas:
Eu acho que a maioria das distribuições transferiu kernels adicionais para o submenu de opções avançadas neste momento, como a TomTom descobriu que era o caso de seu Arch.
Eu não queria alterar minha estrutura de menu de nível superior para selecionar um kernel anterior como padrão. Encontrei a resposta aqui:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Para resumir:
1) Encontre a
$menuentry_id
_opção para o submenu:2) Encontre a
$menuentry_id_option
entrada de menu do kernel que você deseja usar:3) Comente seu grub padrão atual
/etc/default/grub
e substitua-o pelos submenus$menuentry_id_option
da etapa um e os kernel selecionados$menuentry_id_option
da etapa dois separados por>
.No meu caso, o modificado
GRUB_DEFAULT
é:4) Atualize o grub para fazer as alterações. Para o Debian, isso é feito da seguinte maneira:
Feito. Agora, quando você inicializa, o menu avançado deve ter um asterisco e você deve inicializar no kernel selecionado. Você pode confirmar isso com uname.
Mudar isso para o kernel mais recente é tão simples quanto comentar a nova linha e descomentar
#GRUB_DEFAULT=0
, e depois executar novamenteupdate-grub
.fonte
Depois de duas horas de luta, encontrei uma maneira muito mais fácil de conseguir isso. Eu apenas RTFM. ;)
Adicione duas linhas ao / etc / default / grub
Faça o
sudo update-grub
, reinicie, entre no menu do grub e selecione o item de menu ou submenu necessário. A escolha será salva e da próxima vez que o computador for inicializado automaticamente.fonte
Conforme mencionado nos comentários, você pode configurar o kernel padrão para inicializar usando o
grub-set-default X
comando, onde X é o número do kernel no qual você deseja inicializar. Em algumas distribuições, você também pode definir esse número editando o/etc/default/grub
arquivo e a configuraçãoGRUB_DEFAULT=X
e executandoupdate-grub
.O número é o índice de uma matriz de configurações de kernels / kernel mostrada no menu GRUB durante a inicialização, com 0 sendo a primeira entrada (a mais alta). Geralmente, você pode encontrar o número certo procurando
menuentry
linhas/boot/grub/grub.cfg
, assim:Você verá cada kernel listado com o nome que é mostrado no menu de inicialização do GRUB. O primeiro é 0, o segundo é 1 e assim por diante.
fonte
/boot/grub2/grub.cfg
.grub-set-default 9
e depoisgrub-update
reiniciei. Deixei o grub inicializar com o kernel padrão e ele ainda é inicializado com o 4.4.0-64-generic . Eu também tentei editar,/etc/default/grub
definirGRUB_DEFAULT=9
e executargrub-update
. Na reinicialização, nada muda, o sistema ainda é inicializado com o 4.4.0-64-genérico . Talvez eu tenha perdido alguma coisa, alguém pode me ajudar?Basta fazer uma
grep 'menuentry' /boot/grub/grub.cfg
lista de entradas adicionais que não estão relacionadas às versões reais do kernel ou do sistema operacional. Por exemplo, listaEu gostaria de propor uma pequena melhoria no método de busca nesse arquivo: use
awk
Com o comando abaixo e sua saída, você pode ver o
awk
código corresponder à versão real do sistema operacional e fornecer o número que você pode usar em/etc/default/grub
arquivo.Além de editar o
/etc/default/grub
arquivo manualmente, sugiro usarsed
. No comando abaixo, substitua X pelo número apropriado obtido no comando awk acima:sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT=X/g' /etc/default/grub; sudo update-grub
fonte
Acho que o jkt123 funciona para a maioria das distribuições. No entanto, para o Arch Linux, não funcionou, pelo menos não com os pacotes que tenho disponíveis.
Os índices que você pode definir
grub-set-default
correspondem apenas às entradas do menu principal. As opções do kernel estão no entanto em um submenu. Então, você move a entrada do kernel do submenu para o menu principal ou coloca a entrada no topo da lista de submenus e seleciona o submenu.My Grub Menu
Para poder inicializar o Kernel 2, você deve trocá-lo pelo Kernel 1 ou colocá-lo fora do submenu no mesmo nível do Arch Linux ou Windows. E defina o número padrão para um dos índices do menu principal. Por exemplo, no menu acima, "0" inicializa "Arch Linux" e "1" inicializa o Kernel 1.
Para alterar a hierarquia e trocar, abra
/boot/grub/grub.cfg
e mova a entrada que deseja mover. Uma entrada pode ser assimEntão você precisa aplicar suas alterações. No meu caso com
grub-mkconfig
. Mas isso pode variar de sistema para sistema.fonte
Tão recentemente quanto o CentOS-6.6, o grub.conf parecia que isso poderia ser editado manualmente para alterar a seleção padrão:
fonte
Extensão do Debian:
Em vez de mexer nos arquivos de configuração, crie uma pasta
/noot
(chame como quiser), deixe o kernel desejado, juntamente com os arquivos de configuração e de sistema correspondentes,/boot
e mova o restante para essa nova pasta.Corra
update-grub
.Verifique duas vezes a
/boot
pasta em que a sua versão do kernel e os arquivos de configuração e sistema correspondentes ainda estão lá (caso você tenha copiado algo que não deveria ter) e reinicie.fonte