双启动UEFI Windows 7和Ubuntu 12.04(均为64位)。W7条目未出现在GRUB中


8

尝试在两天内安装两个操作系统后,我感到困惑和发疯……我有128 GB的SSD和500 GB的HDD都空了。我的笔记本电脑是华硕K55VM。BIOS支持UEFI。

我做了什么:

  1. 安装新的SSD(三星830 128GB)

  2. 在liveCD上使用GParted来创建新的分区表(GPT),并为不同的目的创建3个分区(在SSD中):

    • 分区1:80 GB(w7);
    • 分区2:30 GB(Ubuntu 12.04 -Just /-);
    • 分区3:未使用10 GB(用于将来扩展其他分区)
  3. 在分区1中安装Windows 7(带有UEFI)。这将创建:

    • / dev / sda1-> 100 MB用于系统(我猜是UEFI引导)-FAT32
    • / dev / sda2-> 100 MB代理。对于MSR
    • / dev / sda3-> 79.800 MB aprox。用于Windows7数据

在这一点上,一切正常。我有W7。现在,我按如下所示安装Ubuntu 12.04 amd64(带有UEFI):

  1. 在分区2-> / dev / sda4 30 GB ext4中安装/,在硬盘中安装/ home并交换。

  2. 我在/ dev / sda1(应该是UEFI引导)中选择引导程序。

  3. 我安装更新并重新启动。

问题:现在仅显示带有Ubuntu条目而不是Windows 7的grub菜单。

找到了替代解决方案:打开笔记本电脑时,在加载GRUB之前,我按ESC键并出现BIOS引导程序,因此我可以选择引导Windows分区,Ubuntu分区,DVD,USB等。引导不同操作系统的方法。

我尝试过:sudo update-grub2没有成功。

我能做什么??

Answers:


6

通过挂载efi分区来找到Windows引导加载程序所在的位置:

sudo mount -t vfat /dev/sdx1 /mnt/efi/

并搜索bootmgfw.efi。然后,找到驱动器的UUID:

sudo grub-probe --target=fs_uuid /mnt/efi/EFI/Microsoft/Boot/bootmgfw.efi

将此UUID添加到/etc/grub.d/40_custom

menuentry "Windows x86_64 UEFI-GPT" {
    search --fs-uuid --no-floppy --set=root UUID
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

终于跑了update-grub


你是我的血腥英雄!非常感谢,效果很好。你让我开心=)

1
有关信息,Boot-Repair将在1单击中添加该条目。help.ubuntu.com/community/引导修复
LovinBuntu 2012年

除了Boot-repair无法在我的系统上工作...
fccoelho 2012年

3

jarondl的解决方案非常好,但是另一个解决方案是使用单独的启动管理器程序在GRUB和Windows启动加载程序之间进行选择。我知道可以安装三个EFI引导管理器:

  • rEFIt,可在Ubuntu的存储库中找到。请注意,rEFIt网站上的版本无法在基于UEFI的PC上运行,因为它使用Mac专用的文件格式。即使是Ubuntu版本,在基于UEFI的PC上也有一些小故障。理想情况下,rEFIt提供一个漂亮的GUI引导菜单(尽管它也具有文本模式)。
  • rEFInd,它是rEFIt的更新版本,它修复了各种UEFI故障,并与3.3.0内核的内置EFI引导加载程序配合使用进行了扩展。请注意,我分叉/维护了rEFInd。
  • gummiboot,这是一个纯文本的启动管理器。(该站点会忘记我是谁,因此拒绝让我发布两个以上的超链接,否则我会提供一个。)

rEFIt和rEFInd都会自动检测其他引导加载程序,因此,在配置它们之后,它们应该检测任何操作系统的引导加载程序并提供菜单。我还没有尝试过gummiboot,所以我不知道它的设置有多么简单,但是从概念上讲它类似于rEFIt / rEFInd。使用这些程序中的任何一个都会增加启动过程的复杂性,因此,如果GRUB可以工作并且您对此感到满意,那么使用这些程序就毫无意义。根据我的经验,如果GRUB是气质的或者只是普通的无法正常工作,它们就非常有用,就像UEFI系统上的GRUB 2经常遇到的那样。在这种情况下,您可以放弃GRUB 2而使用ELILO或3.3.0或更高版本的内核的EFI存根加载器。这些引导加载程序无法将引导过程重定向到Windows,这使得单独的引导管理器非常有用。


Refind不支持ntfs分区...
fccoelho 2012年

1
rEFInd不附带NTFS驱动程序这一事实无关紧要。Windows的EFI引导加载程序位于FAT的EFI系统分区(ESP)上,因此rEFInd不需要访问NTFS卷。同样,在这个分数上单选rEFInd是不公平的;rEFIt和gummiboot均未附带NTFS驱动程序。
Rod Smith

0

付款注意:仅适用于x64

grub-probe --target=fs_uuid /boot/efi/efi/Microsoft/Boot/bootmgfw.efi

将此添加到/etc/grub.d/40_custom

menuentry "Boot bootx64.efi, generated by Boot-Repair" {
search --fs-uuid --no-floppy --set=root UUID

**chainloader (${root})/EFI/Boot/bootx64.efi**
}

其他代码不起作用。

在ASUS N56V上测试

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.