使用或不使用EFI配置双启动,Windows 7和Ubuntu 12.04


9

我刚刚在装有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条目,它会自动对其进行配置。

现在,我有了启动项,Windows 7似乎可以启动,而Ubuntu 12.04则提示出现“找不到应用程序”消息。

我从使用Ubuntu的USB重新启动,并尝试通过命令行和引导修复来修复GRUB。没有结果。

据我了解,我必须告诉Windows Boot Manager我的Ubuntu引导加载程序在哪里。

所以我有两个问题:

  1. 实际上,我不知道我的Ubuntu引导加载程序GRUB或GRUB2在哪里。
  2. 我不知道如何在Windows Boot Manager中设置我的Ubuntu条目。我想使用BCDedit.exeEasyBCD不会向我显示条目。无论如何,我不知道要使用什么参数。

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


您不一定需要在UEFI上同时启动Windows和Linux。请按照本指南将UEFI转换为MBR-BIOS,而不会丢失数据。或在此处
Nehal J Wani 2012年

Answers:


4

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

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

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


你是对的。显然,当我为grub创建分区时,ubuntu安装程序忽略了我的EFI分区。擦除该分区并重新安装后,它现在可以正常工作。;) 非常感谢你。
Keroak

10

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

从您的描述中还不清楚启动什么。我最好的猜测是Windows启动加载程序正在启动,并且您已经使用EasyBCD创建了无法正常工作的Ubuntu条目。这不足为奇。在我最后一次检查时,Windows EFI引导加载程序无法将引导过程重定向到另一个引导加载程序,因此EasyBCD的非Windows条目对您无用。如果我误解了正在发生的情况,而您实际上看到的是GRUB引导菜单,它可以引导Windows,但不能引导Linux,请详细说明。

如果到目前为止我的解释是正确的,则可以使用固件的引导菜单选择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引导加载程序的信息,请参阅我在该主题上的网页。


谢谢您的回答。实际上,我选择按照LiveWireBT的建议尝试重新安装Ubuntu。我做错了是在以前的安装上创建一个新的grub分区。因此,安装程序将GRUB放在该分区中,而不是在EFI分区上。重新安装后,我不需要进行任何更改,但是您的解释和您的网站对于了解我在做什么非常有用。
Keroak


1

当Windows使用EFI时,您需要:

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

您如何执行第2步?
barro32

对于步骤2,某些用户只需要使他们的BIOS以UEFI模式启动硬盘即可。但是可能还有其他情况,因为一台PC上的固件可能不同。
LovinBuntu 2012年

0

可能是您尝试在安装过程中进行升级,这就是为什么它会创建额外的1GB空间的原因。您可以使用ubuntu轻松使用双重引导,而无需安装任何程序。我说的是默认安装的ubuntu中的grub2。您只需要一个实时CD配置双启动。 是grub2恢复的很好的例子。


谢谢,但是我已经做到了,我没有同时使用grub和grub 2。
Keroak 2012年
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.