我有一个双启动塔,装有 19.10 和 Windows 10。系统中的磁盘是一个 NVMe、一个 SSD 和三个 SATA 旋转磁盘。NVMe 包含 Windows 10。在运行 Windows 时,使用 Macrium 将其克隆到其中一个 SATA 磁盘。SSD 只是 Windows 的额外空间。Macrium 说克隆的磁盘会获得不同的 ID。
我遇到的问题是,运行 update-grub 时,NVMe 磁盘会获得与其克隆相同的 UUID,因此当我从 Grub 菜单中选择它时,它会启动到克隆。我不知道如何在 grub.cfg 中识别 NVMe 设备以便启动到它。
也许更好的表达方式是,我不知道如何让 osprober 正确选择 NVMe。我不知道 osprober 在 grub.cfg 中是如何工作的,但似乎两个磁盘在字符串中都获得了相同的 ID。
以下是 grub.cfg 的相关部分:
menuentry "Windows Boot Manager (on /dev/nvme0n1p3)" --class windows --class os $menuentry_id_option 'osprober-efi-8068-6E17' {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 8068-6E17
else
search --no-floppy --fs-uuid --set=root 8068-6E17
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot Manager (on /dev/sdb3)" --class windows --class os $menuentry_id_option 'osprober-efi-8068-6E17' {
insmod part_gpt
insmod fat
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3 8068-6E17
else
search --no-floppy --fs-uuid --set=root 8068-6E17
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
我该如何正确配置它?谢谢!
答案1
是的,我认为事实就是这样的。
好的,我的解决方案是将 Windows 磁盘克隆到外部 USB 磁盘(在 Windows 中执行此操作),然后重新格式化内部克隆磁盘。然后 update-grub 找不到它。
由于 grub.cfg 中有一个磁盘 ID,因此磁盘 ID 没有改变。
因此,我认为手动删除克隆版 grub.cfg 的部分内容也是可行的。两个磁盘的 ID 显然确实相同,并且 grub 恰好启动了克隆版,因此删除它应该可以让它启动正确的 Windows 磁盘。