尽管万维网上存在大量双启动问题,我还是决定针对我的具体问题创建新主题。
我有一台笔记本电脑华硕 K55V + UEFI + 500Gb HDD + Windows 8 升级到 8.1。磁盘分为几个分区,根据 GPT 磁盘要求,用户的分区为 C(Windows 8.1)和 D(数据)。我真的想缩小驱动器 D 以添加新的 Linux 分区,我们称之为 E,然后执行以下操作:
- 因为我的 BIOS 是 UEFI,是否可以在分区 E 上安装 Ubuntu,而根本不使用 GRUB?UEFI 是否会提示加载 Windows(从 C)或 Linux(从 E)?可能吗?
- 如果 #1 无法实现,我希望有以下启动选项:在某个闪存盘上安装额外的引导加载程序 (GRUB2?),它将只知道一个操作系统 - Linux。然后,在必要时,只需将此闪存盘插入 USB 插槽即可启动 Linux。
通过这种方式,我不需要修改预装的 Windows 及其 EFI 引导程序,同时还可以使用 Linux。我认为这是非常理想的程序,不是吗?我的问题是实现我的目标的具体步骤是什么?
答案1
首先,你说你的“BIOS 是 UEFI”,但事实并非如此。你几乎肯定没有 BIOS;你有一个 UEFI。这听起来像是在吹毛求疵,但事实并非如此;将 EFI/UEFI 称为“BIOS”会引入许多假设,而这些假设在 EFI 世界中根本不适用。(“UEFI”本质上是 EFI 的 2.x 版本,所以我通常使用“EFI”,因为它是更通用的术语。)一般来说,EFI 是一个替代品适用于 BIOS,而不是 BIOS 的扩展。不过,也有一些例外和注意事项:
- 一些非常早期的 EFI 是建立在传统 BIOS 之上的。我见过的一个例子是技嘉的混合 EFI。此类系统做有一个 BIOS,它既用于启动 BIOS 模式的操作系统,也用于初始化硬件以实现 EFI 的利益。
- 大多数适用于 x86-64 系统的现代 EFI 都包含一个兼容性支持模块 (CSM),这使得 EFI 能够使用为 BIOS 编写的引导加载程序。CSM 之于 EFI 就像 WINE 或 dosemu 之于 Linux;但正如 WINE 不会将 Linux 变成 Windows 一样,CSM 也不会将 EFI 变成 BIOS。
抱歉,如果这看起来冗长而迂腐,但值得强调,因为我看到很多人带着 BIOS 假设进入 EFI 领域,这给他们带来了麻烦。这在你自己的问题中很明显……
在基于 EFI 的计算机上,安装第二个操作系统通常不会覆盖第一个操作系统的引导加载程序。当然,您必须为第二个操作系统的分区腾出空间,但这与引导加载程序无关。在 EFI 下,引导加载程序作为单独的文件存储在EFI 系统分区 (ESP),这是一个 FAT 分区,类型代码为 C12A7328-F81F-11D2-BA4B-00A0C93EC93B(中的 EF00 gdisk
、在 GParted 中设置的“启动标志” parted
、“Ubuntu 安装程序中的“EFI 系统分区”或“EFI 启动分区”)。
EFI 通过存储在 NVRAM 中的条目确定要使用哪个引导加载程序。当您安装 Ubuntu 时,它将在 ESP(存储在 中EFI/ubuntu
)上创建自己的引导加载程序(GRUB),将该新的引导加载程序添加到计算机基于 NVRAM 的列表中,然后将 Ubuntu 条目设置为默认。Ubuntu 不会更改 Windows 引导加载程序,但是只有当您进入计算机自己的引导管理器并选择它或者从 GRUB 链式加载它时,Windows 引导加载程序才会运行。安装 Ubuntu 后,您可以使用实用efibootmgr
程序调整这些设置;例如,您可以将 Windows 引导加载程序设置为默认,然后使用机器的内置引导管理器选择 GRUB。要做到这一点,您必须先通过键入来识别现有条目sudo efibootmgr
,然后使用选项设置所需的引导顺序(以便 Windows 为第一个)-o
,例如sudo efibootmgr -o 2,5
将Boot0002
第一和Boot0005
第二。
请注意,支持 Linux 的引导加载程序必需的启动 Linux。不一定非要使用 GRUB,但某物是必需的。因此,只有您手动安装某些东西,选项 #1 才会起作用。有几种适用于 Linux 的 EFI 引导加载程序可用 - 请参阅我关于这个主题的页面有关详细信息。原则上,您可以在 USB 闪存驱动器上安装其中一个,而不改变 ESP 和 NVRAM。不过,如果您使用的是基于磁盘的常规 Ubuntu 安装,我不知道这样做有什么意义;这就像试图通过禁止在歌剧院内使用 iPod 来阻止音乐进入歌剧院一样。
如果你想阻止 GRUB 在 Ubuntu 中安装,技巧如下:
- 当您启动 Ubuntu 安装程序时,选择安装前试用 Ubuntu 的选项,而不是安装它的选项。
- 出现桌面后,单击左上角的 Ubuntu 图标,
terminal
在搜索字段中输入内容,然后按回车键或单击终端图标,打开终端窗口。 - 在终端窗口中,输入
ubiquity -b
。这将启动安装程序 (Ubiquity),并带有一个选项 (-b
),用于不安装引导加载程序。
安装完成后,您需要自行安装引导加载程序,无论是安装到 ESP 还是 USB 闪存驱动器。同样,请参阅我的 EFI 引导加载程序页面(前面提到过)以获取有关可用内容和基本安装说明的信息。
答案2
选项 1 最有可能,这取决于您的 BIOS 对 UEFI 的实现。
GRUB 可以(并且应该如此,如果您的安装盘是在 UEFI 模式下启动的,或者您随后安装了 UEFI 引导加载程序)自行安装到您的 EFI 分区上,并且不会覆盖 Windows 引导加载程序。然后,您可以选择使用 Windows 引导加载程序或 GRUB 进行引导(使用 UEFI BIOS 的引导菜单)。
只要您的 UEFI BIOS 没有硬编码为从 EFI 分区上的 /EFI/Boot/bootx64.efi 启动,并且安装了 GRUB UEFI 引导加载程序,那么它就可以开箱即用。