Identifique qual item de menu do grub usado ao inicializar

1

É possível testar qual item de menu foi usado para iniciar o sistema. Se a escolha do kernel fosse diferente, eu posso, por exemplo, fazer isso no meu script de login

if uname -r | grep -q lowlatency; then
    jack-start
fi

Mas confiar em versões de lançamento do kernel é feio. Eu gosto de usar o menu de inicialização para essas coisas é que eu uso o menu de inicialização para escolher o kernel / sistema operacional de qualquer maneira, fazer mais após a inicialização leva mais tempo.

Possíveis soluções que pensei em usar além de uname

  • Defina uma variável de ambiente ao invocar a entrada do menu de inicialização. Se isso for possível, é muito bom

  • Eu configurei o grub para lembrar da última entrada usada. Posso obter qual entrada foi de algum lugar? Sim, encontrei o arquivo /boot/grub/grubenv

por user877329 19.10.2014 / 11:03

2 respostas

1

Aqui está uma solução que encontrei:

  • O arquivo /boot/grub/grubenv contém o nome da entrada escolhida

Agora eu posso usar

if grep -q 'Whatever' /boot/grub/grubenv; then
#   do stuff    
fi
    
por user877329 22.10.2014 / 10:27
1

Outra maneira, usando proc/cmdline , exemplo:

BOOT_IMAGE=/boot/vmlinuz-3.13.0-37-generic root=UUID=4c0c4c6d-708b-45b0-b9e9-a5e6a7de491e ro persistent quiet splash

É possível usar ~/.bashrc para definir uma variável de ambiente personalizada de que seu valor depende de proc/cmdline . Como você pode adicionar um parâmetro de inicialização personalizado do Linux se achar que /boot/vmlinuz-3.13.0-37-generic não é suficiente para identificá-lo.

Referência:

por user.dz 22.10.2014 / 11:16