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
É 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
Aqui está uma solução que encontrei:
/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
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: