从GRUB中删除upstart选项

对于我在15.04安装中使用的每个内核,我在GRUB中有三个选项:

  • 正常(系统)
  • 暴发户
  • 复苏

如何删除所有内核的upstart选项?

有几种方法你可能想要接近这个,我尽可能地完成并希望其中一个解决你的问题。

需要它吗?

在最高至少16.04的系统上, 是的 , 如果要登录,则需要Upstart 。

但如果你完全确定你根本不需要暴发,只需卸载它:

 sudo apt-get purge upstart 

这将导致它从菜单中自动删除

如果您需要新手(可能是依赖它的东西)并希望它仍然存在而不是启动您的系统,您可以通过编辑grub配置文件来摆脱条目管理。 有两种方法可以解决这个问题(第一种方法是两者中更危险的方法)。

临时搬迁

您可以编辑/boot/grub/grub.cfg以进行TEMPORARY删除(使用grub-mkconfig进行重新生成将取消此更改)。 删除带有名称Ubuntu ....... (upstart) { .. many lines .. }的menu_entry块。 1

首选去除

由于/etc/grub.d/10_linux模板文件中的单个变量而生成恼人的upstart条目,这是您应该编辑的。 有问题的变量名为SUPPORTED_INITS ,并且设置得非常接近文件的开头。 如果你想摆脱对启动新手的支持,你必须从这里删除它。

改变这个:

 SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" 

对此:

 SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd" 

然后,您需要从刚编辑的模板重建引导配置文件1

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

备份您的更改

进行这些更改时,请备份要更改的文件,并将其放在安全的位置(如~/Documents目录或其他位置),以确保包管理器操作不会意外删除它。 如果这工作太多,只需复制你正在更改的行,并将其注释掉(当然在grub.cfg的情况下, grub-mkconfig会在下次运行时覆盖这些更改。


1更改后应始终检查脚本以validation脚本是否可以运行。 您可以使用grub-script-check /boot/grub/grub.cfg确保在编辑或生成新脚本之后脚本中没有语法错误,并且肯定在重新启动之前。

Grub Customizer怎么样? 我用它来切割Grub并且从来没有遇到任何问题。 好吧,实际上我曾经有过一次,然后向作者询问了这个问题,并且得到了很快的答案。