我有两个独立的 SSD。一个装有 Win7,另一个装有 Ubuntu。以前从 Ubuntu 启动,这样我就可以选择 Win7 或 Ubuntu。
Ubuntu SSD 昨天意外坏了(真是好时光,万岁...),所以我买了一个新的,在上面安装了 Ubuntu 14.04.3,但这次使用了 EFI 启动分区。按照建议这里:
所以现在,sudo parted -l
我得到:
Win7固态硬盘
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 106MB 105MB primary ntfs boot
2 106MB 256GB 256GB primary ntfs
Ubuntu 固态硬盘
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 536MB 535MB fat32 boot
2 536MB 50.5GB 50.0GB ext4
3 50.5GB 241GB 190GB ext4
4 241GB 250GB 9523MB linux-swap(v1)
我的问题是,无论我尝试什么,我都无法让 Ubuntu 像以前一样在引导加载程序菜单中显示 Win7 选项。
在 ubuntu 中安装 Win7 SSD 并运行后,update-grub
它并没有添加到引导加载程序菜单中。什么也sudo os-probe
没有返回。boot-repair
不幸的是,运行也没有解决任何问题。添加手动条目到/etc/grub.d/40_custom
:
menuentry "Windows 7" {
search --fs-uuid --no-floppy --set=root F977-F4AF
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}
或者更复杂的这也没有解决..
我可以通过选择更改 BIOS 中的启动顺序轻松启动 Windows,但如果能像我以前一样将其作为 Ubuntu 启动加载程序菜单中的一个选项就太好了。
我让 Win7 采用 MBR 而 Ubuntu 采用 GPT,这难道会永远把事情搞砸吗?
非常感谢您提前提出的任何建议!
答案1
您已设置了混合启动模式 - Ubuntu 以 EFI 模式启动,Windows 以 BIOS 模式启动。这是不是这是件好事。你有几种选择,难度大致按以下顺序增加:
- 使用固件的启动管理器(与从外部磁盘启动时使用的相同)在 Ubuntu 和 Windows 之间进行选择。(Ubuntu 将按此列出,但 Windows 可能会通过驱动器品牌和/或型号进行识别。)
- 安装我的rEFInd 启动管理器在 Ubuntu 中。然后您必须编辑
/boot/efi/EFI/refind/refind.conf
:取消注释该scanfor
行并确保它hdbios
在选项之中。这应该使您能够以 EFI 模式启动 Ubuntu 或以 BIOS 模式启动 Windows。从短期来看,这比前面的选项更难,但从长远来看更容易。 - 为 Ubuntu 安装 BIOS 模式引导加载程序并以 BIOS 模式启动两个操作系统。
- 在 BIOS 模式下重新安装 Ubuntu,并在 BIOS 模式下启动两个操作系统。
- 按照所述将 Windows 转换为以 EFI 模式启动这里。
- 以 EFI 模式重新安装 Windows。您肯定必须重新对 Windows 磁盘进行分区。
其中一些选项可能并非在所有情况下都有效。例如,某些 EFI 不支持前两个选项所需的那种简单的模式切换。考虑到您已经创建了这种情况,您的 EFI 是否是无法处理这种情况的原始 EFI 之一值得怀疑,但可能是。