为了体验新 WSL2 的 GUI ,后来一直是慢圈用户,所以更新 Windows 的时候它把自己更死了,我也怪不得别人。只记得一觉醒来的时候,就发现自己的电脑启动不了了。
首先尝试了自带的启动修复,真的是毫无用处,即便是去网络上检索相应的错误代码,也没找到什么有用的信息。同时,由于我开启了 BitLocker,每次修复还需要输入一大串密钥才可以使用这个功能,因此试了两次都无效之后就放弃了。
初步怀疑是现在 Windows 的启动修复已经找不到对应的文件造成的修复失败,遂跟同学要了 Windows 10 的启动盘,发现依然如故:启动盘里的启动修复仍然是无法正常工作的(可见自动程序的不可靠性)。
接着通过大量的网络检索,看到有些帖子使用了 Windows 命令行中的 bcdboot
命令进行修复。于是开始尝试使用这个方法来手动修复。步骤大概如下:
- 进入到启动界面的命令行部分。这个步骤如果磁盘是 BitLocker 加密的话,需要去找到密钥手动输入一下,然后才能正常使用。一般来说解锁 Windows 系统所在的磁盘(C:/)就可以了。
- 使用
diskpart
来挂载 ESP 分区,并分配磁盘符。list disk
并且select disk ?
选择所选的磁盘。list partition
并且select partition
选择 ESP 恢复分区。assign letter=F
分配磁盘符。
- 然后使用如下命令:
1 2
bcdboot C:\Windows /s F: /f uefi /l zh-cn # /s F: 表示 ESP 分区挂载的地方
- 显示成功重建了启动文件。
按照以上步骤操作后,重新启动,就看到熟悉的 Windows 界面了。
十分惊讶的是就这么一条简单的命令就解决了这个问题,而所谓的「自动修复」工具甚至给不到任何有用的信息。
去看了 bcdboot
的使用说明:「bcdboot.exe
命令行工具用于将关键启动文件复制到系统分区以及创建新的系统 BCD 存储」。所以实际上差不多只是拷贝了一点文件咯?
后续其实还有点小插曲,我决定再给 Windows 更新一次机会,然后它仍然把自己的启动弄坏了。接着,我猜想即使不用启动盘,刚刚的方法也是有效的,进入命令行试了下果然如此。