新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ubuntu启动分区丢失修复指南:Boot-Repair与GRUB重建实战

发布时间:2026/9/21 3:13:13来源:尧图网络
Ubuntu启动分区丢失修复指南:Boot-Repair与GRUB重建实战
1. 启动分区丢失到底是怎么回事1.1 从一次真实的翻车现场说起上周帮朋友处理一台老笔记本他嫌原来的系统太卡想重装一个干净的 Ubuntu。结果在分区那一步手一抖把 EFI 系统分区给格式化了重启之后屏幕上直接甩出一行冷冰冰的提示grub rescue或者error: unknown filesystem。机器能通电、硬盘也没坏但就是进不去系统卡在 GRUB 的救援界面动弹不得。这种情况在装机圈里太常见了。所谓“启动分区缺失”本质上是引导链路上的某一环断了。现代 Linux 的启动流程大致是这样一条链主板固件UEFI 或 BIOS→ 引导加载程序GRUB→ GRUB 配置文件grub.cfg→ 内核vmlinuz→ initramfs → 根文件系统。这条链上任何一环找不到目标系统就会停在半路。而“分区缺失”通常指两种情形一是 EFI 系统分区ESP被误删或格式化导致 UEFI 找不到 GRUB 的引导文件二是 GRUB 自身损坏或 grub.cfg 丢失导致它不知道该加载哪个内核。Boot-Repair 就是专门对付这类问题的工具。它本质上是一个图形化加命令行的引导修复套件能自动扫描磁盘上的操作系统、重建 GRUB、重装引导记录、修复 EFI 分区挂载点。对新手来说它把一堆grub-install、update-grub、efibootmgr命令打包成了一个按钮对老手来说它生成的修复报告BootInfo Summary是排查引导问题的绝佳线索。这篇文章适合三类人刚接触 Ubuntu 装机、被启动问题卡住的新手需要批量维护多台 Linux 机器的运维以及想搞懂 GRUB 引导原理、不想每次都靠重装解决问题的折腾党。下面我会从原理讲到实操把 Boot-Repair 的图形界面和命令行两条路都走一遍重点放在命令行因为很多服务器和救援环境根本没有图形界面。1.2 为什么偏偏是启动分区出问题很多人会问为什么装系统时最容易出事的就是启动分区原因在于它的特殊性。EFI 系统分区通常只有 100MB 到 512MB格式必须是 FAT32挂载点固定在/boot/efi。它不像根分区那样有几个 GB 的容错空间一旦被格式化或者挂载点写错整个引导就崩了。而且很多安装教程在“手动分区”环节一笔带过新手看到一堆分区类型、挂载点、标志位很容易把 ESP 和普通的/boot分区搞混。另一个高频场景是双系统。Windows 和 Ubuntu 共用同一个 ESPWindows 更新有时会重写引导顺序把 GRUB 挤下去或者用户在 Windows 里用磁盘管理工具调整分区误伤了 ESP。还有一种情况是 GRUB 版本升级后配置文件没同步出现grub minimal bash like line editing is supported这种提示——这行字几乎成了 Linux 圈的“名场面”看到它基本就说明 GRUB 找不到 grub.cfg 了。理解这些场景才能明白 Boot-Repair 的设计逻辑它不假设你的分区结构是完好的而是先扫描、再判断、后修复。这个“先诊断后开药”的思路是我们后面所有操作的基础。2. 动手前的准备工作与工具选型2.1 制作一个能启动的 Ubuntu 救援盘修复引导的前提是你能进入一个可用的 Linux 环境。因为硬盘上的系统已经进不去了所以必须从外部介质启动。最稳妥的方案是用 Ubuntu 官方镜像做一个启动 U 盘。具体做法去 Ubuntu 中文官网下载桌面版 ISO服务器场景可以下 Server 版但桌面版自带图形界面跑 Boot-Repair 更方便。然后用 Rufus、balenaEtcher 或者dd命令写入 U 盘。Windows 下我一般推荐 Rufus分区方案选 GPT、目标系统选 UEFI这样兼容性最好。如果你习惯命令行Linux 下可以这样写sudo dd ifubuntu-24.04-desktop-amd64.iso of/dev/sdX bs4M statusprogress oflagsync注意/dev/sdX要换成你 U 盘的实际设备名写错了会覆盖掉你的硬盘数据这一步务必用lsblk确认清楚。写完之后重启机器进 BIOS 或 UEFI 设置把 U 盘调到启动顺序第一位。这里有个细节如果是 UEFI 机器启动菜单里通常会出现两个 U 盘条目一个带UEFI前缀一个不带。修复 EFI 引导必须选带UEFI的那个否则你进的是 Legacy 模式修复方向就错了。2.2 选择“试用 Ubuntu”而不是“安装”从 U 盘启动后会看到 GRUB 菜单选“Try Ubuntu”或“试用 Ubuntu”进入 Live 桌面环境。这一步很关键——千万不要点“安装 Ubuntu”那会往硬盘写数据可能把原本还能救的数据彻底搞乱。Live 环境是把系统跑在内存里的对硬盘只读除非你主动挂载写入安全得多。进入 Live 桌面后先别急着装 Boot-Repair先做一件事打开终端用lsblk和sudo fdisk -l把磁盘结构看清楚。记录下哪个是系统盘、哪个是 ESP、根分区在哪。这个习惯能帮你避免后面选错设备。我见过有人修复时把引导装到了 U 盘上重启后拔了 U 盘照样进不去系统白忙一场。2.3 Boot-Repair 的安装方式对比Boot-Repair 不在 Ubuntu 默认软件源里需要添加第三方 PPA。安装方式有两种第一种是图形界面下用终端添加源并安装sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install -y boot-repair第二种是直接下载 deb 包离线安装适合网络受限的环境。不过 PPA 方式能保证拿到最新版我一般优先用它。装完之后图形界面用户可以直接在应用菜单里搜“Boot-Repair”打开命令行用户则用boot-repair命令启动或者用它的命令行模式boot-repair --help查看参数。这里要提醒一句Boot-Repair 的图形界面底层其实也是在调用一堆 shell 命令所以理解命令行流程等于掌握了它的全部能力。提示如果你的救援环境连不上网PPA 方式会失败。这时可以提前在能上网的机器上下好 deb 包和依赖用 U 盘拷过去用dpkg -i安装缺依赖再用apt install -f补齐。3. 核心修复流程从诊断到重建 GRUB3.1 先用 Boot-Repair 生成诊断报告打开 Boot-Repair 后第一个界面会让你选“Recommended repair”还是“Create a BootInfo summary”。新手容易直接点推荐修复但我强烈建议先点“Create a BootInfo summary”。这个操作不会修改任何东西只会扫描磁盘并把引导信息输出成一份文本报告通常上传到一个公开的粘贴板并给你一个网址。这份报告里包含磁盘分区表、每个分区的 UUID 和类型、EFI 分区里有哪些引导文件、GRUB 的安装位置、/etc/fstab的内容、以及当前引导顺序。它是排查问题的“体检报告”。比如你能一眼看出 ESP 是不是 FAT32、有没有EFI/ubuntu/grubx64.efi这个文件、根分区的 UUID 和 fstab 里写的是否一致。命令行下生成报告可以用boot-repair --bootinfo或者更直接地调用底层工具sudo bootinfoscript报告生成后重点看几个地方sda1这类 ESP 分区是否被正确识别为EFI Systemgrub-install的目标磁盘是否正确fstab里/boot/efi的 UUID 是否和实际 ESP 一致。很多“修复了还是进不去”的案例根源就是 fstab 里的 UUID 对不上系统启动时挂载 ESP 失败GRUB 自然找不到配置文件。3.2 推荐修复模式做了什么如果你确认分区结构没大问题只是 GRUB 丢了可以直接点“Recommended repair”。这个模式背后执行的动作大致是挂载所有检测到的系统分区到临时目录用chroot进入目标系统重新执行grub-install把引导写回 ESP 或 MBR执行update-grub重新生成grub.cfg如果是 UEFI还会用efibootmgr重建启动项。整个过程它会弹几个对话框问你确认比如“是否要修复 MBR”“是否要清除 GRUB 并重装”。这里有个经验如果报告显示 ESP 完好、只是 grub.cfg 丢了那修复会很快如果 ESP 本身被格式化了Boot-Repair 会尝试重建 ESP 目录结构并重装引导文件但前提是分区还在、只是内容没了。如果分区被彻底删除那就得先手动重建分区这一步 Boot-Repair 帮不了你。修复完成后它会提示你重启。重启前记得把 BIOS 启动顺序调回硬盘优先否则又会从 U 盘启动。3.3 命令行手动修复的完整步骤图形界面虽然方便但服务器、远程救援、或者图形界面起不来的场景必须靠命令行。下面这套流程是我用得最多、也最稳的手动修复方案本质上是把 Boot-Repair 的自动动作拆开自己做。第一步确认分区结构lsblk -f sudo blkid找到根分区比如/dev/nvme0n1p2和 ESP比如/dev/nvme0n1p1类型是vfat挂载点通常是/boot/efi。第二步挂载根分区并准备 chroot 环境sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi如果是独立的/boot分区还要额外挂载它。然后绑定系统目录for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done第三步chroot 进去sudo chroot /mnt第四步在 chroot 环境里重装 GRUB。UEFI 机器执行grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu update-grubLegacy BIOS 机器执行grub-install /dev/nvme0n1 update-grub第五步退出 chroot 并卸载exit sudo umount -R /mnt重启大概率就能进系统了。这套流程的关键在于chroot——它让你在 Live 环境里“假装”自己就在硬盘上的系统里操作这样grub-install才会把文件写到正确的位置而不是写到 U 盘上。3.4 参数背后的逻辑为什么这么写grub-install那几个参数不是随便写的。--targetx86_64-efi明确告诉它装的是 64 位 UEFI 引导如果你的机器是 32 位 UEFI少数老设备就得换成i386-efi。--efi-directory/boot/efi指定 ESP 的挂载点写错了引导文件就装到别处去了。--bootloader-idubuntu是给这个启动项起个名字会出现在 UEFI 启动菜单里你可以改成任意名字但建议保持默认方便识别。update-grub其实是grub-mkconfig -o /boot/grub/grub.cfg的封装。它会扫描/boot下的内核、探测其他操作系统比如 Windows然后生成菜单项。如果这一步报错说找不到某个分区通常是 fstab 里的 UUID 有问题需要先修正 fstab。注意在 chroot 环境里执行update-grub时如果提示cannot find a device for /多半是/proc或/sys没绑定好回到第二步检查绑定命令是否都执行成功。4. 常见故障排查与避坑实录4.1 grub rescue 与 minimal bash 的区别很多人把这两个提示混为一谈其实它们代表不同阶段的故障。grub rescue说明 GRUB 的核心镜像core.img加载了但它找不到包含正常模块的分区通常是因为/boot/grub所在分区丢失或 UUID 变了。而grub minimal bash like line editing is supported说明 GRUB 已经加载了正常模块但找不到grub.cfg属于“最后一步没走通”。针对grub rescue可以在提示符下手动指定分区和路径grub rescue ls grub rescue set prefix(hd0,gpt2)/boot/grub grub rescue insmod normal grub rescue normal这能临时进系统进去后立刻重装 GRUB 才能根治。针对 minimal bash 那个提示通常直接ls找到 ESP然后手动configfile加载 grub.cfg 即可临时启动。4.2 修复后仍无法启动的排查表现象可能原因排查方法重启后直接进 BIOS启动顺序被改进 BIOS 把硬盘调到第一位出现 grub rescueGRUB 装到了错误磁盘检查grub-install的目标设备卡在 initramfs根分区 UUID 不匹配对比blkid和 fstab黑屏无提示显卡驱动或内核问题启动时加nomodeset参数双系统下 Windows 消失os-prober 未启用检查/etc/default/grub里GRUB_DISABLE_OS_PROBER这张表是我这些年踩坑总结出来的基本覆盖了九成以上的启动故障。遇到问题先对号入座能省下大量瞎折腾的时间。4.3 几个容易忽略的细节第一个细节是 Secure Boot。有些机器开了安全启动会拒绝加载未签名的 GRUB。修复时如果反复失败可以先进 BIOS 把 Secure Boot 关掉修好后再决定是否开启。Ubuntu 官方签名的 GRUB 一般能通过安全启动但第三方修改过的版本就不一定了。第二个细节是 ESP 空间不足。ESP 只有 100MB 时如果里面塞了多个系统的引导文件可能装不下新的 GRUB。这时需要清理无用的引导目录或者扩容 ESP——扩容涉及分区调整风险较高建议先备份。第三个细节是 NVMe 设备命名。/dev/nvme0n1和/dev/sda的命名规则不同grub-install时别写错。用lsblk确认设备名是最保险的做法。第四个细节是虚拟机场景。在 VMware 或 VirtualBox 里装 Ubuntu 遇到启动问题修复思路和物理机一样但要注意虚拟机的 UEFI 设置。有些虚拟机默认用 BIOS有些用 UEFI修复前先确认清楚否则grub-install的 target 参数会选错。4.4 预防胜于修复装机时的好习惯与其每次出问题再救不如装机时就做对。我的习惯是手动分区时ESP 至少给 512MB格式 FAT32挂载点/boot/efi标志位选boot和esp根分区用 ext4挂载点/如果内存大swap 可以给一个小分区或者干脆用 swapfile。装完系统后第一时间用efibootmgr -v确认启动项用sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak备份一份配置。另外定期用boot-repair --bootinfo生成一份报告存档等真出问题时有旧报告对比排查效率会高很多。这个习惯在维护多台机器时尤其有用。5. 进阶场景双系统与国产系统适配5.1 双系统下 GRUB 被覆盖的修复Windows 更新后 GRUB 消失是双系统用户的老朋友了。修复思路和前面一样用 Live U 盘启动chroot 进 Ubuntu重装 GRUB。但有个额外步骤确保os-prober能识别到 Windows。在/etc/default/grub里确认没有GRUB_DISABLE_OS_PROBERtrue然后update-grub它应该会输出Found Windows Boot Manager。如果 Windows 的引导也坏了那得先用 Windows 安装盘修复 Windows 引导再回来修 GRUB。顺序不能反否则修好 GRUB 又找不到 Windows。5.2 国产系统与 GRUB 的兼容处理有些国产 Linux 发行版比如基于 Debian 或 RPM 体系的也用 GRUB但引导文件路径和 Ubuntu 略有差异。修复时--bootloader-id可以改成对应系统的标识update-grub命令可能叫grub2-mkconfig。核心逻辑不变挂载、chroot、重装、生成配置。遇到 GRUB 密码保护的情况需要在grub.cfg或/etc/grub.d/里找到密码相关配置用grub-mkpasswd-pbkdf2重新生成哈希后替换。5.3 服务器远程救援的思路服务器没有显示器启动失败时只能靠带外管理比如 IPMI、iDRAC挂载虚拟光驱或者用救援模式。思路和 Live U 盘一致只是介质变成了虚拟 ISO。进救援系统后同样用lsblk找分区、挂载、chroot、重装 GRUB。服务器上要特别注意 RAID 和 LVMlsblk可能显示的是逻辑卷grub-install的目标要指向物理磁盘而不是逻辑卷。6. 我个人的几条实操心得折腾引导这些年最大的体会是先诊断再动手永远不要凭感觉瞎修。Boot-Repair 的 BootInfo 报告、lsblk的输出、blkid的 UUID这些才是判断问题的依据。我见过太多人一看到进不去系统就重装结果数据丢了、问题也没搞明白下次照样翻车。第二个心得是备份 fstab 和 grub.cfg。这两个文件是引导的“地图”出问题时如果有备份对比一下就能发现哪里变了。我习惯在系统正常时把/etc/fstab、/boot/grub/grub.cfg、efibootmgr -v的输出一起打包存到网盘或另一块盘上。第三个心得是命令行比图形界面可靠。图形界面在救援环境里经常因为缺依赖、缺驱动跑不起来而命令行几乎在任何环境都能用。把chroot那套流程练熟比记住 Boot-Repair 的按钮位置有用得多。最后分享一个小技巧如果update-grub一直报错可以试试先mount -a检查 fstab 有没有语法错误再grub-mkconfig -o /boot/grub/grub.cfg手动生成看具体报错在哪一行。错误信息往往比想象中直白只是很多人被满屏输出吓住了没耐心读完。
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

ARIS 工作流总览:从 idea 到 paper 的 13 条 pipeline 如何一次看全 2026/9/21 4:07:21

ARIS 工作流总览:从 idea 到 paper 的 13 条 pipeline 如何一次看全

ARIS 工作流总览:从 idea 到 paper 的 13 条 pipeline 如何一次看全 【免费下载链接】Auto-claude-code-research-in-sleep ARIS ⚔️ (Auto-Research-In-Sleep) — Lightweight Markdown-only skills for autonomous ML research: cross-model review loops, idea …

阅读更多 →
Roc 格式化器幂等性测试实战:从 issue 8851 快照看多行分发与字段访问的格式化处理 2026/9/21 4:04:21

Roc 格式化器幂等性测试实战:从 issue 8851 快照看多行分发与字段访问的格式化处理

Roc 格式化器幂等性测试实战:从 issue 8851 快照看多行分发与字段访问的格式化处理 【免费下载链接】roc A fast, friendly, functional language. 项目地址: https://gitcode.com/GitHub_Trending/ro/roc 导读:本文以 Roc 编译器仓库中的快照测试…

阅读更多 →
TypePHP编译器API参考:程序化调用PHP AOT编译器的完整指南 2026/9/21 4:04:21

TypePHP编译器API参考:程序化调用PHP AOT编译器的完整指南

TypePHP编译器API参考:程序化调用PHP AOT编译器的完整指南 【免费下载链接】typephp Compile PHP to Native Binaries 项目地址: https://gitcode.com/GitHub_Trending/ty/typephp TypePHP 是一款用 PHP 编写的原生 AOT 编译器(tpc)&a…

阅读更多 →
React Admin 实时数据提供者(Realtime Data Provider)接入完整指南:方法签名、内置适配器与自定义实现 2026/9/21 4:04:21

React Admin 实时数据提供者(Realtime Data Provider)接入完整指南:方法签名、内置适配器与自定义实现

前端UI组件 【免费下载链接】react-admin A frontend Framework for single-page applications on top of REST/GraphQL APIs, using TypeScript, React and Material Design 项目地址: https://gitcode.com/gh_mirrors/re/react-admin 点击查看 免费下载 本指南系…

阅读更多 →
VitePress 默认主题 Layout 指南:深入理解 doc、page、home 与自定义布局 2026/9/21 4:04:21

VitePress 默认主题 Layout 指南:深入理解 doc、page、home 与自定义布局

VitePress 默认主题 Layout 指南:深入理解 doc、page、home 与自定义布局 【免费下载链接】vitepress Vite & Vue powered static site generator. 项目地址: https://gitcode.com/gh_mirrors/vi/vitepress VitePress 通过 frontmatter 中的 layout 选项…

阅读更多 →
Weex 鸿蒙化实践:js-base64 纯 JS 编解码库在 WebSceneAPI 中的集成与使用指南 2026/9/21 4:04:21

Weex 鸿蒙化实践:js-base64 纯 JS 编解码库在 WebSceneAPI 中的集成与使用指南

移动开发跨平台前端UI组件OpenHarmony 【免费下载链接】weex A framework for building Mobile cross-platform UI 项目地址: https://gitcode.com/gh_mirrors/we/weex 点击查看 免费下载 导读 本文基于 WebSceneAPI 模块 内置的 js-base64 库(位于 co…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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