我正在尝试为我的新 12.10 grub 引导加载程序添加 Windows 7。
没有任何事情成功;例如..复制bootx64.efi
方法,我得到了这个输出:
grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
grub-probe: error: cannot find a GRUB drive for /dev/sda1. Check your device.map.
....... my device map .......
(hd0) /dev/disk/by-id/ata-WDC_WD6400BPVT-55HXZT3_WD-WXD1EA1MSVR4
....... 40_custom .....
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root 80BD-E086
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}
当启动到 Windows 7 时,出现空白黑屏,光标闪烁 2 秒,然后重新启动,我也尝试过启动修复。
我想我缺少 Windows UEFI Bootloader 文件。
答案1
检查/boot/efi
目录树。假设您的 ESP 已安装在那里,您应该有一个名为 的文件/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
。(请注意, 之后的大小写可能会有所不同/boot/efi
,因为这是 FAT 文件系统,不区分大小写。)如果该文件丢失,请尝试扩大搜索范围/boot/efi
;输入find /boot/efi -iname "*.efi"
。这将向您显示 ESP 上的所有 EFI 引导加载程序和其他程序。
如果bootmgfw.efi
文件存在但位于陌生位置,请尝试移动它。如果不存在,则需要运行 Microsoft 的恢复工具来恢复它。不过,他们可能会修改您的引导加载程序引导顺序,从而需要启动 Linux 紧急磁盘并使用 进行修复efibootmgr
。
如果bootmgfw.efi
存在并且位于其应在的位置,请尝试grub-mkconfig -o /boot/grub/grub.cfg
。这将使用您的条目生成一个新的 GRUB 配置文件40_custom
。(该条目免除了探测 Windows 安装的需要。)
如果失败了或者你不喜欢结果,你可以补充或放弃 GRUB。我建议重新索引(免责声明:我维护它)。rEFInd 的优点是可以在启动时自动探测可用的引导加载程序,因此它应该可以自动检测 Windows 和 GRUB。由于您使用的是 Ubuntu 12.10,rEFInd 甚至可以在没有 GRUB 帮助的情况下启动 Ubuntu,尽管这需要一些额外的配置,如所述在 rEFInd 的 Linux 启动页面上。