使用或不使用EFI配置双引导,Windows 7和Ubuntu 12.04

我刚刚在Windows 7的笔记本电脑上安装了Ubuntu 12.04,但是我无法从Ubuntu启动。

首先,在安装过程中我制作了这些分区(可能太多):

/dev/sda1 FAT32 SYSTEM 200Mb boot (EFI boot, i guess) /dev/sda2 unknown file system 128 Mb msftres (Windows Boot Manager) /dev/sda3 NTFS OS 100 Gb (Windows 7) /dev/sda4 NTFS DATOS 315 Gb (Data partition) /dev/sda5 ext4 28 Gb (/home) /dev/sda8 unknown file system 1 Gb biog_grub (i'm not very sure why i made this one) /dev/sda6 ext4 17 Gb (/ Ubuntu 12.03 installed withou errors aparently) /dev/sda7 linex-swap 2 GB (swap) 

我可以完美地从Windows启动。 实际上我尝试使用EasyBCD配置Windows启动管理器,但它无法识别任何启动项。 无论如何,我添加了一个Ubuntu Entry并自动配置它。

现在我有一个似乎正常工作的Windows 7引导条目和Ubuntu 12.04,它提示“找不到应用程序”消息。

我从Ubuntu的USB重新启动并尝试从命令行修复GRUB并启动修复。 没有结果。

据我所知,我必须告诉Windows启动管理器我的Ubuntu启动加载器在哪里。

所以我有两个问题:

  1. 实际上,我不知道我的Ubuntu启动加载程序,GRUB或GRUB2或其他什么。
  2. 我不知道如何在Windows启动管理器中设置我的Ubuntu条目。 我猜使用BCDedit.exe作为EasyBCD没有显示条目。 无论如何,我不知道使用什么参数。

我读了几篇关于它的文章,但我没有发现任何有用的东西。

您的分区布局看起来很奇怪,但这又是制造商进行OEM安装的方式。

如果这是UEFI系统,那么重新安装将是获得有效安装的最快捷直接的方式。 我建议删除分区sda5到sda7,因为它们似乎是由你创建的。 然后在UEFI mode从ubuntu-12.04-desktop-amd64.iso安装Ubuntu(当选择在启动时从CD启动时,应该有两个选项用于从具有UEFI的CD启动,一个没有启动)以确保您正在安装UEFI支持已启用。 具有Ubuntu分区和单独的主分区的分区布局是一个不错的选择。 对于使用挂起到HDD(hibernate),您应该至少选择RAM的大小作为交换分区的大小。 在12.04中重新启用hibernate还有一个额外的步骤要执行。 安装完成后,你应该有一个Ubuntu,你的硬盘上安装了grub-efi-amd64软件包。 安装程序应该已经识别出正确的UEFI系统分区(UEFI系统分区有特定的GPT分区代码 ),在其中放置grub-efi-stub并将其注册到UEFI引导变量中。

最后,您应该在UEFI启动选择中至少有一个用于Windows和Ubuntu的条目。 如果您没有与Windows相关的条目,那么这可能不是UEFI系统,您不应尝试尝试我建议的解决方案(您将无法在UEFI模式下启动CD)。 双引导应该通过GRUBs链加载机制工作 ,因此通过UEFI将Ubuntu设置为默认引导选项应该像过去使用GRUB的双引导一样工作。

首先,您的分区表显然是GUID分区表(GPT)。 由于Windows 在计算机使用可扩展固件接口(EFI)而不是旧的基本输入/输出系统(BIOS) 时才从GPT磁盘启动,因此很明显您正在以EFI模式启动。 这是一个关键细节,因为传统的BIOS解决方案不太可能在EFI系统上运行。

从你的描述中不清楚究竟什么是启动。 我最好的猜测是Windows启动加载程序正在启动,并且您已经使用EasyBCD创建了一个无效的Ubuntu条目。 这并不奇怪; 在我检查的最后一次,Windows EFI启动加载程序无法将启动过程重定向到另一个启动加载程序,因此EasyBCD的非Windows条目对您来说将毫无用处。 如果我误解了正在发生的事情,而你实际上看到了一个能够启动Windows而不是Linux的GRUB启动菜单,请详细说明。

如果到目前为止我的解释是正确的,您可以使用固件的启动菜单选择GRUB而不是Windows,并使用它来启动Linux。 如果您的固件的启动管理器足够好,这甚至可能是一个可接受的长期解决方案。 不幸的是,EFI固件实现的启动管理器的质量变化很大,而且很多都很差。 如果在固件中找不到启动菜单,或者使用它很笨拙,则有两个主要选项:

  • 您可以重新配置计算机的引导设置,使GRUB 2成为默认引导加载程序,并重新配置GRUB以包含Windows条目。 这将需要重命名引导加载程序文件和/或使用Linux的“efibootmgr”等实用程序来调整计算机NVRAM中的引导加载程序列表。
  • 您可以添加第三方启动管理器(例如rEFIt或其较新的fork rEFInd)来控制启动Windows与Linux的选择。 rEFInd网站包含详细的安装说明。 (请注意,我是将rEFIt分配到rEFInd的人。)

请注意,EFI引导过程涉及存储在称为EFI系统分区(ESP)的分区上的文件,即您计算机上的/ dev / sda1。 引导加载程序文件通常驻留在该分区上的EFI目录的子目录中,如EFI / Microsoft或EFI / ubuntu。 NVRAM包含引导加载程序列表以及固件应尝试启动它们的顺序。 管理引导加载程序涉及添加,删除或移动引导加载程序文件以及编辑NVRAM条目。 在某些情况下,如果NVRAM条目为空或指向无效的引导加载程序,则会加载默认引导加载程序(EFI / Boot / bootx64.efi;尽管某些实现也支持EFI / Microsoft / Boot / bootmgfw.efi作为默认值)。 有关此主题的更多信息以及有关Linux的EFI引导加载程序的信息,请参阅我的主题网页。

可能没有正确安装GRUB菜单。 尝试用grub-repair CD修复它。 使用此CD启动并自动修复系统。 您可以在此处找到更多信息 。

由于Windows使用EFI,您需要:

  1. 安装grub-efi 。 这可以通过勾选Boot-Repair的“Separate / efi”选项来执行。
  2. 然后设置BIOS以在EFI分区中引导grub * .efi文件

可能是您在安装过程中尝试升级,这就是为什么它会创建额外的1GB空间。 您可以使用ubuntu轻松使用双启动而无需安装任何东西。 我在谈论默认安装的ubuntu中的grub2。 你只需要一个live cd配置双启动。 这是grub2恢复的一个很好的例子。