Linux引导修复方法全解析
2026-04-29 17:56:37
0浏览
收藏
本文深入解析了Linux系统中GRUB2引导修复的四大核心痛点:BIOS+MBR模式下缺失BIOS Boot分区(EF02类型)导致grub-install失败、chroot环境中因/proc /sys /dev /boot挂载不全引发的“unknown filesystem”错误、update-grub无法识别Windows或其他Linux系统源于os-prober默认禁用及分区未挂载、以及UEFI模式下因启动环境误判或ESP未正确挂载造成的EFI变量支持异常;强调精准判断启动模式(ls /sys/firmware/efi)、核查分区结构(fdisk -l)和严格匹配挂载状态与grub-target才是高效排障的关键,而非盲目重试命令。

grub-install 命令执行失败:/dev/sda 没有 BIOS Boot 分区
这是 GRUB2 在 BIOS + MBR 模式下最常卡住的地方。GRUB2 的核心镜像(core.img)太大,无法塞进 MBR 后面那 512 字节的“空隙”,必须依赖一个专用的 BIOS Boot Partition(类型为 EF02,不挂载、无文件系统)来存放它。
- 用
fdisk -l /dev/sda查看分区表,确认是否存在类型为BIOS boot的小分区(通常 1–2 MiB) - 如果没有,进
fdisk /dev/sda→n新建分区 →t改类型 → 输入ef02→w写入 - 再运行
grub-install --target=i386-pc /dev/sda,否则会报错embedding is not possible
chroot 环境里 grub-install 报错 unknown filesystem
说明 grub-install 找不到根文件系统里的 /boot 或 /boot/grub,常见于没正确挂载 /boot、/dev、/proc、/sys 就直接 chroot。
- 确保宿主机中已挂载目标系统的根分区到
/mnt,且/boot是独立分区时也挂载到了/mnt/boot - 依次执行:
mount -t proc /proc /mnt/proc、mount -t sysfs /sys /mnt/sys、mount -o bind /dev /mnt/dev - 进入 chroot 后先运行
ls /boot/grub/i386-pc/,看到一堆*.mod文件才算环境就绪,再跑grub-install
update-grub 找不到 Windows 或其他 Linux 系统
update-grub 本质是调用 os-prober 扫描其他启动项,而它默认禁用——尤其在较新发行版(如 Ubuntu 22.04+、Debian 12)中,GRUB_DISABLE_OS_PROBER=true 是默认配置。
- 检查
/etc/default/grub中是否含GRUB_DISABLE_OS_PROBER=true,如有,改为false或直接删掉这行 - 确保目标系统分区已挂载(
os-prober不扫描未挂载设备),比如 Windows 的 EFI 分区需挂载到/boot/efi或临时路径 - 运行
os-prober命令手动测试,若输出为空,说明分区未识别或 NTFS 驱动未加载(modprobe ntfs3或安装ntfs-3g)
UEFI 模式下 grub-install 提示 “EFI variables are not supported on this system”
说明当前运行环境不是 UEFI 启动,或者内核没启用 EFI 运行时支持。即使机器是 UEFI 主板,Live 系统也可能以 BIOS 模式启动,导致 /sys/firmware/efi 目录不存在。
- 先确认是否真在 UEFI 下:运行
ls /sys/firmware/efi/efivars,有内容才可继续;否则重启进 UEFI 设置,关闭 CSM/Legacy Boot - 挂载 EFI 系统分区(通常是 FAT32,标签为
ESP)到/mnt/boot/efi,且确保该分区有boot/efi目录结构 - 运行
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu(注意路径是 chroot 内的相对路径)
真正麻烦的从来不是命令敲错,而是搞不清当前启动模式、分区挂载状态和 GRUB 的 target 对应关系。多看一眼 ls /sys/firmware/efi 和 fdisk -l 输出,比反复重装快得多。
理论要掌握,实操不能落!以上关于《Linux引导修复方法全解析》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
Scikit-learn词干提取:NLTK与CountVectorizer结合应用
- 上一篇
- Scikit-learn词干提取:NLTK与CountVectorizer结合应用
- 下一篇
- Navicat数据库备份教程详解
查看更多
最新文章
-
- 文章 · linux | 7小时前 |
- cgroup v2 memory.high 与 memory.max 有什么区别
- 481浏览 收藏
-
- 文章 · linux | 9小时前 | Linux · Linux systemd journalctl
- journalctl 多个字段条件怎么组合 AND 与 OR
- 228浏览 收藏
-
- 文章 · linux | 15小时前 |
- systemd journal namespace 怎么隔离服务日志
- 442浏览 收藏
-
- 文章 · linux | 18小时前 | 缓存 · Linux ·
- Linux tmpfs缓存目录的容量与重启清空边界
- 279浏览 收藏
-
- 文章 · linux | 1天前 | Linux · Linux Bash Shell脚本 PIPESTATUS set -euo pipefail
- Linux bash严格模式下处理空匹配和管道错误
- 273浏览 收藏
-
- 文章 · linux | 3天前 |
- Linux lsof发现被删除但仍占用的日志文件
- 128浏览 收藏
-
- 文章 · linux | 3天前 |
- Linux ss定位端口监听进程与连接状态的方法
- 308浏览 收藏
-
- 文章 · linux | 6天前 |
- Linux rsync保留权限与删除多余文件的迁移清单
- 403浏览 收藏
-
- 文章 · linux | 6天前 | Linux ·
- Linux find按文件大小和修改时间清理缓存的安全流程
- 293浏览 收藏
-
- 文章 · linux | 6天前 | Linux · Linux 日志轮转 logrotate postrotate
- Linux logrotate配合postrotate通知服务重开日志的配置
- 220浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
查看更多
AI推荐
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 234次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 278次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 247次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 229次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 28次使用
查看更多
相关文章
-
- Linux vmstat 如何分辨内存抖动与磁盘等待:si、so、wa 与复测顺序
- 2026-08-30 501浏览
-
- Linux搭建vsftpdFTP服务器教程
- 2026-04-30 501浏览
-
- Shell脚本安装教程:.sh一键安装指南
- 2026-03-16 501浏览
-
- Linux清空文件内容的几种方法
- 2025-12-01 501浏览
-
- Linux命令行下载文件技巧
- 2025-11-23 501浏览
