如何编写一个修改 Ubuntu 内核启动参数的 .sh 文件?

如何编写一个修改 Ubuntu 内核启动参数的 .sh 文件?

我知道例如 GRUB 内核启动参数可以通过然后panic=-1添加。sudo nano /etc/default/grubsudo update-grub

我的应用程序附带一个setup.shshell 脚本,该脚本为用户设置了一切,因为我希望它能够被非技术型用户使用。无论如何,一个名为 的驱动程序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 身份。

相关内容