安装 loader 到 sdaX 是什么意思?

安装 loader 到 sdaX 是什么意思?

在安装 Linux 时,我们所有人都会被要求在某处安装引导加载程序。例如,我们有以下分区:

sda
 sda1
 sda2
 sda5

第一个扇区(512 字节)是 MBR,其中 446 字节用于引导加载程序。第二个扇区属于 sda1(第一个分区)。BIOS 加载位于 MBR 中的引导加载程序。

所以如果我们安装加载器,sda逻辑就很简单:这 446 字节是我们的加载器(或者从其他地方加载完整加载器的加载器的一部分),这个加载器提供给我们加载所需的操作系统。

但是给sdaX安装loader是什么意思呢?

  1. MBR 中的加载程序不会被更新(sda 的前 446 个字节不会被触及)
  2. 只有部分加载程序会安装到 MBR(从 sdaX MBR 加载加载程序的部分)

答案1

首先,您的问题是关于 BIOS 模式启动的。这种模式即将淘汰。它仍然适用于许多计算机,但我们正处于过渡时期,在此期间,必须不要对启动模式做出假设。新兴的启动方法使用可扩展固件接口 (EFI) 或其 2.x 版变体统一 EFI (UEFI)。

其次,BIOS 引导加载程序实际上应该限制在 MBR 的前 440 个字节,而不是前 446 个字节。这额外的六个字节用作磁盘的序列号。虽然我听说有些 BIOS 模式引导加载程序会扩展到该区域,但这样做有点危险,您不应该尝试自己覆盖该区域(例如,删除dd不需要的引导加载程序),因为有些工具可能依赖于序列号保持不变。

/dev/sda1第三,不是通常从磁盘的第二个扇区开始(尽管也可以)。当今大多数分区工具将扇区 2048 指定为第一个分区的第一个扇区(可能如此也可能不如此/dev/sda1)。过去,扇区 63 用于此目的,但由于硬盘技术的变化,标准已改为 2048。MBR 和分配给分区的第一个扇区之间的空间正式未分配/未使用,但实际上可能被使用....

最后,当您将 GRUB 安装到 MBR(/dev/sda/dev/sdb或其他)时,其代码实际上会进入多个位置,包括 MBR、MBR 与第一个分配扇区之间的正式未分配空间以及其中的文件/boot/grub(假设安装的是 Ubuntu)。当您将 GRUB 安装到分区的分区引导记录 (PBR)(/dev/sda1/dev/sdb3或其他)时,其中一些位置会发生变化,然后必须由驻留在 MBR 中的另一个引导加载程序启动 GRUB。过去,这种配置很常见,以便将 DOS/Windows 引导加载程序留在 MBR 中,并以传统 DOS 方式管理引导过程的最早阶段,即在要引导的分区上设置“引导标志”。但是,GRUB 2 更喜欢安装到 MBR,因此这是目前最常见的方式(在基于 BIOS 的计算机上)。

如前所述,以上内容都不适用于 EFI 模式启动,这是较新的计算机启动的更常见方式。(自 Windows 8 以来,大多数新计算机都配置为以 EFI 模式启动。)使用 EFI,引导加载程序是EFI 系统分区 (ESP)。引导代码不会进入 MBR、PBR 或分区前的未分配空间。有关使用哪个文件作为引导加载程序的信息会进入计算机的 NVRAM,可以使用实用程序对其进行操作(在 Linux 中)efibootmgr

相关内容