You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

删除Windows 10启动管理器后恢复遇双EFI分区报错,求解决方案

删除Windows 10启动管理器后恢复遇双EFI分区报错,求解决方案

兄弟,我碰到过几乎一模一样的问题!这个报错其实是因为Windows的引导工具分不清你那两个EFI分区到底哪个是原来的Windows ESP——毕竟它们都是GPT格式的ESP分区,系统没法自动识别对应的设备。给你两个靠谱的解决方案,选哪个看你的偏好:

方案一:明确指定Windows ESP分区,修复引导

这个方法不用动Grub,直接让Windows工具找到正确的分区就行:

  1. 从Windows安装介质进入WinPE的命令提示符(CMD)
  2. 打开磁盘分区工具:输入 diskpart
  3. 列出所有磁盘:list disk,找到你的系统磁盘(一般是Disk 0,根据容量判断)
  4. 选中系统盘:select disk 0,再列出所有分区:list partition
  5. 你会看到两个标记为「系统」的分区(就是那两个EFI分区,大小一般在100-500MB左右),分别给它们分配临时盘符:
    • 选中第一个EFI分区:select partition X(X是分区编号,比如1)
    • 分配盘符:assign letter=S:
    • 再选中第二个EFI分区:select partition Y
    • 分配盘符:assign letter=T:
  6. 退出diskpart:exit
  7. 检查哪个盘符里有Windows的引导文件:输入 dir S:\EFI\Microsoft,如果能看到Boot文件夹,那S盘就是原来的Windows ESP;如果没有就看T盘
  8. 现在指定引导路径:
    • 如果你想用Grub作为默认引导,执行:bcdedit /set {bootmgr} path \EFI\grub\grubx64.efi /store S:\EFI\Microsoft\Boot\BCD(把S换成你找到的正确盘符)
    • 如果你想恢复Windows自带引导,先执行:bootrec /fixboot /s S:,再执行bootrec /rebuildbcd,当提示找到Windows安装时选Y确认

方案二:删除现有Grub,重新安装到Windows的ESP分区

这也是你提到的思路,操作起来也很稳妥:

  1. 用Artix安装介质引导进入系统(或者进入chroot环境,这个你应该熟)
  2. 先找到Windows的ESP分区,挂载它,比如:mount /dev/nvme0n1p1 /mnt/esp(替换成你实际的ESP设备名,比如/dev/sda1)
  3. 找到原来安装Grub的那个EFI分区,挂载后删除Grub文件:比如原来装在/dev/nvme0n1p2,就先mount /dev/nvme0n1p2 /mnt/oldesp,然后rm -rf /mnt/oldesp/EFI/grub
  4. 重新把Grub安装到Windows的ESP分区:grub-install --target=x86_64-efi --efi-directory=/mnt/esp --bootloader-id=grub
  5. 生成新的Grub配置文件:grub-mkconfig -o /boot/grub/grub.cfg,这样Grub会自动检测到Windows系统,以后开机就能直接选系统了

注意事项

  • 操作前最好备份两个EFI分区的内容,避免误操作搞崩系统
  • WinPE里用diskpart分配的盘符是临时的,重启后会自动取消,不用担心占用
  • 执行diskpart时一定要选对系统盘,别把外接U盘当成系统盘操作了

备注:内容来源于stack exchange,提问作者Alfie

火山引擎 最新活动