问题症状#
洗澡前点了 Windows 更新,结果 Windows 更新后,启动进入了 grub rescue 模式。
继续检查:
- 本来用的 rEFInd 引导,但 Windows 启动项在 rEFInd 里消失了。
- 在 BIOS/UEFI 里能看到 Windows 的启动项,但选择后会闪一下下划线,然后又跳回 rEFInd。
- 这说明 Windows 的启动程序被调用了,但立即失败了?
核心原因:EFI 分区空间不足#
299MB 的 EFI 分区,竟然只剩下 1.7MB 可用空间! 🤯
进一步排查,发现 EFI 分区里有 Arch Linux 遗留的巨型 .tmp 文件:
initramfs-linux-fallback.img.tmp
,大小:121MB
结论#
Windows 更新失败,就是因为 EFI 分区被 Arch 的 .tmp 文件塞满了,导致 Windows 无法写入或更新必要的启动文件,进而崩溃,喵。
解决过程#
删除 Arch 那个 initramfs-linux-fallback.img.tmp 文件,利用 PE 的工具,修复 Windows 的 BCD (Boot Configuration Data) 和启动文件。
重启后,Windows 顺利启动!🥳
后续处理#
如果 rEFInd 的启动顺序可能被 Windows 覆盖了。回到 Arch Linux 系统,重新运行:
sudo refind-install