配置双启动,Windows 7 和 Ubuntu 12.04(带或不带 EFI)

配置双启动,Windows 7 和 Ubuntu 12.04(带或不带 EFI)

我刚刚在装有 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 启动管理器我的 Ubuntu 启动加载程序在哪里。

所以我有两个问题:

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

我阅读了几篇有关它的文章,但没有发现任何有用的内容。

答案1

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

从您的描述中无法准确判断正在启动的是什么。我最好的猜测是 Windows 引导加载程序正在启动,而您使用 EasyBCD 创建的 Ubuntu 条目不起作用。这并不奇怪;据我上次检查,Windows EFI 引导加载程序无法将启动过程重定向到另一个引导加载程序,因此 EasyBCD 的非 Windows 条目对您来说毫无用处。如果我误解了正在发生的事情,而您实际上看到的是 GRUB 启动菜单,它能够启动 Windows 但不能启动 Linux,那么请详细说明。

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

  • 您可以重新配置计算机的启动设置,使 GRUB 2 成为默认的启动加载程序,并重新配置 GRUB 以包含 Windows 条目。这将需要重命名启动加载程序文件和/或使用 Linux 的“efibootmgr”等实用程序来调整计算机 NVRAM 中的启动加载程序列表。
  • 您可以添加第三方启动管理器,例如改装或其较新的分支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 引导加载程序的信息,请参阅我的有关该主题的网页。

答案2

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

如果这是 UEFI 系统,那么重新安装将是最快和直截了当获得有效安装的方法。我建议删除分区 sda5 到 sda7,因为它们似乎是由你创建的。然后从ubuntu-12.04-桌面-amd64.iso (在UEFI mode启动时选择从 CD 启动时,应该有两个从 CD 启动的选项,一个带 UEFI,一个不带),以确保您在启用 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 进行双启动一样。

答案3

可能是 GRUB 菜单没有正确安装。尝试使用以下命令修复它grub 修复 CD。使用此 CD 启动并让其自动修复您的系统。您可以找到更多信息请点击此处

答案4

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

相关内容