除非按下键,否则如何隐藏 grub?

除非按下键,否则如何隐藏 grub?

我有 2 个操作系统:Windows 8 和 Kubuntu 16.04。Kubuntu 是我的主要操作系统。我希望我的笔记本电脑直接启动到 Kubuntu,除非我在启动过程中按下 SHIFT 键来显示 Grub 菜单。同样,我希望只有当我在启动过程中按下 SHIFT 或任何其他键时,grub 菜单才会显示操作系统列表。

我按照说明进行操作隐藏 GRUB2 菜单,除非您按住 Shift 键:如何实现这一点?但它并没有像我希望的那样工作。

我甚至不想感觉到 grub 在那里,所以需要以下值。

GRUB_HIDDEN_TIMEOUT=0.0
GRUB_TIMEOUT=0.0

显然,Linux 并没有像它所说的那样给予您自由。因为如果它给了,/etc/grub.d/30_os-prober 不会自行更改超时。

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

有没有什么简单的方法可以实现我想要的?提前谢谢。

编辑:

它不起作用。另外根据 info -f grub -n '简单配置'

'GRUB_HIDDEN_TIMEOUT'
     Wait this many seconds before displaying the menu.  If <ESC> is
     pressed during that time, display the menu and wait for input
     according to 'GRUB_TIMEOUT'.  If a hotkey associated with a menu
     entry is pressed, boot the associated menu entry immediately.  If
     the timeout expires before either of these happens, display the
     menu for the number of seconds specified in 'GRUB_TIMEOUT'             before
     booting the default entry.

     If you set 'GRUB_HIDDEN_TIMEOUT', you should also set
     'GRUB_TIMEOUT=0' so that the menu is not displayed at all unless
     <ESC> is pressed.

     This option is unset by default, and is deprecated in favour of the
     less confusing 'GRUB_TIMEOUT_STYLE=countdown' or
     'GRUB_TIMEOUT_STYLE=hidden'.

我设置了 GRUB_TIMEOUT=5 和 GRUB_HIDDEN_TIMEOUT=3,grub 菜单显示了... 3 秒!?

显然 grub 背后的人把它搞砸了。

答案1

你需要做:

GRUB_HIDDEN_TIMEOUT=5
GRUB_TIMEOUT=0 

然后,当您打开计算机时,按ESC进入启动菜单,否则计算机将以默认选择启动。

为了简单起见,你可以使用以下方法轻松更改这些值Grub 定制器

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

在选项卡中一般的, 点击高级设置,然后选择激活以下键并将值更新为:

GRUB_HIDDEN_TIMEOUT = 5
GRUB_TIMEOUT = 0

可选,要显示一个计数器,显示您可以按 的剩余秒数ESC,请设置:

GRUB_HIDDEN_TIMEOUT_QUIET = false

GRUB 设置对话框

答案2

要启用 GRUB 隐藏超时,请打开终端并执行:

sudo apt install gksu  

(如果尚未安装,可以选择使用 nano 编辑器)

gksudo gedit /etc/default/grub  

#从队伍前面移除#GRUB_HIDDEN_TIMEOUT=0

后面 那 行 字 准确 的 写法 是 : GRUB_HIDDEN_TIMEOUT=0.

保存更改并关闭文件 - 现在执行此命令:

gksudo gedit /etc/grub.d/30_os-prober

将超时时间从 10 更改为 0...

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

后面的内容正是:

if [ "\${timeout}" = 0 ]; then  
  set timeout=0

保存更改并关闭文件。

更新 GRUB 配置:

sudo update-grub  

重新启动系统...现在它应该直接启动到 Kubuntu。

相关内容