找到了解决方案,方法倒是不是特别难,用到了一个 Windows 的bcdboot命令(https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di )
操作流程
第一步,准备一个 Windows 的安装介质,推荐使用Ventoy- https://www.ventoy.net/,开源免费,甚至不用格式化 U 盘!
第二步,boot 进 live 安装系统,依次点击Repair Computer > Troubleshoot > Advanced > Command Prompt
第三步,进入命令提示符后,使用以下命令显示分区:
$ diskpart // 运行 diskpart
diskpart> list disk // 列出所有硬盘,每个硬盘都有一个编号(e.g. 0/1/2)
diskpart> sel disk <disk_id> // 选择 Windows 系统 EFI 分区所在的硬盘,如果不存在,则需要手动创建,具体下方`UPDATED`的详细说明
diskpart> list partition // 列出所有分区
diskpart> sel partition <id> // 选择 EFI 分区
diskpart> assign letter=F // 分配 EFI 一个新盘符
diskpart> exit //退出
$ bcdboot C:\Windows /s F: /f ALL // 创建所有 Windows boot files 到 F 盘
$ reboot //重启即可正常进入 Windows
额外操作
UPDATED:
最近因为某种情况,Windows 启动项又消失了,这次甚至连 EFI 分区都没有了,所以又折腾了很久,这里再更新一下。 如果出现 EFI 分区直接消失的情况,可以通过重建 EFI 分区来解决,以下是具体操作步骤:
// 创建 EFI 类型的新分区
diskpart> create partition efi size=100
// 格式化
diskpart> format quick fs=fat32 label="System"
//分配卷标
diskpart> assign letter=L
diskpart> exit
X:Resources> bcdboot C:\Windows /s F: /f UEFI
如果最后提示以下内容,说明成功创建:
Boot files successfully created.
此时退出 CMD,然后重启电脑,进入 BIOS,应该就能看到 Windows 的启动选项了。
p.s. 有的时候,这里分配给 Windows 的系统分区的 letter 可能不是C,你要自己确认一下,可以使用list partition命令来查看具体在哪个分区(一般都有 label,比如系统或者OS之类的),确认之后,再执行上面的bcdboot,否则会创建失败。
总结
总的来说,EFI 分区消失并不是什么太大问题,恢复起来也不是很麻烦,但是每次出现这个问题就很困扰,我到现在都不知道具体什么原因引起的,猜测应该是跟双系统有关。
No comments:
Post a Comment