我知道例如 GRUB 内核启动参数可以通过然后panic=-1
添加。sudo nano /etc/default/grub
sudo update-grub
我的应用程序附带一个setup.sh
shell 脚本,该脚本为用户设置了一切,因为我希望它能够被非技术型用户使用。无论如何,一个名为 的驱动程序intel_pstate
使我的应用程序无法运行,因此在检测到的设备上intel_pstate
,我希望将该setup.sh
文件添加intel_pstate=disable
到内核启动参数/启动行中。
我真的不想告诉用户自己编辑启动参数,而是在寻找一种方法,在 shell 脚本代码中添加intel_pstate=disable
启动参数,同时保留现有的启动参数。
我已经尝试过的方法
- 使用此代码(在 sudo bash shell 中):
cat /etc/default/grub > grub_bkp
echo "intel_pstate=disable" >> grub_bkp
echo gurb_bkp > /etc/default/grub
- 这不起作用,以以下 /etc/default/grub 文件为例:
GRUB_OTHER_STUFF=1
...
GRUB_CMDLINE_LINUX_DEFAULT='panic=-1 init=/my/cool/file.sh'
- 我的脚本完成后,它将如下所示,未成功应用内核启动参数:
GRUB_OTHER_STUFF=1
...
GRUB_CMDLINE_LINUX_DEFAULT='panic=-1 init=/my/cool/file.sh'
intel_pstate=disable
非常感谢你的帮助! :)
答案1
用于sed
在搜索模式后注入字符串GRUB_CMDLINE_LINUX_DEFAULT='
:
sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT='/&intel_pstate=disable /" /etc/default/grub
此后,还要确保脚本更新 GRUB 配置:
update-grub
整个脚本应该以 root 身份运行,因为上述命令需要 root 身份。