我已经安装了 Windows 7 和 Ubuntu 16,我可以在引导加载程序上看到它们,但我只能启动 Ubuntu。如果我在引导加载程序中选择 Windows,它会显示一条错误消息,然后重新启动计算机。似乎引导加载程序上的 Windows 链接已损坏。
$ sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 97656344 97654297 46.6G 83 Linux
/dev/sda2 * 97656832 1949212671 1851555840 882.9G 7 HPFS/NTFS/exFAT
/dev/sda3 1949214718 1953523711 4308994 2.1G 5 Extended
/dev/sda5 1949214720 1953523711 4308992 2.1G 83 Linux
Device Start End Sectors Size Type
/dev/sdb1 2048 206847 204800 100M EFI System
/dev/sdb2 206848 468991 262144 128M Microsoft reserved
/dev/sdb3 468992 151764991 151296000 72.1G Microsoft basic data
/dev/sdb4 243890176 250068991 6178816 3G Linux swap
/dev/sdb5 151764992 243890175 92125184 44G Linux filesystem
看起来 init 是sda2
包含我的 Windows 数据的分区,但是 Windows 操作系统在 中sdb3
。
生成的引导修复引导信息脚本这些结果。
我已经安装了启动修复,但它说它在传统模式下不起作用,只能在 UEFI 中起作用。
另外,我还添加了这些行/etc/grub.d/40_custom
并更新了 grub,但是这些条目也不允许我启动 Windows 7:
menuentry "Windows 7aa (loader) (on /dev/sdb1)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
chainloader +1
}
menuentry "Windows 7bb (loader) (on /dev/sdb3)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
chainloader +1
我还可以尝试什么?
我也尝试过
sudo update-grub and sudo update-grub2
更新:
grub 中的 Windows 条目向我显示此错误“分区不存在,请按任意按钮继续...”,然后再次出现 grub 菜单。我尝试为 Microsoft 保留分区 /dev/sdb2 (hd1/msdos2) 添加新的 Windows 条目,它显示了不同的屏幕:
引导加载程序 Windows 管理员,选择仅带有 Windows 选项的操作系统,如果我选择它,则计算机重新启动。
答案1
尝试挂载以设置 root='(hd1,msdos2)' --> sdb2 或 Microsoft Reserved,在我的 hackintosh 上,我只能从 Microsoft Reserved(Clover Bootloader)运行我的 Windows。
答案2
最后我使用带有 Boot-repair 的 USB 解决了该问题。
所有评论都表明问题出在我的 Windows 安装在 UEFI 中,而 Ubuntu 16.04 安装在 BIOS 中。更改 BIOS 中的选项并不能解决问题。然后我尝试将 Ubuntu 转换为 UEFI 模式,但教程说我需要运行 Boot-repair。Ubuntu 中安装了 Boot-repair,但它不起作用,因为 Ubuntu 运行在传统模式而不是 EFI 下。然后我创建了一个带有 Boot-repair 的 USB,经过 2 小时的“推荐修复”,它终于起作用了。
现在 GRUB 已安装在 UEFI 中,我不再像以前那样有两个菜单。Grub 有 8 个适用于 Windows 的新条目,但只有 1 个有效,因此我删除了其他条目,并编辑了文件 /etc/grub.d/25_custom。
非常感谢您快速的帮助、关注和建议。