Estou executando o GRUB 2.00 em um sistema Gentoo Linux.
Eu compilar meus próprios kernels manualmente, e então eu instalá-los em /boot
com make install
. Eu tenho os seguintes kernels no /boot
momento:
# ls -1 /boot/vmlinuz*
/boot/vmlinuz-3.7.4-gentoo-5
/boot/vmlinuz-3.7.4-gentoo-first
/boot/vmlinuz-3.7.4-gentoo-fourth
/boot/vmlinuz-3.7.4-gentoo-third
A execução grub2-mkconfig
resulta na seguinte saída:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.7.4-gentoo-third
Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth
Found linux image: /boot/vmlinuz-3.7.4-gentoo-first
Found linux image: /boot/vmlinuz-3.7.4-gentoo-5
done
Se agora eu ler o /boot/grub2/grub.cfg
arquivo resultante , aviso que as seguintes entradas foram criadas:
- Uma entrada padrão principal que inicia
vmlinuz-3.7.4-gentoo-third
- Um submenu com todas as outras entradas (incluindo as de recuperação), na mesma ordem que o
grub2-mkconfig
comando
O problema é que, no momento da inicialização, eu gostaria de carregar por padrão a quinta revisão do meu kernel ( vmlinuz-3.7.4-gentoo-5
), não a terceira (vmlinuz-3.7.4-gentoo-third
). Também prefiro não acessar o submenu para escolher o kernel correto para carregar.
Como posso mudar esse comportamento? Como posso dizer ao GRUB que quero executar a quinta revisão do meu kernel por padrão e não a terceira revisão mais antiga? Em geral, como posso alterar a linha de entrada padrão para corresponder ao kernel desejado e não ao aparentemente aleatório escolhido pelo GRUB?
Eu também tentei colocar as seguintes linhas /etc/default/grub
:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
Isso não resolve o problema da maneira que desejo. Mas pelo menos o GRUB parece se lembrar do kernel mais recente do qual iniciei e o seleciona automaticamente no submenu. Só que não gosto de acessar o submenu.
-o /boot/grub2/grub.cfg
como arquivo de saída. O diretório/boot/grub/
ainda existe?Respostas:
Para selecionar uma entrada de menu no submenu "Opções avançadas", defina GRUB_DEFAULT = "1> 3". Agora você pode executar o grub2-mkconfig para gerar o arquivo de configuração do grub. Na próxima reinicialização, o vmlinuz-3.7.4-gentoo-5 deve inicializar.
Nota : Isso não altera a entrada padrão no menu grub, ou seja, a entrada padrão ainda indica a mesma entrada que você tem agora. Mas a imagem que será inicializada por padrão será a quarta imagem nas "Opções avançadas". Para tornar o vmlinuz-3.7.4-gentoo-5 como a entrada padrão no menu grub, a ordem das imagens deve ser tal que o vmlinuz-3.7.4-gentoo-5 seja a primeira imagem ao executar o grub2-mkconfig .
fonte
Se você possui um submenu no seu grub.cfg, use dois dígitos como este:
O primeiro é o índice do menu e o segundo é o índice do submenu.
Por exemplo, para inicializar a última entrada da configuração como esta:
você deveria usar:
e reinicie.
fonte
você também pode usar
GRUB_DEFAULT=saved
. Nesse caso, você usariaou se for apenas para a próxima inicialização:
fonte
Experimentar
Isso move todos os seus kernels não utilizados para um diretório de backup, agora:
Isso apenas adiciona opções
r5
ao seu menu. Após fazer isso, leia este este link e depois Reame todos os kernels no diretório algo backup diferente do vmlinuz se você insistir em mantê-losfonte
Com centos7 (ou RHEL7) e grub2:
O grub usa a entrada 'saved_entry' do grubenv como padrão para inicializar, extraia de /boot/grub2/grub.cfg:
para verificar o que é 'save_entry' agora é minha compilação:
para alterá-lo, por exemplo, para minha compilação de depuração:
fonte
O que eu fiz para alcançar o resultado desejado foi:
defina o
GRUB_DEFAULT=saved
descrito nagrub-set-default
ajudagrub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.
Defina o valor padrão
grub-set-default "1>2"
Ele cria um novo arquivo em / boot / grub chamado grubenv com as informações necessárias.
Depois, recrio o arquivo de configuração
grub-mkconfig > /boot/grub/grub.cfg
E vi que a configuração foi alterada para usar o estado salvo:
if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi
fonte
Você pode definir a opção padrão por valor numérico. Se você definir
in
/etc/default/grub
Você definirá o padrão para a entrada do gentoo-5.
GRUB_DEFAULT
é o deslocamento zero, então 3 selecionará a quarta entrada como desejar.fonte
GRUB_DEFAULT=3
como você disse e depois execute novamentegrub2-mkconfig
. Mas no momento da inicialização, a entrada padrão ainda évmlinuz-3.7.4-gentoo-third
.GRUB_SAVEDEFAULT=true
Não deve importar, mas não é necessário com números./etc/default/grub
arquivo.Suspeito que
grub2-mkconfig
classifique os kernels em ordem inversa, supondo que eles contenham principalmente números de versão monotonicamente crescentes. Então comece a escolher suas tags para se encaixar nessa convenção.fonte
mv esses arquivos de versão novos / não usados em / boot em um diretório de backup, por exemplo / boot / back initrd.img-3.13.0-xx-generic
vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-xx-generic
reinicie o sistema no modo de recuperação, escolha grub na caixa de diálogo de recuperação e tudo ficará bem.
é o método mais adequado, eu acho. Estou usando o ubuntu 14.04.
fonte
no ubuntu:
O grub-pc permitirá que você escolha qual menu.
consulte: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
fonte