确定启动时使用了哪个 grub 菜单项

确定启动时使用了哪个 grub 菜单项

是否可以测试使用哪个菜单项来启动系统。如果内核选择不同,我可以在我的登录脚本中执行此操作

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

但依赖内核版本似乎不太好。我喜欢使用启动菜单来做这些事情,因为我无论如何都会使用启动菜单来选择内核/操作系统,因此启动后执行更多操作需要更多时间。

除了使用之外,我想到其他可能的解决方案uname

  • 调用启动菜单项时设置环境变量。如果可以的话就太好了

  • 我已经将 grub 配置为记住上次使用的条目。我可以从某处获取该条目吗?是的,我找到了文件/boot/grub/grubenv

答案1

以下是我找到的解决方案:

  • 该文件/boot/grub/grubenv包含所选条目的名称

所以我现在可以使用

if grep -q 'Whatever' /boot/grub/grubenv; then
#   do stuff    
fi

答案2

另一种方法,使用proc/cmdline,例如:

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

可以使用 来~/.bashrc设置其值所依赖的自定义环境变量。如果您认为这不足以识别它,proc/cmdline您可以添加自定义 Linux 启动参数。/boot/vmlinuz-3.13.0-37-generic

参考:

相关内容