Ubuntu修改/禁用Grub2等待时间

最近装了Win+Linux双系统,由于平时用windows比较多,所以,启动项选择用了windows的BCD,使用诸如EasyBCD之类的可以轻松搞定。

然而Ubuntu自带了Grub2,每次选了Ubuntu启动后,还要再选一次启动。网上查了不少资料,很多很不靠谱,研究了一会儿,心得如下:

首先,不要听信网上有些野鸡网站随意转载的文章而尝试去修改 /boot/grub/grub.cfg 这个文件。这是完全没有用的,因为此文件是Grub根据另外的文件自动生成的,即使修改了,执行完 update-grub后,也会被改回去。

就我们现在的目的而言,正确的做法是去修改另外的文件: /etc/default/grub文件 和 /etc/grub.d/ 目录下的文件。

直观地看,第一个文件中有设置等待时间的参数:

GRUB_TIMEOUT=0

然而这样设定之后,update-grub并重启,会发现等待时间又回到了10秒。

研究 /boot/grub/grub.cfg 文件后发现这样几行代码:

set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=0
fi
### END /etc/grub.d/30_os-prober ###

显然,这意思就是如果我们设定的等待时间为0,就自动改成10。但是这个文件是生成的,修改了是没用的。这时注意看上述代码的最后一行,也就是说,这行代码的生成是由 /etc/grub.d/30_os-prober 决定的,那好办了,官方说的可以修改的文件中就包括 /etc/grub.d/ 目录下的文件。
打开 /etc/grub.d/30_os-prober 文件后,直接找到下面的代码:

set timeout_style=menu
if [ "\${timeout}" = 0 ]; then
  set timeout=10
fi

把10改成0即可。这样,配合 /etc/default/grub 中的修改,update-grub一下,重启,就会发现grub2已经不会再出现了。

=================有的同志可能无法理解正确的操作,步骤如下:
1,修改/etc/grub.d/30_os-prober中的timeout=10为timeout=0
2,将/etc/default/grub中的相关配置设置为GRUB_TIMEOUT=0
3,update-grub

你可能感兴趣的:(Linux)