装完第二个系统、或者在磁盘工具里动了一下分区之后,Windows 突然起不来了。先别急着重装:这类情况里绝大多数丢的是引导记录,而不是你的文件。引导坏了重建只要十几分钟,重装却要把数据折腾一遍。
先用开机现象分清五种情况
| 开机看到什么 | 到底坏了什么 | 处理方向 |
|---|---|---|
| no boot device、找不到启动设备 | 固件里的启动项没了或顺序变了 | 进固件把 Windows Boot Manager 排回第一 |
| 蓝屏 Inaccessible Boot Device | 启动配置错,或硬盘模式被改回了 RAID | 把存储模式改回原来的,再修引导 |
| 一串 GRUB rescue 提示符 | Linux 侧引导区被覆盖,Windows 往往完好 | 先确认可否从 Windows 介质进,再修两边 |
| BIOS 里根本看不到硬盘 | 盘没被识别 | 先查插槽、排线、M.2 接口是否松,软件修不了 |
| 分区全都不见了 | 分区表被动过 | 停手,先把整盘镜像备份再动引导 |
这五行里只有后两行涉及数据风险。看到硬盘或分区不见了,先不要运行任何修复命令,先把盘上的东西弄出来再说,因为修复命令一旦写错分区,真的能把完好的系统写坏。
进修复环境的两个细节
| 你需要知道的 | 说明 |
|---|---|
| 怎么进修复环境 | 插 Windows 安装 U 盘,开机选从 U 盘启动,到安装页左下角选修复计算机 → 疑难解答 → 高级选项 → 命令提示符 |
| 没有 U 盘时 | 连续三次开机失败会自动进 WinRE,但引导彻底坏时可能进不了,此时必须用介质 |
| 盘符会变 | 在 WinRE 里 Windows 不一定在 C。先输入 diskpart 或 dir 确认,不确认就拼命令基本白做 |
一步步重建引导
# 先看每个分区是什么,找到那个几百分兆的 EFI 系统分区
diskpart
list vol
exit
# 给 EFI 分区分配一个盘符(把 2 换成实际卷号)
diskpart
select vol 2
assign letter=S
exit
# 确认 Windows 到底在哪个盘,能看到文件就对了
dir C:\Windows
# 重建引导(UEFI 机器;如果 Windows 实际在 D 盘就把 C 换成 D)
bcdboot C:\Windows /s S: /f UEFI
最后一条如果报“创建引导文件失败”,基本都是前两步错了:盘符给错了、Windows 不在你拼的那个字母上、或者这台机器其实是传统 BIOS 启动。传统启动改用 /f BIOS,且不需要给 EFI 分区分配盘符。
传统 BIOS 机器的区别
用 diskpart 看分区表类型:MBR 对应传统启动,GPT 对应 UEFI。传统机器的修复思路是重写主引导记录和启动扇区,而不是分配 EFI 盘符。这里常见的坑是:固件里启动模式被设成了纯 UEFI,而磁盘还是 MBR,两者对不上,无论怎么重建引导都起不来。
什么时候必须停手
三件事。一是里面有未备份的重要资料,而且你得反复尝试才能进修复环境:先用可启动的维护介质把资料拷到外盘,再折腾引导。二是开了设备加密或 BitLocker:修复环境会反复问你要恢复密钥,找不到密钥就不要动手,先把它找出来。三是品牌机的恢复分区被删:引导能重建,但一键恢复功能没了,心里要有数。
以后怎么避免
装双系统先装 Windows 后装 Linux,反过来的成功率很低。Linux 安装时把引导装到它自己那一个分区,不要选整块磁盘的第一个扇区,除非你确定要接管启动。另外,动分区前先把 Windows 的恢复密钥备份一份,这一步在十次事故里能避开九次。
最后一句
引导坏了不是系统坏了,你的文件一般还在盘上。先看现象判断属于哪一行,再决定是进固件改启动项、还是进修复环境重建 BCD,不要把重装当作第一选择。