grub-probe:错误:找不到 /dev/sda1 的 GRUB 驱动器

grub-probe:错误:找不到 /dev/sda1 的 GRUB 驱动器

我正在尝试为我的新 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 启动页面上。

相关内容