我有一台带有 2 个 nvme 驱动器的新计算机。我最初在其中一个驱动器上安装了 Windows 10。没有注意到,但在安装过程中,Windows 10 将其 UEFI 分区放在了用于 Ubuntu 的磁盘中(而不是 Windows SSD 中)。我在第二个磁盘上安装了 Ubuntu(使用 zfs)。正如预期的那样,这种安装类型会清除 Windows UEFI 分区。我能够修复 Windows 10 启动,并且我可以通过从 bios 启动菜单中选择 Windows 磁盘或使用efibootmgr-n并选择 Windows 分区。我无法将 Windows 添加到 grub。操作系统探测器没有检测到 Windows 分区。然后我手动编辑了/etc/grub.d/40_custom文件如下:
menuentry "Windows 10" --class windows --class os {
insmod ntfs
insmod chain
insmod search_fs_uuid
search --no-floppy --set=root --fs-uuid D474C38D74C370B2
# ntldr /bootmgr
# chainloader /bootmgr
chainloader +1
}
在 grub 救援外壳中测试时,到最后一行为止的所有内容都被验证是正确的。
如果我用启动管理器然后 grub 抱怨它找不到 ntldr。上面列出的 chainloader 行都不起作用。有什么想法可以修复。
答案1
我所要做的就是使用此链接将 Windows 从 mbr 转换为 gpt [https://www.maketecheasier.com/convert-legacy-bios-uefi-windows10/]1
然后运行 update-grub。我没有丢失主 Windows 分区中的任何文件或设置,但我的恢复分区 WinRE 已损坏。