前两天更新 Windows 10 时遇到重启蓝屏,经检查发现 EFI 引导分区位于机械硬盘,而操作系统安装在固态硬盘上。打开磁盘管理(Win+R 运行 diskmgmt.msc)可确认 EFI 分区在磁盘 0(机械盘),系统在磁盘 1(固态盘)。

为避免拆机重装系统,可通过 Windows 安装介质进入命令行环境,使用自带工具迁移 EFI 分区。
准备工作
- 准备一个容量大于 8GB 的 U 盘,制作 Windows 10 安装介质。
- 插入 U 盘,重启电脑进入 BIOS,选择从 U 盘启动。
- 出现更新窗口时按
SHIFT+F10进入命令行。
操作步骤
假设磁盘 0 为机械盘,磁盘 1 为固态盘,磁盘 2 为 U 盘。
- 压缩空间:在固态盘系统分区中压缩出约 400MB 空间用于迁移 EFI 分区(大小视原 EFI 分区而定)。

- 查看卷信息:使用
list volume命令查看系统盘符字母(例如显示为 F 盘而非 C 盘)。

- 创建引导:使用
bcdboot指令创建系统盘与 EFI 分区的引导关系。

如上图所示,已成功创建启动文件。最后退出命令行,拔掉 U 盘,并重新启动笔记本。在 BIOS 设置里将固态盘设置为第一顺序启动设备。
重启后进入磁盘管理,可在固态盘上看到新建立的 EFI 引导分区。

同时我们也可以看到在磁盘 0 即机械盘中仍然存在原来的 EFI 分区,不过已经不会对系统启动造成影响了,可以保留也可以将其删除。我试了用 diskpart 的 delete partition 命令并不能将其删掉。
后来发现需要选择机械盘,并使用 diskpart 的 clean 指令将其格式化才能清除这个原来的 EFI 分区。但是我机械盘里文件很多,所以就没有删除这个多余的 EFI 分区。就此,成功地解决了文章开头的系统启动错误问题,最后 Windows 10 也更新成功了。

