补充说明
update-grub 是 Debian/Ubuntu 提供的包装脚本,内部调用 grub-mkconfig -o /boot/grub/grub.cfg,根据 /etc/default/grub、/etc/grub.d/ 下的脚本和已安装内核,重新生成 GRUB 的启动菜单。
修改内核启动参数(GRUB_CMDLINE_LINUX_DEFAULT)、默认启动项、超时时间或主题后,都必须执行它才会写入 grub.cfg。直接编辑 /boot/grub/grub.cfg 是错误做法,因为下次生成时会被覆盖。
执行需要 root 权限。它会调用 os-prober 探测其他操作系统,若不需要双系统菜单,可在 /etc/default/grub 中设置 GRUB_DISABLE_OS_PROBER=true 加快速度。RHEL 系的等价命令是 grub2-mkconfig -o /boot/grub2/grub.cfg。
语法
update-grub [选项]
选项
-o 文件:把配置写到指定文件而不是默认路径-h, --help:显示帮助
实例
# 修改 /etc/default/grub 后重新生成菜单
sudo update-grub
# 先修改内核启动参数
sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/' /etc/default/grub
sudo update-grub
# 查看生成结果
grep -E 'menuentry|linux ' /boot/grub/grub.cfg
# 把配置输出到自定义文件
sudo update-grub -o /tmp/grub.cfg