Grub2 和 os-prober 无法检测到我的 Windows 7

Grub2 和 os-prober 无法检测到我的 Windows 7

我删除了旧的 Elementary OS,并用 Ubuntu 14.04 替换它。

我还在另一个驱动器上安装了 Windows 7,它在 Elementary OS(基于 Ubuntu 12.04)下运行良好。但是,安装时未检测到该驱动器,并且仍然未被检测到。

我尝试了其他类似的响应,但找不到解决方案。这是 bootinfoscript 的输出http://paste.ubuntu.com/12179868/

到目前为止,我尝试过:

卸载并安装 os-prober。问题依然存在,运行时没有输出。

在 /etc/grub.d/40_custom 上创建手动条目

menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set 94A47FB5A47F9906  
     chainloader +1  
}

配置是否正确?我编辑文件后运行 update-grub,但在尝试启动时收到错误“无效的 EFI 文件路径”。

答案1

我终于找到了一个无需删除 Windows 分区即可解决问题的方法。正如其他人指出的那样,问题在于我的 Windows 安装是传统的 BIOS 启动,而 Ubuntu 现在使用的是 UEFI,这是不兼容的。

解决方案是将 Windows 安装转换为 UEFI。唯一需要的东西是 Windows 安装 DVD(或可启动的 UEFI 闪存盘)和可运行的 Ubuntu。

首先,将 Windows 分区转换为 GDP

sudo gdisk /dev/sdX
Command (? for help): w

其中 sdX 是 Windows 驱动器。

然后,启动 Windows 安装盘,并从命令提示符运行此链接从步骤 7 开始。这将用 UEFI 启动分区替换现有的 BIOS 启动分区。

完成这些步骤后,你可以运行

sudo update-grub

更新您的启动菜单。

答案2

使用 Windows 光盘中的“fixmbr”命令。它将删除 grub。然后使用 Ubuntu live cd 恢复 grub。然后它应该开始工作。

答案3

我知道,这是一个很老的话题,但今天发生在我身上。把答案放在这里,可能会对某些人有帮助。就我而言,缺少 os-prober 工具,因此 grub 2 中的 os-prober 脚本永远找不到 windows。

安装后:

sudo apt-get install os-prober

更新 grub 后我终于可以工作了:

sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Sourcing file `/etc/default/grub.d/60_mint-theme.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.3.0-53-generic
Found initrd image: /boot/initrd.img-5.3.0-53-generic
Found linux image: /boot/vmlinuz-5.0.0-32-generic
Found initrd image: /boot/initrd.img-5.0.0-32-generic
Found linux image: /boot/vmlinuz-4.15.0-101-generic
Found initrd image: /boot/initrd.img-4.15.0-101-generic
Found Windows 7 on /dev/sda1
done

相关内容