📜  多重引导指南背后的概念

📅  最后修改于: 2021-09-27 22:53:53             🧑  作者: Mango

今天使用的大多数计算机都属于以下类型:传统的 BIOS-MBR 类型和 UEFI-GPT 方法(由高级/最新计算机使用)。

  • 步骤 1:电源:
    正常没那么重要。
  • 步骤 2:引导:
    当计算机打开时,计算机不知道操作系统在哪里以及要加载到 CPU 上的内容。因此,我们使用称为 Bootstrap Loader 的特殊程序。

    简单来说,这是定位内核并将其加载到主内存中。在某些情况下,即使是简单的 Bootstrap Loader 也会加载更复杂的 Bootstrap Loader。

  • 步骤 3:BIOS 在启动过程中的作用:
    (现在从这里开始真正的开始)。当计算机最初启动或重置时,指令寄存器会加载一些默认地址,该地址基本上是一个跳转地址,用于转移引导加载程序的控制,并且 BIOS 的工作开始。

    BIOS 代表基本输入输出系统:
    BIOS 执行的功能是:

    1. 检查 CMOS 以进行自定义设置
    2. 检查设备驱动程序并执行开机自检 (POST)。
    3. 显示所有设置。
    4. 查找可用且具有有效操作系统的可启动设备
    5. Bootstrap Loader 继续执行后续步骤。

    CMOS 是存在于主板中的小型内存 RAM 芯片。当计算机关闭时,此 CMOS 的内容不会被擦除。 CMOS 包含有关我们应该在哪里寻找有效可启动文件的信息。如今,现代计算机制造商都在保护 CMOS,以免用户轻易修改 CMOS 设置。

    人们通常有一个误解,当他们修改引导顺序时,他们会更改 BIOS 设置,但实际上他们修改 CMOS 设置是您修改引导顺序等的地方。一旦 POST 检查成功完成。

    BIOS 将检查 CMOS 设置以查找引导顺序。 BootOrder 是设备/源的优先顺序,BootStrap Loader 将根据该顺序找到将 OS 加载到主内存的源。 启动 OS 的各种源是硬盘、网络、USB 驱动程序、CD 等. 任何源都可用于将操作系统加载到主内存,前提是操作系统映像正确(这些源没有任何损坏)存在于这些设备上。

    可以根据需要修改 BootOrder。

    如果尝试安装双启动,那么我们可以通过将所需的 Linux 操作系统(开源如此免费)文件刻录到 USB 记忆棒上并将该操作系统加载到我们可能为安装一个磁盘而创建的分区上来创建一个可启动的笔式驱动器新操作系统。

    BootStrap Loader 将按照 CMOS 中的顺序进行检查,并将加载第一个找到可引导源的源。

  • 第 4 步:MBR 和 GRUB:
    注意这里,这真的很重要。

    考虑到从硬盘正常启动,BIOS 将始终首先查看硬盘驱动器的固定地址,该地址通常是硬盘驱动器的起始扇区。简单来说,这意味着 BIOS 加载硬盘的 Oth 块-盘。该扇区包含 MBR(主引导记录)。MBR 包含分区的所有详细信息。紧接着MBR的是分区表。此分区表包含有关硬盘各个分区的信息,还存储有关每个分区开始位置的信息。

    笔记:
    上述步骤对于所有操作系统都是相同的,无论是 Windows/一系列加载的 Linux 系统。通常当我们在系统上加载 UNIX 时,默认 MBR 会被 GRUB 替换。简单来说,GRUB 是一个辅助引导加载程序。

    GRUB 代表 GRand Unified Bootloader。

    现在假设我们的硬盘有 4 个分区,并且在每个分区中我们有一个不同的操作系统。在这里,每个分区都将从一个称为引导块(在 UNIX 中)或称为引导扇区(在 NTFS 中)的块开始。该块将包含有关每个操作系统在内存中的位置的信息。

    其次是 Volume control Block,它存储有关该分区的大小和分配给该分区的块数的信息。在 UFS(Unix 文件系统)中,它被称为超级块,在 NTFS 中,它被称为主文件表。

    图 – MBR 详细信息

    Bootstrap Loader、Boot Loader、BIO 不是同一个东西,它们不应该相互混淆。

    BootStrapping 是一个完整的 BIOS 过程,Boot Loader 是其中的一部分,其中 BIOS 执行我之前解释过的任务,而 BootLoader 是在实际操作系统或内核加载到主内存之前加载到主内存上的任何东西。

    GRUB 通常有 3 个阶段名称 1、1.5 和 2。阶段 1 很简单,调用阶段 1.5 执行下面解释的任务。 Stage 2 实际上加载内核。

    通常分区不会在扇区 63 之前开始。所以分区从扇区号 63 开始。因此,在这个空闲空间中存储了 GRUB 1.5。 MBR 和分区起点之间的这个空闲空间称为 MBR GAP。

    Grub Stage 1.5 存在于这个 MBR GAP 中,它通常包含用于读取文件系统的驱动程序。因此,grub stage 1 会将 grub stage 1.5 加载到 RAM,并将控制权交给 GRUB 1.5 stage。

    现在 grub stage 1.5 将加载文件系统驱动程序,一旦加载文件系统驱动程序,它现在可以访问 /boot/grub/grub.conf 文件,其中包含有关内核路径和 initrd 路径等的其他详细信息。

    现在,您将看到一个漂亮的 TUI(终端用户界面),您可以在其中选择操作系统内核并按 Enter 键启动它。因此,在上述步骤之后,我们选择要使用我们机器中所有已安装操作系统的操作系统。

    第 5 步:加载内核:
    内核是操作系统的核心部分。操作系统和内核不应混淆,因为内核只是操作系统的核心部分,而操作系统是一组完整的操作和实用程序。正常的操作系统加载将继续取决于我们从 GRUB 中选择的操作系统(假设我们已经安装了多个操作系统)。如果我们没有从 GRUB 屏幕中选择任何操作系统,则会加载默认操作系统。