''EFI 引导分区'' 和 ''biosgrub'' 分区

Gho*_*eyX 24 uefi

为什么我需要这些?我已经在非 UEFI(主引导记录)下安装了 Ubuntu,并且安装了没有 'biosgrub' 的 Ubuntu 并且它工作正常,而其他时候我被要求制作一个 'biosgrub' 分区。我不知道为什么有时我需要它而其他人不需要它(它们都在同一个系统上)。

当我使用 UEFI(GUID 分区表)时也会发生同样的事情。唯一的区别是我被要求创建一个“EFI 引导分区”,但与“biosgrub”一样,有时我会被要求创建,有时我不会被要求创建。

对于我当前的安装,我被要求制作一个,但我没有,我的系统很好。系统、相同的硬件、BIOS 等都没有变化……有人可以解释一下吗?

Rod*_*ith 42

有四种情况(BIOS 与 EFI 和 MBR 与 GPT),但其中两种具有相同的需求(其中一种非常罕见):

  • 在具有传统 MBR 分区表的基于 BIOS 的传统计算机上,GRUB 的可执行代码像婴儿扔的意大利面一样四处传播。其中一些位于 MBR 的引导代码部分,一些位于正式未分配的后 MBR 扇区中,还有一些位于 Linux/boot分区中。这真的是一团糟,它之所以有效,只是因为开发人员实际上已经有几十年的时间来创造聪明的黑客并解决(几乎)所有的问题。
  • 在具有新 GUID 分区表 (GPT) 的传统基于 BIOS 的计算机上,GRUB 代码与前一种情况类似;但是,紧跟在 MBR 之后的扇区不是未分配的;它们由 GPT 本身使用。GPT 没有为 GRUB 提供类似的劫持位置,因此 GRUB 的开发人员决定使用BIOS 引导分区(GParted 并parted通过bios_grub标志标识)来保存将进入 MBR 磁盘上的后 MBR 扇区的代码。这实际上比 MBR 方法更安全、更干净,因为它可以保护 GRUB 代码免受其他可能尝试使用未分配空间的程序的影响。
  • 在具有较新 EFI 而不是 BIOS 的计算机上,引导加载程序不存储在 MBR、正式未分配的后 MBR 扇区或 BIOS 引导分区中;相反,引导加载程序作为普通文件驻留在称为EFI 系统分区 (ESP)的 FAT 分区上。(令人困惑的是, Debian 和 Ubuntu 安装程序将 ESP 称为“EFI 引导分区”,但该名称是非标准的。GParted 并将partedESP 标识为“bootflag”设置,尽管该术语在 MBR 磁盘上的含义完全不同。)ESP 可以存在于 GPT 磁盘或 MBR 磁盘上,但前者在基于 EFI 的计算机上更为常见。EFI 方法更安全且比 BIOS 方法灵活得多,因为它不会将原始代码隐藏在奇怪的地方;引导加载程序驻留在文件中,就像操作系统级程序一样。这使得它们更容易识别和操作。(OTOH,EFI 也存储数据在 NVRAM 中的引导加载程序上,这会在引导过程中产生第二个故障点。EFI 的新颖性也意味着它没有经过充分的测试,这导致了许多 EFI 特定的问题。)

GhostMotleyX,您对 LiveWireBT 回应的评论认为“最佳”安装方式是 BIOS/MBR。当然,这是主观的,但我不同意这种评估。BIOS/MBR 方法不安全,但安全我刚刚概述的三种方法很笨拙。EFI 方法是最安全、最灵活的方法。我怀疑您对 GRUB/GPT 和 EFI 方法需要单独的分区这一事实感到困惑,但这没什么大不了的。除了在设置系统或进行分区维护时,这些分区对您来说几乎是不可见的,它们为您提供了很大的灵活性。与 MBR 不同,GPT 不限于四个主分区,因此您不必像小妖精囤积金子一样囤积主分区。


Liv*_*eBT 7

设置传统引导时,您需要在GPT 分区磁盘上创建biosgrub 分区,或设置 UEFI 引导时创建EFI 引导分区(对于 GPT 或 MBR 分区磁盘)。

  • 由于 GPT 磁盘中缺少后 MBR 嵌入间隙, GRUB 需要 BIOS 系统中的 BIOS 引导分区(2 MiB,无文件系统,EF02在 gdisk 中键入代码或在 GNU Parted 中输入 bios_grub 标志)才能嵌入其core.img文件。[...]

https://wiki.archlinux.org/index.php/GPT#Bootloader_Support

  • 谢谢,我想我现在明白了;如果我在 MBR 磁盘上安装非 UEFI 的 Ubuntu,则不需要 biosgrub。如果我在 GPT 磁盘上的 UEFI 下安装 Ubuntu,那么我需要创建一个 EFI 分区。然后我遇到的不一致是当我在 GPT 磁盘上安装非 UEFI 的 Ubuntu 以及带有 MBR 的 UEFI 时。因此理论上安装 Ubuntu 的最佳方式是使用 MBR 分区表的非 UEFI 或使用 GPT 分区表的 UEFI。 (2认同)

小智 7

我将给出同时拥有 EFI 和 BIOS grub 的额外一点/动机。

用于从 Grub2 引导 Live SystemRescueCD.iso 循环的 USB 记忆棒。

为什么?简单的答案:它可以在很多 PC 上启动,有些具有 UEFI,有些只有 32 位旧 BIOS,等等。

真正复杂的动机:如果可能的话,使用先进的硬件(UEFI)。

真实使用示例:

  • 具有四个分区的 USB 记忆棒(以 GPT 模式格式化)
  • NTFS 上的第一个分区(可以在 Windows 7 及更高版本中看到)以及 USB 记忆棒的其余大小
  • 第二个分区用于存放 Grub2 和 SystemRescueCD.iso 文件,至少 1GiB(最好是 2GiB,这样你可以同时携带两个版本的 SystemRescueCD.iso,只是为了在替换旧版本之前测试新版本),我通常使用 Ext4 文件系统为了它
  • EFI 的第三个分区(Windows 称之为 ESP),格式化为 Fat32,至少有 512MiB(我见过一些 PC,如果使用较少,它们不会将 USB 记忆棒显示为可启动媒体)
  • 第四个分区用于 BIOS_Grub(未格式化,但创建时清除)

一件重要的事情:我见过一个 8GiB LG USB stric(我自己的一个),如果分区未与柱面对齐,它会拒绝在物理 UEFI PC 启动上列出,但在其他 UEFI PC 以及具有 UEFI 启动的 VirtualBOX 上却可以看到模式已激活...对其进行分区时,如果与 MiB 对齐,它确实使用了所有空间,末尾没有接近 1MiB 的未分区空间,但与柱面对齐时,不使用最后一个不完整的 MiB...如果我在进行 MiB 分区时考虑到这一点(换句话说,我进行了手动圆柱对齐)它可以工作,但正如我所说,它仍然是圆柱对齐的(我是手动执行的,而不是让分区工具为您执行此操作)。

如何获得如此出色的 USB 恢复棒(它有两个技巧):

  1. 将分区与柱面对齐(更好的兼容性,仅与 MiB 对齐)
  2. 执行 grub-install --target=i386-pc,然后在同一 grub 分区上执行另一次 grub-install --target=x86_64-efi,因此两种引导模式仅使用一个 grub.cfg

如何启动:

  • a) 从旧 BIOS 启动,将加载 MBR,然后加载 BIOS_grub 分区中的 grub Stage2,然后加载 Grub2 分区中的 core.img
  • b) 以兼容 UEFI 的方式启动,将从 ESP 分区加载 .efi 文件
  • 读取 grub.cfg(如果 grub2 分区上存在)
  • 然后显示 grub2 菜单
  • 然后我选择从循环 SystemRescueCD.iso 启动(使用 dochace 参数),我在 grub.cfg 上设置了两个选项,一个用于 32 位,一个用于 64 位(我实际上有四个选项,因为我将两个 dostartx 参数设置为直接在 GUI 上启动)。
  • 启动后我可以弹出U盘(由于这样的docache,整个Live Linux都在ramdrive中),不需要输入任何命令,pendrive没有安装(再次感谢docache参数)。

有了这个棒,我可以以 32 位或 64 位(如果处理器上有扩展 etend)启动旧 PC(如果他们允许从 USB 启动),但以 BIOS 模式启动。

有了这个棒,我还可以以 32 位和 64 位启动新 PC(如果他们允许从 USB 启动),但以 UEFI 模式启动(啊,是的,它可以以 UEFI 模式启动,然后以 32 位启动 Linux Live SystemRescueCD模式以及 64 位模式)。

因此,我拥有全合一 USB 记忆棒恢复启动介质,能够在几乎所有 PC(现代或旧)中启动(仅需要 USB 启动支持),无论是 32 位还是 64 位、BIOS 还是 UEFI 等...我可以选择我想要运行 32 位或 64 位。

另外,我在一台拒绝安装 Windows 64 位(旧的 32 位处理器)的 PC 上进行了测试,但能够运行 64 位 Linux Live(因为该处理器上存在 PAE 功能)。

旁注:NTFS等第一个分区用于保存可以与Windows 7及更高版本共享的数据(XP不会看到它,因为不支持GPT分区)...它必须是第一个分区,不需要在初始分区磁盘的一部分,可以在任何你想要的地方,但必须作为分区表上的第一个条目,这是由令人讨厌的 Windows 模式在可移动分区上安装分区引起的,它有专门编程的代码以避免访问超过第一个分区,所以你不能同时挂载其他的。

Windows和USB分区的额外功能:如果您交换分区表上的分区条目,换句话说,您将要访问的分区作为表中的第一个分区,Windows将允许您访问它(如果它的格式是理解的,fat32以及直接 NTFS、带有特殊驱动程序的 ext2 等),但只允许访问位于分区表第一个条目的分区...有一个工具(称为 BootICEx86.exe)可以在 Windows 上执行此类工作甚至不需要拔掉 U 盘。

超级额外:还有一些随身碟(我很幸运拥有一个,索尼 16GiB)可以使用特殊工具(我的使用 lexar 的工具)进行一些更改,因此它们在 Windows 中显示为 USB HDD,而不是 USB 记忆棒,更改后,所有的窗口都可以让你删除、创建和管理其上的分区,还可以同时挂载多个分区,每个分区都有自己的盘符。

Linux 用户不必担心这一点,因为 Linux 将其视为可分区的块设备,并且不像 Windows 那样实现特殊代码来阻止安装分区等。

哦,是的,最后几段是为了防止 M$ 上的某个人读到它们而写的,所以他们的脸掉到地板上,我正在尝试(永远不会明白,我知道这是一个失去的目标)让他们删除这样的内容来自 Windows 的丑陋代码,让用户以本机方式在 U 盘上进行分区。