GRUB2: como lembrar a última escolha do grub

7

Atualmente, estou experimentando várias distros, por isso, quando inicializo meu laptop, tenho vários sistemas operacionais para escolher. Normalmente, todas essas distros instalam grub2 e se localizam no topo da lista, então elas são as padrão para inicializar após a conclusão da instalação.

Mas Manjaro fez algo diferente. Ele instalou alguma versão do grub2 que lembraria qual distro eu inicializei da última vez e continuei inicializando aquela (após a reinicialização) até que eu selecionei outra (e então inicializaria aquela e assim por diante) .

Eu imaginei isso? Manjaro realmente faz isso? Se sim, como posso instalar essa versão de grub no meu sistema? Felicidades.

Este é o meu arquivo /etc/grub.d/40_custom :

#!/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.

e este é o meu arquivo /etc/default/grub :

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR='lsb_release -i -s 2> /dev/null || echo Debian'
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
    
por Gabriel 07.03.2013 / 14:29

2 respostas

7

De acordo com o manual do GRUB :

‘GRUB_DEFAULT’

.................

If you set this to ‘saved’, then the default menu entry will be that saved by ‘GRUB_SAVEDEFAULT’, grub-set-default, or grub-reboot.

‘GRUB_SAVEDEFAULT’

If this option is set to ‘true’, then, when an entry is selected, save it as a new default entry for use by future runs of GRUB. This is only useful if ‘GRUB_DEFAULT=saved’; it is a separate option because ‘GRUB_DEFAULT=saved’ is useful without this option, in conjunction with grub-set-default or grub-reboot. Unset by default. This option relies on the environment block, which may not be available in all situations (see Environment block).

Você deve adicionar:

GRUB_DEFAULT=saved

e

GRUB_SAVEDEFAULT=true

para o seu /etc/default/grub . Além disso, se você estiver usando arquivos de menu personalizados, como /etc/grub.d/40_custom , deverá adicionar a opção

savedefault

para o menuentry / menuentries nesse arquivo. Após essa atualização, o GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

ou

update-grub

Se você tiver várias distros instaladas, verifique se está configurando e atualizando o GRUB ativo .

    
por 07.03.2013 / 20:15
0

Eu estava tendo problemas com isso usando o Arch como um convidado do VirtualBox. A questão acabou por ser o meu uso do LVM.

Mais uma vez, no Manual do GRUB :

13.2 O bloco de ambiente do GRUB

Geralmente, é útil lembrar-se de uma pequena quantidade de informações de uma inicialização para a próxima. Por exemplo, você pode querer definir a entrada de menu padrão com base no que foi selecionado na última vez. O GRUB deliberadamente não implementa suporte para gravar arquivos a fim de minimizar a possibilidade de o gerenciador de inicialização ser responsável pela corrupção do sistema de arquivos, portanto, um arquivo de configuração do GRUB não pode simplesmente criar um arquivo da maneira normal. No entanto, o GRUB fornece um “bloco de ambiente” que pode ser usado para salvar uma pequena quantidade de estado.

O bloco de ambiente é um arquivo de 1024 bytes pré-alocado, que normalmente vive em / boot / grub / grubenv (embora você não deva assumir isso). No momento da inicialização, o comando load_env (consulte load_env) carrega variáveis de ambiente a partir dele e o comando save_env (consulte save_env) salva variáveis de ambiente nele. De um sistema em execução, o utilitário grub-editenv pode ser usado para editar o bloco de ambiente.

Por motivos de segurança, esse armazenamento só está disponível quando instalado em um disco simples (sem LVM ou RAID) , usando um sistema de arquivos sem checksum (sem ZFS) e usando funções BIOS ou EFI ( sem ATA, USB ou IEEE1275).

O grub-mkconfig usa esse recurso para implementar o "GRUB_SAVEDEFAULT" (consulte Configuração simples).

    
por 14.08.2016 / 11:05