我买了两个 SSD 磁盘,像往常一样,我认为在完全独立的磁盘上安装 Windows 将是最简单的解决方案,但我找不到任何使用 grub2 (efi) 进行双引导的教程。所有教程均假定一个 EFI 启动分区。
仅使用:
menuentry "Windows 7" {
set root=(hd1,1)
chainloader +1
}
给我无效的 EFI 路径。
什么是正确的配置?
答案1
您是否在 GPT 分区上安装了 Windows?如果我理解正确的话,你正在尝试就像我昨天做的那样
我遇到了同样的错误,因为使用 EFI,您不会提供chainloader
要读取的扇区数,而是提供 Windows 启动文件的路径。
chainloader /efi/Microsoft/Boot/bootmgfw.efi
您的根目录应设置为 Windows 创建的 EFI 系统分区。您还可以通过 GUID 设置根目录,而不是(hdX,Y)
使用search --fs-uuid --set=root
.用于指定 GUID 的附加参数可以通过以下方式找到
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
(假设您的 EFI 分区已挂载到/boot
,如果您将其挂载到其他位置,请相应地更改路径。)
答案2
这来自超级用户:
menuentry "Other Disk" {
insmod part_msdos
set root='(hd1)'
drivemap -s hd0 hd1
chainloader (hd1)+1
}
此特定示例用于弹射到另一个磁盘以引导保存 GRUB1 的 MBR。因此,它需要针对您的特定示例进行一些重写。但抛出 GRUB2 来引导另一个磁盘似乎是要走的路。您set root=(hd1,1)
希望首先找到引导加载程序分割第二个磁盘的。
答案3
我已经放弃了这个,我正在使用 BIOS 启动选择器进行双启动。
答案4
就目前我所记得的
- Windows现在有2种安装模式:MBR和GPT,UEFI只能使用第二种,所以你必须确保硬盘格式化为GPT;这个分区结构很可能就是你提到的“UEFI模式”
- Grub2 软件包中的 OS-Prober 必须能够定位 Windows(还不是 Win8)并将其单独包含到启动菜单中
也许你没有正确安装Windows,所以Grub自然找不到它