从 GRUB 菜单项运行脚本

Posted

技术标签:

【中文标题】从 GRUB 菜单项运行脚本【英文标题】:Run script from GRUB menu entry 【发布时间】:2019-08-30 09:37:07 【问题描述】:

我按照出色的指南 https://willhaley.com/blog/custom-debian-live-environment/ 创建了一张 Debian Live DVD。

我希望在选定的自动登录并运行脚本时畅游两个grub菜单。

    menuentry "Run Script 1" 
        linux /vmlinuz boot=live quiet nomodeset
        initrd /initrd
    

    menuentry "Run Script 2" 
        linux /vmlinuz boot=live quiet nomodeset
        initrd /initrd
    

当我以 root 身份自动登录时,如何从 grub 菜单项传递要运行的脚本的绝对路径?

/lib/live/mount/medium/scripts/script1.bash

要自动登录,我已修改 /lib/systemd/system/getty@.service 以使用上述菜单项以 root 身份自动登录。

【问题讨论】:

【参考方案1】:

使用自定义参数启动:

linux /vmlinuz .... my_dummy_param=/lib/live/mount/medium/scripts/script1.bash

然后稍后读取/proc/cmdline 并在您的登录外壳启动文件中解析它,例如。 .bashrc 用于 bash shell 或 .profile:

#!/bin/bash
. /proc/cmdline
echo "Running $my_dummy_param"
"$my_dummy_param"

【讨论】:

以上是关于从 GRUB 菜单项运行脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Grub 中添加菜单项以在命令行中启动 Ubuntu [关闭]

grub legacy练习 之 单用户模式修改root账户口令,并为grub菜单项设置密码保护功能

启动菜单没有linux启动选项

如何在菜单按钮上的其他文档中运行功能

修改Grub默认启动项

引入菜单项SQL脚本到解决方案的方法