我在我的笔记本电脑上安装了双启动 Windows 7/8,现在我还添加了 Ubuntu 14.04.1。
为了安装 Ubuntu,我在 sda1 上建立了一个 efi 分区,一个交换分区(sda6)和根分区(sda7)。安装后,Ubuntu 默认启动,因此我安装了 GRUB,然后安装了 Boot-Repair,启动推荐的选项,但我收到以下消息:
GPT detected. You need to create a BIOS-boot partition .... or try to active the seperate efi boot option ....
因此我尝试了这个高级选项并再次修复,但在整个过程之后我收到以下消息:
修复时出现错误,在纸上写下以下网址....
重新启动后,GRUB 菜单上两个 Windows 分区均不可见。
报告链接bootinfo
:http://paste.ubuntu.com/8291284/
我也尝试手动添加菜单项,/etc/grub.d/40_custom
但是当我执行以下操作时:
menuentry 'Windows 7' {
insmod part_gpt
insmod ntfs
set root='hd0,gpt4'
chainloader +1
}
我在 GRUB 上获得了一个新条目,但如果我选择它,就会出现错误:“无效的 efi 文件路径”
找不到如何让它工作,所以如果你有任何建议,请告诉我
答案1
看起来您已成功使用 UEFI 启动,至少期望 UEFI 二进制文件的错误消息表明了这一点。
您现在唯一需要做的就是:
- 正确配置自定义 GRUB 条目(如果您的 Windows 分区的根目录中有
EFI
文件夹,则只要提供了正确的值,您 2 个文件夹就应该可以工作) - 或者将每个 Windows 安装的 EFI 加载程序安装到 ESP(请参阅
bcdboot
我之前回答中的命令,这应该将 .efi 二进制文件复制到 ESP 并生成 BCD 配置,即使你使用传统启动方式启动,但这可能很困难,因为你必须在 Windows 中安装 ESP) 并update-grub
在 Ubuntu 中重新运行。当您从 UEFI 启动的 Windows 再次运行 bcdboot 时,您还应该能够直接从固件设置启动至少 Windows 8(这将另外创建 NVRAM 条目)。
请注意,Windows 7 版本的 bcdboot 不支持该/f
开关。
简单来说
如果您启动了 Windows 8,将您的 EFI 系统分区(简称 ESP,似乎是 sda1)挂载到E:
并将您的 Windows 7 分区挂载到D:
,然后运行:
bcdboot C:\Windows /s E: /f uefi
bcdboot D:\Windows /s E: /f uefi
不过请注意,这两个命令都会写入同一位置(\EFI\Microsoft
我猜是),并且可能会互相覆盖,因此您可能需要制作副本(例如\EFI\Microsoft7
& \EFI\Microsoft8
)。然后启动 Ubuntu 并运行sudo update-grub
。