Podemos conseguir isso usando o bloco de ambiente do Grub. .
O bloco de ambiente é armazenado em /boot/grub/grubenv
e esse arquivo é um pouco especial, tem um tamanho pré-alocado de 1024 bytes.
Não devemos editar este arquivo com um editor de texto, mesmo que você possa abrir esse arquivo com um editor de texto para exibir seu conteúdo.
Podemos editar /boot/grub/grubenv
com diferentes ferramentas:
Comando de terminal sudo grub-editenv [OPTION...] FILENAME COMMAND
, consulte também man grub-editenv
Menu-entrada-comando save_env [-f file] var
, veja detalhes no Manual GNU Grub
Se o arquivo /boot/grub/grubenv
não sair, você poderá criá-lo com
sudo grub-editenv /boot/grub/grubenv create
Teremos que criar algumas entradas de menu personalizadas, link
fornece informações úteis sobre como fazer isso. Edite /etc/grub.d/40_custom
para que fique assim:
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. # submenu 'Set boot default' { menuentry 'Set first entry as default' { set saved_entry=0 save_env saved_entry reboot } menuentry 'Set second entry as default' { set saved_entry=1 save_env saved_entry reboot } }
Se já tivermos entradas de menu personalizadas no arquivo, apenas anexamos as linhas após as linhas de comentário em nosso arquivo. Os comandos nas entradas de menu agem da seguinte forma:
set saved_entry set the environment variable saved_entry to the specified value. Save_env saved_entry stores the variable saved_entry in /boot/grub/grubenv. reboot reboot the machine
Além disso, precisaremos editar /etc/default/grub
, que contém a configuração básica do Grub. Novamente, no Manual do GNU Grub, encontraremos informações detalhadas .
Em /etc/default/grub
, precisamos alterar o valor de GRUB_DEFAULT
para GRUB_DEFAULT=saved
. Isso forçará o Grub a carregar a entrada de menu padrão de /boot/grub/grubenv
quando nós arrancarmos. Se você encontrar uma linha com GRUB_SAVEDEFAULT=true
, remova essa linha.
Para aplicar as alterações que fizemos no arquivo de configuração principal do Grub, /boot/grub/grub.cfg
, temos que executar sudo update-grub
.
Como próximo passo, corremos sudo grub-editenv - set saved_entry=0
em um terminal. Fazemos isso para evitar conflitos, quando o Grub for inicializado da próxima vez, o Grub procurará por saved-entry
em /boot/grub/grubenv
e é capaz de encontrá-lo.
Agora podemos reiniciar, quando o menu Grub aparecer, veremos o submenu adicionado na lista, abrimos e selecionamos uma das entradas. O Grub definirá saved_entry para o valor especificado, salve-o
para /boot/grub/grubenv
e, em seguida, reinicie. Grub-menu aparece novamente e veremos que o novo padrão é selecionado automaticamente.
Mais uma coisa para pensar
Em qual sistema operacional temos que fazer essas alterações? Temos duas distribuições Linux instaladas e ambas são enviadas com o Grub.
Com as informações de um Boot-Info-summary e o terminal-comando findmnt
, devemos ser capazes de identificar a distribuição
que detém e controla os arquivos de configuração. Nesta distribuição, temos que executar os passos acima.
Na outra distribuição, o Grub não é necessário e deve ser removido ou até purgado, apenas para evitar qualquer tipo de conflito.
Informações adicionais:
Testei isso no meu sistema com a versão do Grub 2.02~beta2-36ubuntu3.8
.