新闻详情

新闻详情

首页 / 资讯中心 / 详情

GRUB_TIMEOUT详解:让Ubuntu双系统开机引导菜单无限等待

发布时间:2026/9/26 7:30:17来源:尧图网络
GRUB_TIMEOUT详解:让Ubuntu双系统开机引导菜单无限等待
如果你装过 Windows 和 Ubuntu 的双系统应该对这样一个画面不陌生按下电源键屏幕上还亮着主板 Logo你刚从椅子上站起来准备倒杯水几秒之后 GRUB 菜单已经自己倒计时结束直接钻进了默认系统。手稍微慢一点想切系统就得重新启动一次。这种菜单一闪而过的问题本质就是 GRUB 引导等待时间太短造成的。让 Ubuntu 在开机引导阶段停住不动最直接的做法就是把 GRUB_TIMEOUT 设为 -1也就是无限等待。这篇内容就围绕 GRUB_TIMEOUT 这个核心参数展开适合双系统用户、常做系统维护的人以及经常在虚拟机里安装 Ubuntu 又需要进高级选项的开发者。我会把关联参数、完整操作步骤、验证方法和常见坑一起讲透避免你照着教程改完却发现完全没生效。1. 先搞清楚 GRUB 的超时机制再动手改配置1.1 GRUB_TIMEOUT 到底管哪一段等待电脑的启动流程拆开来看大概是固件BIOS/UEFI找引导程序引导程序加载操作系统内核内核再接管硬件。GRUB 就是那个引导程序。它显示一个菜单列出本机可启动的操作系统或内核版本然后等你选择。GRUB_TIMEOUT 这个参数管的就是 GRUB 在菜单界面停留的时间。Ubuntu 的 GRUB 配置默认写在 /etc/default/grub 里。我用的是 22.04 LTS打开看大概是GRUB_DEFAULT0 GRUB_TIMEOUT_STYLEhidden GRUB_TIMEOUT10GRUB_TIMEOUT10 的意思是10 秒内没按键GRUB 就自动执行默认项。这就解释了为什么开机后你不去碰键盘最终一定会进到某个系统里。你真正要改的就是这一行。很多人会把 /etc/default/grub 和 /boot/grub/grub.cfg 搞混。前者是配置源文件给人看的后者是 GRUB 真正读取的配置文件给机器执行的。前者改动后不会直接生效必须经过重新生成之后后者才会更新。这个机制是理解所有 GRUB 配置的基础如果不搞懂后面每一步都容易踩坑。1.2 为什么改了 /etc/default/grub 以后必须重新生成配置我第一次接触 GRUB 时也犯过这个错手动修改 /boot/grub/grub.cfg 里的 timeout改完重启确实生效了但过段时间某个软件更新自动执行了 update-grub我的改动就消失了还以为被系统重置了。后来才明白grub.cfg 是 grub-mkconfig 这类工具自动生成的里面有大量由脚本拼出来的菜单条目。你直接改它下次内核更新、软件包更新、或者你手动运行 update-grub都会被覆盖掉。正确的姿势是只改 /etc/default/grub 这个原料然后再运行生成命令让它把新参数翻译进 grub.cfg。Ubuntu 里最常用的生成命令是sudo update-grubupdate-grub 本质上就是执行 grub-mkconfig并把输出写到 /boot/grub/grub.cfg。你手动跑一次和内核升级时自动跑一次效果一样。这也是为什么很多教程反复强调改完 default 文件必须执行这一步不然重启后还是旧参数。1.3 -1、0、正数三种取值各自的含义GRUB_TIMEOUT 的值就那么几种但含义差别很大取值效果常见用途-1无限等待菜单一直停住直到你按键选择双系统切换、维护排错、临时调试0不等待直接启动默认系统单系统开机快速进入能少等几秒正整数等待 N 秒超时后自动启动默认系统绝大多数默认配置比如 5、10、30最关键的一点是0 不是无限等待而是完全不等待。要是你本意是让菜单一直等着却把值填成了 0开机后会直接进默认系统菜单连看都看不到一眼。我把 -1 记成负数等于倒着数永远数不到头这样印象就深了。另外GRUB_TIMEOUT_STYLE 也要留意。它决定菜单的显示方式menu 是常规菜单hidden 是隐藏菜单等超时直接进默认项countdown 是只显示倒计时数字。如果只想用无限等待建议把 GRUB_TIMEOUT_STYLE 明确设为 menu否则你可能把 -1 设进去了屏幕上却看不到菜单或者卡在一个不上不下的半隐藏界面看起来很像是死机了。2. 完整操作链路备份、改参数、生成引导配置、重启验证2.1 备份配置防止手滑改引导配置属于小改动大风险的操作。虽然只是改一个数字但万一手滑把文件里其他内容破坏了系统可能起不来。我习惯先备份sudo cp /etc/default/grub /etc/default/grub.bak觉得不够稳妥的话把已生成的 grub.cfg 也备份一份sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak备份不是形式主义。我曾经在一台老机器上调 GRUB 主题结果配置文件里语法出了问题update-grub 直接报错幸好有备份一条 cp 命令就恢复了。有备份兜底后面再怎么折腾都不慌哪怕改出一个进不了系统的坏配置也能在 Live 环境里把备份覆盖回去。2.2 修改 /etc/default/grub 里的 GRUB_TIMEOUT用你习惯的编辑器打开sudo nano /etc/default/grub找到GRUB_TIMEOUT10这一行改成GRUB_TIMEOUT-1同时把 GRUB_TIMEOUT_STYLE 设为 menuGRUB_TIMEOUT_STYLEmenu如果你打开文件后发现并没有 GRUB_TIMEOUT_STYLE 这一项可以自己加一行。配置文件的语法就是参数名值# 开头是注释。加在哪一行都可以只要别插在别的参数中间。这里补充一个我踩过的坑如果 /etc/default/grub 里还留着老版本 Ubuntu 常见的 GRUB_HIDDEN_TIMEOUT0这行参数会和 GRUB_TIMEOUT 打架。GRUB_HIDDEN_TIMEOUT 是老系统用来隐藏菜单的它一旦生效你设置的 GRUB_TIMEOUT 可能根本不会按预期工作。遇到这行建议直接注释掉或者也改成 -1保证菜单出现 无限等待这个组合成立。具体原因我在第 4 节展开细说。2.3 生成新配置update-grub 干了什么退出编辑器后执行sudo update-grub正常情况下你会看到类似下面的输出Sourcing file /etc/default/grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.15.0-xx-generic Found initrd image: /boot/initrd.img-5.15.0-xx-generic Found Windows Boot Manager on /dev/nvme0n1p1 done如果你用的是 Fedora、RHEL 这类不是 Debian 系的发行版命令可能是sudo grub2-mkconfig -o /boot/grub2/grub.cfg之所以强调一定要执行这一步是因为它负责把 /etc/default/grub 里的参数翻译成 grub.cfg 里的set timeout-1。不翻译你改的配置就是一个躺在源文件里的字符串引导程序根本读不到。生成之后我习惯先验证一下再重启grep set timeout /boot/grub/grub.cfg看到set timeout-1就说明新参数已经进入最终配置了。这一步花不了几秒钟却能把改了没生效的坑挡在重启之前。2.4 重启后怎么确认生效执行sudo reboot重启后GRUB 菜单应该长期停在屏幕上不会再自己倒计时。屏幕底部一般会显示类似 Press any key to continue 的提示或者直接高亮默认菜单项等你按键。此时你可以什么都不做等几分钟菜单还在说明无限等待生效按方向键上下移动高亮项按回车进入所选系统按 e 进入编辑模式临时改启动参数适合排错时加 nomodeset 或 single。我在虚拟机里做验证比较多习惯把菜单停留时间作为一项基本测试。改完 -1 后启动到 GRUB 界面故意离开一会儿回来发现它还在原地这基本就说明配置到位了。如果一眨眼就进了系统那就是下面的坑位之一没跑。3. 无限等待适合谁双系统、维护机和临时调试场景3.1 双系统用户不用再跟倒计时抢时间我自己主力桌面就是 Windows Ubuntu 双系统。以前 GRUB_TIMEOUT 默认是 10 秒看起来够用但实际情况是开机时人往往不在电脑前比如去倒水、接电话回来时系统已经进了 Windows而你想用的其实是 Ubuntu或者你手速慢刚从锁屏界面切换过来菜单已经过去了。把等待时间改成 -1 之后这个问题迎刃而解GRUB 菜单会在那里一直等你你想好进哪个系统再按回车。唯一要适应的变化是——重启后系统不会自己往下走了必须人工选择一次。对双系统用户来说这根本不是麻烦反而是一种掌控感。顺便说一句热搜里常见双系统出现 grub 如何解决或windows进入grub。如果是双系统的正常切换问题本质不是解决 GRUB而是决定默认进哪个系统。GRUB_TIMEOUT 控制的是等多久GRUB_DEFAULT 控制的才是默认进哪个。两者别混在一起。你如果想让默认进 Windows可以把 GRUB_DEFAULT 改成 Windows Boot Manager 对应的菜单序号。具体序号跟你的菜单顺序有关可以在 GRUB 界面里用方向键确认第几个是 Windows再回去改。3.2 维护与调试留足决策窗口更省心无限等待最值钱的场景其实是系统维护和排错。我遇到过一次 Ubuntu 更新显卡驱动后进了黑屏开机后 GRUB 菜单一闪而过连按 e 的机会都没有。最后只能靠 U 盘进 Live 系统修。打那以后凡是可能要排错的机器我都会先把 GRUB_TIMEOUT 调成 -1。有了无限等待你可以在 GRUB 菜单里做这些事进入高级选项选 recovery mode修复依赖或重置密码按 e 临时编辑内核启动参数加 nomodeset、single、acpioff 之类的参数排查问题内核版本出了问题回退到上一个可用内核从 Windows 更新完想回 Linux或反过来。这些操作有一个共同点都需要在菜单出现的那一刻做出选择。如果等待时间只有 2 秒、5 秒手就必须要快排错变成了拼反应速度体验非常糟糕。改成无限等待后你可以慢慢看菜单项想清楚再进这个优势在紧急故障处理时尤其明显。3.3 一个诚实的反面建议服务器别盲目改成无限无限等待不是万能的它有一个明显的副作用系统不会自动继续启动。如果一台服务器某次重启后没人去按回车它就会一直停在 GRUB 菜单里。家里个人电脑无所谓机房里的服务器可不敢这么干。半夜机房断电重启机器卡在引导菜单直到第二天早上服务就断了整整一夜。所以我个人用下来有一条经验个人 PC、测试虚拟机改成 -1 没问题生产环境、无人值守服务器尽量别用 -1。真想留一点操作空间折中的配置是GRUB_TIMEOUT30 GRUB_TIMEOUT_STYLEmenu等 30 秒足够做大多数选择也不会长时间卡住。如果有自动化批量重启需求甚至可以考虑 GRUB_TIMEOUT0让机器最快速度回到系统里配合带外管理或串口控制台来做干预。选择等待时间之前先问一句这台机器重启后一定会有人盯着屏幕吗答案是否定的就别用 -1。提示生产服务器临时需要 GRUB 菜单时可以在超时前的最后几秒按任意键中断倒计时不必把默认值改成无限等待。这样平时不影响自动启动需要时又能停下来。4. 改了没生效常见坑位与完整排查思路4.1 坑一改错了文件或改完没重新生成这是最常见的两个原因而且经常同时出现。有的人直接在 /boot/grub/grub.cfg 里把set timeout10改成set timeout-1当时生效但下次内核升级后 update-grub 自动跑一遍又变回 10。有的人在 /etc/default/grub 里改好了但忘了执行 update-grub重启后等于没改。排查方法非常直接看最终产物grep set timeout /boot/grub/grub.cfg如果显示的还是 10 或 5说明改动没有进入最终配置。这时候分两步走先确认 /etc/default/grub 里的值是不是真的改成了 -1再执行sudo update-grub重新 grep 一遍。两步都做过还是不对再往下面的坑找。4.2 坑二GRUB_TIMEOUT_STYLE 和 GRUB_HIDDEN_TIMEOUT 在捣乱很多教程只说改 GRUB_TIMEOUT不提 GRUB_TIMEOUT_STYLE这会埋雷。Ubuntu 的默认配置里常有GRUB_TIMEOUT_STYLEhiddenhidden 的意思是把菜单藏起来。你设了GRUB_TIMEOUT-1如果 style 还是 hidden可能出现两种情况要么开机后根本不显示菜单需要手动按 Esc 或 Shift 才出来要么界面停在半隐藏状态视觉上像死机其实是 GRUB 在等你按键。无论哪种都会让人觉得改成无限也没用。解决办法把 style 改成 menuGRUB_TIMEOUT_STYLEmenu再说 GRUB_HIDDEN_TIMEOUT。老版本 Ubuntu 的默认配置里经常有GRUB_HIDDEN_TIMEOUT0 GRUB_HIDDEN_TIMEOUT_QUIETtrue这一对参数的作用是单系统环境下直接隐藏菜单倒计时为 0开机秒进系统。如果它们在生效你设置的 GRUB_TIMEOUT-1 很可能被架空。检查 /etc/default/grub看到这两个参数就注释掉或至少把 GRUB_HIDDEN_TIMEOUT 改成 -1并且确认生成后的 grub.cfg 里确实只有一个set timeout-1。多一条 timeout 相关指令就多一层混乱。4.3 坑三机器上有多套 GRUB 配置这个问题在 UEFI 多系统机器上尤其隐蔽。你运行 update-grub确实写好了当前系统的 /boot/grub/grub.cfg但开机时主板实际启动的可能是另一块硬盘上的引导项或另一个 ESP 分区里的 grubx64.efi。结果就是配置改了输出也验证了但开机走的根本不是这套引导。排查思路是先看固件启动项sudo efibootmgr -v输出里会列出当前 UEFI 启动项列表和 BootOrder。确认 Ubuntu 对应的引导项是否排在第一位以及它指向的是不是你在修改的那个分区。如果机器装过多个 Linux或者有人工创建过多个 ESP 分区这个坑就容易踩。还有一种场景是虚拟机里装 Ubuntu。VMware、VirtualBox 这类环境虚拟磁盘比较干净一般不会出现多套 GRUB但如果你给虚拟机加过多个磁盘或者用克隆镜像也可能出现引导记录写在旧磁盘上的情况。改了不生效时别光盯配置先把启动顺序理清楚。4.4 通用排查方法直接查看生成的 grub.cfg 里到底写了什么遇到任何改不动、没生效的抱怨我的第一反应永远是 grep grub.cfg。因为 grub.cfg 才是 GRUB 真正执行的配置源文件、脚本逻辑都是过程最终结果在那里。常用验证命令grep -E set timeout|timeout_style /boot/grub/grub.cfg正常结果应该是set timeout-1 set timeout_stylemenu如果文件里没有这些内容说明 update-grub 并没有把参数写进去重点查源文件和命令输出。如果文件里有了但开机还是几秒就走完那就要考虑是不是主板 Fast Boot、Windows 快速启动在捣乱。Windows 快速启动默认开启时会让 Windows 的关机变成休眠的一部分重启后 UEFI 配置或引导流程可能被跳过或异常。想排除这个因素可以进 Windows 的电源选项里关闭快速启动再回 Ubuntu 这边重新验证。真到了连系统都进不去的时候别硬重启用 Ubuntu U 盘启动进入试用模式挂载原系统分区后 chroot 进去重新生成配置。大概步骤是sudo mount /dev/sdX /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt update-grub exit这个流程能解决大部分改坏引导导致进不去系统的问题。前提是 /dev/sdX 要换成你真正的根分区可以在 Live 环境里用 lsblk 确认。我在虚拟机里反复折腾 GRUB 的时候这套流程已经练熟了。5. 从无限等待延伸出去默认项、记住上次系统、菜单样式一起调5.1 让 GRUB 记住你上次的选择GRUB_DEFAULTsaved无限等待解决的是菜单别走的问题但它不解决每次都要手动选的问题。如果你双系统切换频繁同时又用着 -1每次开机都要操作一次时间长了也会烦。解决方案是让 GRUB 记住你上次的选择。在 /etc/default/grub 里加这两行GRUB_DEFAULTsaved GRUB_SAVEDEFAULTtrue配合 GRUB_TIMEOUT-1 使用时效果是这样的每次开机菜单都在默认高亮的是你上次进入的那个系统。你只需要按一下回车或者直接在菜单停留时等它——虽然是无限等待但对着高亮项回车一下就够了。这个组合对Windows Ubuntu 双系统主力机尤其好用。第一次手动选了 Windows下次开机高亮就在 Windows 上之后你在 Ubuntu 里重启GRUB 又记住了 Ubuntu。机器会越来越贴合你的使用习惯。5.2 不想无限等用 30 秒替代 -1 是更稳的折中方案无限等待是有代价的代价就是没人按键就不走。如果你不想承担这个代价又觉得默认 10 秒太短30 秒是个很好的平衡点。设置成 30 秒后GRUB 会显示倒计时你可以从容地做出选择没人干预时 30 秒后自动进入默认系统。服务器、下载机、本地测试机都适用。两种方案的取舍大概是这样场景GRUB_TIMEOUT理由个人双系统主力机-1不急着启动优先保证选择权虚拟机测试环境-1 或 30经常进高级选项排错生产服务器30 或 0无人值守重启不能卡住单系统家用机0没人需要菜单直接进系统在实际使用中我一般是按这台机器有没有人会长时间离开来判断。家里 PC 用 -1办公机用 30 秒服务器用 0 或 30 秒灵活调整即可不一定非得所有人都跟风改成无限。5.3 其他发行版的等价操作Fedora、Deepin、麒麟GRUB 参数本身是通用的不同发行版的差异主要在生成命令上。Ubuntu、Debian、Linux Mint、Deepin、UOS、银河麒麟这类 Debian 系sudo update-grubFedora、RHEL、CentOS 这类 RPM 系sudo grub2-mkconfig -o /boot/grub2/grub.cfgArch 系sudo grub-mkconfig -o /boot/grub/grub.cfg修改的源文件基本都是 /etc/default/grubGRUB_TIMEOUT、GRUB_TIMEOUT_STYLE 这些关键字也通用。所以网上搜到麒麟系统进入 grub这类问题时处理方式和本文是一样的先确认是希望菜单等待、默认进哪个系统还是引导丢失需要修复。如果是正常启动但菜单等待时间不合适改 GRUB_TIMEOUT 就行如果提示 grub rescue那是另一个话题需要重建引导分区或恢复 GRUB 安装主要是启动文件路径的问题和本文讨论的等待时长不是一回事。最后再分享一个我个人的习惯改完任何 GRUB 配置我的动作永远是同一个顺序——先改 /etc/default/grub再跑 update-grub然后用 grep 验证 grub.cfg最后才重启。看似多了一步验证实际上省掉了无数次重启后发现没生效的往返。这套流程虽然不是唯一正解但我这几年用下来几乎没有在引导等待这件事上翻过车。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

DeepSeek R1-Lite-Preview 推理模型实测:用 TaoToken 统一 Key 跑通 OpenAI o1 对比配置 2026/9/26 9:53:14

DeepSeek R1-Lite-Preview 推理模型实测:用 TaoToken 统一 Key 跑通 OpenAI o1 对比配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
MCP 完整学习指南与 Spring AI 实战:从零搭建可复用的 MCP 服务端 2026/9/26 9:53:14

MCP 完整学习指南与 Spring AI 实战:从零搭建可复用的 MCP 服务端

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Windows 64位下MySQL 5.7安装全指南:下载、配置、排错一步到位 2026/9/26 9:53:14

Windows 64位下MySQL 5.7安装全指南:下载、配置、排错一步到位

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
STM32入门到实战:选型、开发环境与核心外设详解 2026/9/26 9:53:14

STM32入门到实战:选型、开发环境与核心外设详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Warp+MJWarp:用GPU并行重构MuJoCo物理仿真范式 2026/9/26 9:53:08

Warp+MJWarp:用GPU并行重构MuJoCo物理仿真范式

1. 项目概述:这不是“跑个仿真”那么简单,而是重构机器人训练的底层范式 你有没有试过在 MuJoCo 里训一个四足机器人?从单环境起步,调参数、看曲线、等收敛——一小时过去,agent 还在原地打转。再加个随机初始化、多个…

阅读更多 →
Atlas 300V部署YOLO全流程解析:推理卡选型与性能调优 2026/9/26 9:53:08

Atlas 300V部署YOLO全流程解析:推理卡选型与性能调优

搞AI推理这么久,只要提到Atlas,总有朋友问一句:这玩意儿到底是什么定位,能跑YOLO吗?那卡是不是真能当训练卡用?今天就把这几件事一次说清楚。我自己从Atlas 200 DK一路裸板玩到Atlas 300I,再到现…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉