双系统GRUB丢失修复指南:从原理到实战解决Ubuntu/Windows启动问题

发布时间:2026/8/5 22:20:38

双系统GRUB丢失修复指南:从原理到实战解决Ubuntu/Windows启动问题
1. 问题现象与根源剖析最近在技术社区和论坛里看到不少朋友在折腾完系统更新、硬盘分区调整甚至是断电重启后突然发现熟悉的GRUB菜单消失了。电脑一开机要么直接进了Windows仿佛Ubuntu从未存在过要么就是黑屏光标闪烁提示“No bootable device found”。这种“启动项丢失”的窘境确实让人心头一紧感觉辛苦搭建的双系统环境瞬间“蒸发”了。别慌这几乎是每一位Linux/Windows双系统用户的“必修课”。问题的根源十有八九出在引导加载程序Bootloader上。在典型的“Ubuntu后装于Windows”的双系统场景中Ubuntu的GRUB2引导程序通常会接管电脑的启动流程。它被安装在硬盘的EFI系统分区ESP或主引导记录MBR中负责在开机时呈现一个菜单让你选择进入Ubuntu还是Windows。当这个GRUB2因为某些原因被破坏、覆盖或配置失效时你就会遇到启动项丢失。导致这一问题的常见“元凶”有几个首先是Windows的系统更新特别是大版本更新它有时会“自作主张”地重写EFI分区中的引导文件用Windows Boot Manager覆盖掉GRUB其次是BIOS/UEFI固件设置的变动比如重置了BIOS、更改了启动顺序Boot Order或安全启动Secure Boot状态再者是磁盘分区表的改动例如用磁盘工具调整了ESP分区的大小或位置或者不小心格式化了某个关键分区最后GRUB自身的更新或安装失败也可能导致其配置文件损坏。理解这个背景至关重要它决定了我们修复时是去修复GRUB还是去调整BIOS设置或是修复分区表。接下来我们就从最紧急的现场处置开始。1.1 紧急处置如何先进入系统在GRUB菜单丢失的情况下我们的首要目标是先进入一个可操作的系统环境无论是Ubuntu Live CD/USB还是Windows恢复环境。方案一使用Ubuntu安装U盘推荐这是最通用、最强大的方法。你需要提前准备一个Ubuntu的安装U盘。开机时狂按F12、F2、Esc或Delete键因电脑品牌而异进入BIOS/UEFI启动菜单选择从U盘启动。进入Ubuntu安装界面后不要点击“安装Ubuntu”而是选择“试用Ubuntu”。这样你就进入了一个完整的、运行在内存中的Ubuntu临时系统可以访问终端和所有修复工具。这个环境是独立于硬盘系统的安全且功能齐全。方案二利用Windows恢复环境如果你的电脑还能直接启动到Windows那事情就简单了一半。你可以直接在Windows内进行操作。如果进不了Windows可以准备一个Windows安装U盘开机从U盘启动在安装界面选择“修复计算机” - “疑难解答” - “高级选项”即可进入Windows恢复环境。这里虽然不能直接修复GRUB但可以用于修复Windows自身的启动问题或者使用diskpart等命令查看分区状态为后续操作提供信息。注意在尝试任何修复操作前如果硬盘上有重要数据强烈建议通过Live USB环境先进行备份。你可以挂载硬盘上的分区将重要文件拷贝到移动硬盘或云存储中。数据无价谨慎操作。2. 修复前的关键侦察确认引导模式与分区布局在动手修复之前我们必须先摸清“敌情”电脑是传统的BIOSMBR引导还是现代的UEFIGPT引导硬盘的分区结构是怎样的这决定了我们修复GRUB的具体命令和操作路径。用错方法可能会雪上加霜。步骤1确认引导模式在Ubuntu Live USB的试用桌面打开终端CtrlAltT。输入以下命令ls /sys/firmware/efi如果这个目录存在并且里面有文件那么你的系统是UEFI模式启动的。如果提示“No such file or directory”那么你的系统是传统BIOSLegacy模式启动的。这是最关键的一步两种模式的修复流程有根本区别。步骤2查看磁盘分区情况接下来使用lsblk或fdisk命令查看硬盘分区。我更喜欢lsblk因为它更直观sudo lsblk -f或者sudo fdisk -l你需要重点关注以下几点找到你的系统硬盘通常是sda或nvme0n1。识别EFI系统分区ESP在UEFI模式下必须有一个分区其文件系统类型为vfatFAT32并且通常有ESP或boot的标签。它的挂载点MOUNTPOINT在正常系统中应该是/boot/efi。记下它的设备名比如/dev/nvme0n1p1。识别Ubuntu的根分区/和/boot分区如果有找到文件系统类型为ext4也可能是btrfs的分区这很可能就是你的Ubuntu根分区。如果/boot是独立分区它通常也是一个较小的ext4分区。记下分区号例如你的Ubuntu根分区可能在/dev/nvme0n1p5ESP分区在/dev/nvme0n1p1。步骤3尝试挂载原有系统为了修复GRUB我们需要将硬盘上原有的Ubuntu系统“嫁接”到Live USB环境中。假设你的Ubuntu根分区是/dev/nvme0n1p5ESP分区是/dev/nvme0n1p1。# 创建挂载点 sudo mkdir -p /mnt/ubuntu sudo mkdir -p /mnt/ubuntu/boot/efi # 如果/boot/efi是单独分区则创建 # 挂载根分区 sudo mount /dev/nvme0n1p5 /mnt/ubuntu # 挂载ESP分区UEFI模式必须 sudo mount /dev/nvme0n1p1 /mnt/ubuntu/boot/efi # 如果/boot是独立分区也需要挂载假设是/dev/nvme0n1p6 # sudo mount /dev/nvme0n1p6 /mnt/ubuntu/boot # 挂载必要的虚拟文件系统为chroot环境做准备 sudo mount --bind /dev /mnt/ubuntu/dev sudo mount --bind /dev/pts /mnt/ubuntu/dev/pts sudo mount --bind /proc /mnt/ubuntu/proc sudo mount --bind /sys /mnt/ubuntu/sys现在我们已经为修复操作搭建好了舞台。3. 核心修复操作重装与配置GRUB2侦察完毕舞台搭好现在进入核心修复环节。我们将使用chroot命令“切换根目录”到被挂载的原系统然后在那个环境中重新安装和配置GRUB。步骤1进入chroot环境sudo chroot /mnt/ubuntu执行成功后你的命令行提示符可能会发生变化意味着你现在终端里的根目录/已经指向了硬盘上的原Ubuntu系统而不是Live USB了。步骤2根据引导模式执行修复情况AUEFI模式在UEFI模式下GRUB安装分为两步将引导文件安装到ESP分区并在主板NVRAM中创建引导项。# 首先确保efibootmgr工具可用它可以管理UEFI启动项 apt update apt install --reinstall grub-efi-amd64 efibootmgr -y # 重新安装GRUB到ESP分区。这里的/dev/nvme0n1是磁盘设备不是分区 grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idUbuntu --recheck # 更新GRUB配置这一步会扫描所有分区自动发现Windows和其他系统并生成/boot/grub/grub.cfg update-grubgrub-install命令的关键参数解释--targetx86_64-efi指定为64位UEFI平台。--efi-directory/boot/efi指定ESP分区的挂载点。--bootloader-idUbuntu这个名称会出现在主板的启动菜单里。--recheck强制重新检查设备避免缓存问题。执行update-grub后终端会输出扫描到的系统列表你应该能看到类似“Found Windows Boot Manager on /dev/nvme0n1p1”的信息这表示它成功找到了Windows。情况B传统BIOSLegacy模式在传统模式下GRUB被安装在硬盘的主引导记录MBR或某个分区的引导扇区中。# 重新安装GRUB到硬盘的MBR。同样/dev/sda是磁盘设备。 grub-install --targeti386-pc --recheck /dev/sda # 更新GRUB配置 update-grub这里的/dev/sda请替换为你的实际系统硬盘设备名。步骤3退出chroot并清理操作完成后按顺序退出并卸载挂载点# 退出chroot环境 exit # 卸载虚拟文件系统 sudo umount /mnt/ubuntu/dev/pts sudo umount /mnt/ubuntu/dev sudo umount /mnt/ubuntu/proc sudo umount /mnt/ubuntu/sys # 卸载ESP和根分区 sudo umount /mnt/ubuntu/boot/efi sudo umount /mnt/ubuntu # 移除挂载点目录可选 sudo rmdir /mnt/ubuntu步骤4重启验证现在可以重启电脑了。重启前拔掉Ubuntu安装U盘让电脑从硬盘启动。理论上你应该能看到久违的GRUB菜单里面包含了Ubuntu和Windows的选项。实操心得grub-install命令的目标设备是整个硬盘如/dev/sda,/dev/nvme0n1而不是某个分区如/dev/sda1。这是新手最容易犯的错误之一如果指定了分区会导致安装失败或引导不完整。4. 进阶问题与深度修复方案如果上述“标准流程”行不通你可能遇到了更棘手的情况。别担心我们还有备选方案。4.1 方案B使用Boot-Repair工具自动化修复Boot-Repair是一个图形化的傻瓜式修复工具被誉为“GRUB修复神器”。它在Live USB环境中非常有用。# 在Ubuntu Live USB的终端中添加仓库并安装 sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair安装后在应用菜单里找到“Boot-Repair”并运行。点击“Recommended repair”推荐修复按钮工具会自动检测你的系统并尝试修复。它会执行一系列复杂的命令包括重装GRUB、修复分区表、重建主引导记录等并将操作日志上传到一个网站供你查看。什么情况下用它你对命令行不熟悉希望一键修复。标准手动修复流程失败原因不明。系统提示分区表或文件系统有错误。注意事项Boot-Repair虽然强大但它是“黑盒”操作。在极其复杂的多硬盘、多系统环境下它有极小概率会做出不符合你预期的调整比如调整了分区标志。因此对于有经验的用户手动修复更可控对于新手或紧急情况Boot-Repair是救星。4.2 方案C调整UEFI固件设置有时候GRUB本身没问题只是主板“忘记”了它。重启电脑进入UEFI/BIOS设置界面通常是按F2、Del键。找到“启动”Boot选项。检查“启动顺序”Boot Order。确保你的硬盘例如“Ubuntu”或“UEFI OS”位于启动列表的首位而不是“Windows Boot Manager”。如果列表里没有Ubuntu或GRUB的选项可以寻找“添加启动选项”Add Boot Option功能。你需要手动添加一个启动文件路径通常位于ESP分区下的\EFI\Ubuntu\grubx64.efi或shimx64.efi如果开启了安全启动。关于“安全启动”Secure Boot这是一个常见的坑。尝试关闭Disable安全启动然后保存退出重启。很多第三方引导程序包括某些版本的GRUB与安全启动兼容性不佳。如果关闭后能成功引导你可以再研究如何让GRUB在安全启动下工作通常需要安装shim-signed包并启用MOK。4.3 方案D修复Windows引导并重新建立双引导如果你的目标是恢复Windows引导或者想改用Windows Boot Manager来管理双系统不推荐因为Windows的引导菜单对Linux不友好可以这样做使用Windows安装U盘启动进入“修复计算机” - “疑难解答” - “命令提示符”。执行以下命令修复Windows引导bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd这会将引导权交还给Windows。之后你需要再从Ubuntu Live USB启动使用chroot环境仅执行update-grub命令不执行grub-install然后将生成的grubx64.efi文件手动拷贝到Windows的ESP分区并通过bcdedit命令在Windows引导菜单中添加一个指向它的条目。这个过程相对繁琐稳定性也不如GRUB直接管理。5. 避坑指南与长效维护策略修复成功固然欣喜但如何避免问题再次发生以及让双系统更稳定才是更重要的。避坑点1Windows更新后的预防性操作经验告诉我们大型Windows更新如功能更新是GRUB丢失的头号杀手。一个有效的预防措施是在进行重大Windows更新前在Ubuntu中提前更新GRUB并备份其配置文件。# 在Ubuntu系统中定期或Windows更新前执行 sudo update-grub # 备份当前的GRUB配置和EFI文件可选但推荐 sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup # 对于UEFI系统可以备份整个ESP分区中的重要文件夹更新完Windows后如果发现GRUB丢失你可以快速用Live USB启动挂载原系统直接chroot进去用备份文件恢复或者简单地重新运行update-grub往往比完全重装GRUB更快。避坑点2磁盘分区操作的雷区使用GParted等工具调整磁盘分区大小时绝对不要移动或调整EFI系统分区ESP的起始扇区。即使大小不变仅仅移动位置也可能导致主板无法定位引导文件。同样不要轻易格式化标识为EF00在GPT中或boot, esp标志的分区。避坑点3GRUB自定义配置的陷阱很多教程教人直接修改/boot/grub/grub.cfg。千万不要这样做这个文件是由update-grub命令自动生成的你的修改会在下次更新时被覆盖。正确的自定义姿势是编辑/etc/default/grub文件用于修改默认启动项、超时时间等或者将自定义菜单项写在/etc/grub.d/40_custom文件里。修改后务必运行sudo update-grub来生效。长效维护策略将GRUB安装到独立分区或备用硬盘对于高级用户或系统稳定性要求极高的环境可以考虑一个更健壮的方案将GRUB的核心镜像core.img或整个ESP分区放在一个独立于任何操作系统分区的小分区甚至是另一块物理硬盘上。然后在主板固件中只设置从这个独立分区/硬盘启动。这样无论Windows还是Ubuntu如何折腾它们自己的分区都不会影响到最顶层的引导程序。实现起来比较复杂需要精细的分区规划和GRUB安装参数但一劳永逸。一个实用的检查脚本你可以创建一个简单的脚本在每次登录Ubuntu时检查引导健康状态例如检查必要的引导文件是否存在。虽然不能防止被覆盖但能让你第一时间发现问题。#!/bin/bash # 保存为 ~/check_boot.sh EFI_PATH/boot/efi/EFI/Ubuntu if [ ! -f $EFI_PATH/grubx64.efi ] [ ! -f $EFI_PATH/shimx64.efi ]; then echo “警告未在 $EFI_PATH 找到主要的GRUB EFI文件引导可能存在问题。” # 可以在这里添加邮件通知或桌面通知命令 fi然后通过crontab -e添加一个定时任务或者将其添加到~/.bashrc中在每次打开终端时检查。双系统启动项丢失本质上是对计算机启动链条理解的一次实战考验。从UEFI/BIOS到引导程序再到操作系统内核链条上的任何一环断裂都会导致启动失败。通过这次修复你不仅救回了系统更深入理解了PC从按下电源键到看到桌面的幕后故事。以后遇到类似问题你就能像老手一样从容地拿出Live USB一步步排查和解决问题了。记住在Linux世界里问题本身并不可怕它只是又一个学习的机会。

相关新闻

Java 线程池、定时器

Java 线程池、定时器

2026/8/5 22:10:38

目录一、线程池1.Executors类2.ThreadPoolExecutor类2.1 核心参数2.2 工作原理2.3 线程池状态管理2.4 线程池大小计算公式二、定时器1.ScheduledThreadPoolExecutor类1.1 核心参数1.2 延迟不循环任务1.3 延迟循环任务1.4 工作原理了解该类的原理需要先学习Java阻塞队列、延迟队…

数据隐私合规如何落地?数据隐私合规落地需要注意哪些操作要点?

数据隐私合规如何落地?数据隐私合规落地需要注意哪些操作要点?

2026/8/5 22:10:38

搞数据隐私合规最头疼的,往往不是法规解读,而是落地执行时发现数据散落在几十个系统里,开发环境、测试库、备份文件中都残留着个人信息,哪些字段含有敏感数据、存储了多久、被哪些下游应用消费了,根本说不清&#xff0…

【LangChain V1.0学习】第三课:工具调用初识

【LangChain V1.0学习】第三课:工具调用初识

2026/8/5 22:10:38

经过前两节课我们已经学会了如何调用API搭建自己的聊天助手,下面我们将继续深入学习LangChain的核心功能—工具调用。 一、前期准备 1、方法介绍 LangChain 1.0 中的工具调用使用的是核心模块 langchain.tools ,它为大型语言模型提供了与现实世界交互…

学术研究者的高效翻译助手:Zotero PDF2zh插件完全指南

学术研究者的高效翻译助手:Zotero PDF2zh插件完全指南

2026/8/6 1:30:55

学术研究者的高效翻译助手:Zotero PDF2zh插件完全指南 【免费下载链接】zotero-pdf2zh PDF2zh for Zotero | Zotero PDF中文翻译插件 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf2zh 作为一名学术研究者,你是否经常需要阅读大量英文…

用 LVGL 给 UEFI Setup 换一套图形界面:架构、实现与 QEMU 验证

用 LVGL 给 UEFI Setup 换一套图形界面:架构、实现与 QEMU 验证

2026/8/6 1:30:55

一、为什么做这件事 用过 UEFI 固件设置界面的人都知道,UiApp 里的 Setup 页面是典型的文本式交互:标题栏、提示/取值两栏布局、帮助面板、底部快捷键一行字。它由 EDK II 的 DisplayEngineDxe(文本渲染引擎) SetupBrowserDxe&…

04-MySQL 扩展学习资料

04-MySQL 扩展学习资料

2026/8/6 1:30:55

04-MySQL 扩展学习资料 面向「能用、也懂原理」之后,向架构、运维、云与工程化方向扩展的开发者 / 技术负责人。涵盖高可用、云数据库、框架集成、安全合规、监控运维、生态工具与学习路线。 编程资源 https://pan.quark.cn/s/7f7c83756948 更多资源 https://pan.qu…

Android开发构建工具链版本对齐:AGP、Gradle、JDK与Android Studio兼容性全解析

Android开发构建工具链版本对齐:AGP、Gradle、JDK与Android Studio兼容性全解析

2026/8/6 1:30:55

1. 项目概述:为什么版本对齐是Android开发的“第一课”如果你刚开始接触Android开发,或者刚从其他技术栈转过来,可能会觉得有点懵:为什么我新建一个项目,光是等Gradle构建完成就要好几分钟?为什么照着网上的…

网约车平台分账架构实践:网约车小程序如何解决司机结算、二清与延迟分账难题

网约车平台分账架构实践:网约车小程序如何解决司机结算、二清与延迟分账难题

2026/8/6 1:30:55

近几年大量区域网约车、城际顺风车、聚合运力服务商,选择以网约车小程序作为业务载体,轻量化获客、快速上线业务。在做网约车后台开发的时候,绝大多数团队优先完成下单、派单、计价、司机端订单管理模块,资金结算经常作为后置模块…

企业AI办公落地实战:从权限设计到工作流编排,如何构建安全的AI智能体?

企业AI办公落地实战:从权限设计到工作流编排,如何构建安全的AI智能体?

2026/8/6 1:20:54

引言:AI助手的“身份危机”与“权限迷宫” 在企业数字化转型中,引入AI办公助手(如腾讯WorkBuddy)已成为提升效率的关键一步。然而,许多技术团队在部署时面临核心挑战: 权限边界模糊:AI助手需要访…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/4 13:34:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…