什么是启动顺序?

2025年3月17日 | 阅读13分钟

启动顺序

计算机查找带有加载操作系统的非易失性数据存储设备的顺序称为启动顺序(OS)。Windows 和 Macintosh 系统通常分别使用 ROM 和 BIOS 来启动启动过程。CPU 在找到指令后获得控制权,并将操作系统加载到系统内存中。

换句话说,启动顺序是计算机将尝试从中启动的存储设备的顺序。例如,计算机将首先尝试从内部硬盘驱动器启动,然后尝试从 USB 驱动器启动,然后尝试从任何可用的网络映像或存储启动。在大多数情况下,这仅在您首次在计算机上安装操作系统时才重要,因为您希望从 USB 驱动器启动,因为硬盘驱动器是空的,或者如果您有两个具有不同操作系统的硬盘驱动器并且需要选择要启动哪一个。

可以通过 Windows PC 的 BIOS 或 Macintosh 的系统 ROM 来启动启动过程。BIOS 和 ROM 包含解释如何启动计算机的基本指令。在传输到计算机的 CPU 后,这些指令开始将数据加载到系统 RAM 的过程。一旦计算机找到有效的引导磁盘或启动磁盘,它就会开始将操作系统加载到系统内存中。操作系统完全加载后,机器就可以使用了。

计算机上的启动顺序如下。当您打开计算机时,系统首先搜索 CPU,那里存放着所有引导驱动程序和其他驱动程序,并将它们从辅助内存加载到主内存。然后它搜索安装了操作系统的所有计算机安装的驱动器。然后它加载它,如果找不到任何操作系统,它会向用户显示错误消息,指示未安装操作系统或找不到可引导设备。请插入可引导设备并重新启动您的计算机。成功找到所有驱动程序和操作系统后,计算机将加载操作系统并开始启动顺序。

根据计算机的设置方式,启动过程可能需要几秒钟到几分钟不等。如果计算机是从 CD 或 DVD 启动而不是从硬盘驱动器启动,则启动时间可能会长得多。此外,如果您的计算机意外关机,系统可能会执行额外的检查以确保一切正常,从而延迟启动时间。

硬盘驱动器、软盘驱动器、光驱、闪存驱动器等是通常包含在 BIOS 设置中的启动顺序选项的设备示例。CMOS 设置允许用户更改启动顺序。

启动顺序或 BIOS 启动顺序是启动顺序的其他名称。

启动如何帮助启动顺序?

启动是从无到有,最终到所有需要运行的东西都运行起来的过程。它源于“白手起家”(pull yourself up with your own bootstraps)的概念,这很恰当,如果不是不可能的话。

在很久以前,我们不得不手动输入第一个程序,一个接一个地在前面板上输入指令。它必须很小,可能只有十几条指令,因为任何更大的程序输入起来都很麻烦,而且你很可能会犯错误。

如今,第一个程序存储在主板上的非易失性芯片中。那就是 BIOS。它找到一个设备来启动,可能是硬盘,并将该设备的前 512 字节加载到内存中的特定位置。然后它跳转到这些字节的开头。

这个 512 字节的程序并不大,但它知道它只需要处理这个硬盘,这使得事情更容易。它知道如何读取磁盘上的文件系统以查找特定名称的文件。该文件要大得多,并且包含一个足够大的程序来加载操作系统的其余部分。操作系统会查找注册表以查找所有其他需要运行的内容,然后加载它们。

What is a Boot Sequence

在计算机术语中,初始引导程序必须小而通用,这意味着它并不非常智能。因此,它只做足以加载一个更大、不那么通用的程序的工作,而后者又可以加载一个更大的程序,您会一直这样做,直到您的工作完成。开机自检(POST)是第一个诊断测试,在启动阶段之前运行。每当计算机打开时。POST 完成后,启动顺序就开始了。如果 POST 出现问题,用户会通过哔声代码、POST 代码或屏幕上的 POST 错误消息收到通知。

除非另有编程,否则 BIOS 会在搜索驱动器 C 之前搜索驱动器 A 上的操作系统。BIOS 选项允许您更改启动顺序。要进入 BIOS 并修改启动顺序,不同的 BIOS 型号需要不同的按键组合和屏幕提示。通常,在 POST 之后,将尝试从 BIOS 启动顺序中指定的第一个设备启动。如果第一个设备不适合启动,BIOS 将尝试从列表中第二个设备启动,此过程将继续进行,直到 BIOS 从列出的设备中找到启动代码。

如果找不到引导设备,则会显示错误消息,并且系统将冻结或崩溃。无法使用的引导设备、引导扇区病毒或非活动引导分区都可能导致错误。

启动顺序,也称为启动选项或启动顺序,指定计算机应搜索哪个设备来获取其操作系统的启动文件。它还描述了验证设备的顺序。可以在计算机的 BIOS 中修改和重新排列此列表。

启动顺序中的步骤

启动顺序主要涉及五个步骤。

What is a Boot Sequence

通电

任何启动过程都始于系统获得电力。当用户打开计算机时,会发生一系列操作,导致操作系统接管启动过程的控制权,并允许用户开始工作。当计算机打开时,中央处理器会执行位于主板上的 ROM 中的启动代码。

开机自检

POST,或开机自检,是启动过程的下一阶段。此测试会验证所有连接的硬件(包括 RAM 和辅助存储单元)的正常运行。启动过程会在 BIOS 的帮助下,在 POST 完成其工作后,在引导设备列表中搜索具有 POST 响应的设备。

查找引导设备

由于 I/O 系统提供了 CPU 与通过主板连接的其他设备之间的通信指南,因此它对于计算机的运行至关重要。I/O 系统提供了主板上 ROM 中存储的 BIOS 的扩展,有时位于引导设备上的“io.sys”文件中。

加载操作系统

在验证了硬件的功能并加载了输入/输出系统之后,启动过程从引导设备加载操作系统开始。一旦操作系统加载到 RAM 中,就会执行任何特定于单个操作系统的指令。由于计算机将始终以相同的方式启动,因此实际的操作系统几乎没有意义。

传输控制

一旦在该区域完成的操作完成并且操作系统已安全加载到 RAM 中,启动过程就会将控制权移交给操作系统。然后,操作系统会启动任何预先配置的启动程序,以定义用户配置或应用程序执行。传输完成,计算机现在就可以使用了。

启动顺序中的事件发生顺序如下

  1. 访问机器的 BIOS 或系统 ROM: 分别用于启动 Windows PC 和 Macintosh 计算机上的启动过程。BIOS 和 ROM 中存储着解释如何启动计算机的基本指令。
  2. 计算机 CPU 获取以下启动数据: 随后,BIOS/ROM 将这些指令提供给计算机的 CPU。
  3. 信息已记录在计算机内存中: 之后,CPU 开始将数据加载到系统 RAM 中。
  4. 加载操作系统: 一旦计算机找到有效的引导磁盘或启动磁盘,它就会开始将操作系统加载到系统内存中。
  5. 设备已准备好使用: 操作系统完全加载后,机器就可以使用了。

RAM 在启动顺序中起什么作用?

RAM 在启动过程中的主要功能与 RAM 在其他任何时候的主要功能相同。CPU 将需要快速访问的信息存储在 RAM 中。在启动的情况下,这将是硬盘驱动器中的操作系统(OS)文件。RAM 比硬盘驱动器快,这对于两种类型的驱动器都是如此(尤其是较旧的机械/磁性硬盘驱动器;对于固态驱动器来说不太重要)。如果处理器只能依靠硬盘驱动器的速度来访问所有内容,系统将关闭并崩溃。然后,处理器会将信息从硬盘驱动器加载到 RAM 中,以便它可以快速访问和使用它。一旦这些数据进入 RAM,在漫长的启动过程之后,它们就可以以任何速度移动。

如果您没有足够的 RAM 来运行整个操作系统,不常用信息可以缓存回硬盘驱动器,这会减慢速度。因此,拥有足够的 RAM 来运行您的操作系统和程序,并有一些额外的空间用于快速计算和存储操作非常重要。

What is a Boot Sequence

RAM 速度很快,但它不是永久性的。当机器关闭或断电时,RAM 中存储的所有内容都将丢失。这就是硬盘驱动器的作用。它可以永久保存内容。

RAM 速度很快,但它不是永久性的。当机器关闭或断电时,RAM 中存储的所有内容都将丢失。这就是硬盘驱动器的作用。它可以永久保存内容。

1. BIOS

当系统通电时,BIOS 是第一个执行的程序,用于执行以下操作

  • 它将对外围设备执行 POST 操作。
  • 它定位一个有效的设备来引导系统。(CD、USB、HDD)
  • 它从 MBR(引导设备的第一个扇区)加载引导加载程序。

MBR(主引导记录)

它是引导设备的第一扇区。

它有一个 512 字节的内存块,其中包含引导加载程序(用于引导指令的机器代码,称为 GRUB(引导加载程序))

以及分区表(活动、非活动)。

  • 一旦加载了引导加载程序到内存中,BIOS 就会将控制权交给引导加载程序。
What is a Boot Sequence

2. BOOTLOADER (引导加载程序)

引导加载程序是一段机器代码,包含引导指令,它位于 MBR 中。

一些引导加载程序

Windows - NTLDR

Linux - Grub, LILO (/boot/grub/grub.conf)

此过程有两个阶段

第一阶段

它检查 MBR 中的活动分区。

正如我们之前讨论过的,MBR 必须具有分区详细信息,用于识别哪个分区是活动和非活动的。这里的活动意味着分区必须具有引导、操作系统相关的东西并被标记为活动。非活动意味着分区包含用户数据,而不是与操作系统相关的东西。

它的唯一任务是将第二阶段的引导加载程序进程加载到内存中。

第二阶段

在此阶段,用户将可以使用引导 GUI 屏幕。一旦用户选择了操作系统,此阶段将从 /boot/grub/grub.conf 目录中找到相应的内核。

现在引导加载程序将 initrd 映像从上述目录加载到 RAM。这里 initrd 是一个 Linux 初始 RAM 磁盘。

initrd

它是带有 ext2 文件扩展名的初始 RAM 磁盘,其中包含必要的驱动程序和模块。

内核的工作是挂载真正的 /root 文件系统,但它需要驱动程序和模块(如 SCSI、LVM、NFS),这些驱动程序和模块位于 /lib/modules 下。但是,如果根文件系统未挂载,则内核无法访问上述文件夹;因此 initrd 就派上用场了。它用于挂载临时根文件系统。因此,内核可以从 initrd 获取必要的驱动程序。

一旦内核和 initrd 都由引导加载程序加载到内存中,它就会将控制权交给内核。

What is a Boot Sequence

3. Kernel (内核)

内核是计算机操作系统的核心中心,是为操作系统的所有其他部分提供基本服务的核心。内核可以与 Shell(操作系统最外层与用户交互的部分)进行对比。

内核将内核映像从内存解压到 /boot 目录(用户可以看到这个作为屏幕消息)。加载内核后,它会立即初始化和配置计算机内存,并配置各种硬件(I/O、存储设备)。

然后它会在内存中查找压缩的 initrd 映像,内核会将其解压到 /sysroot。该目录是临时根文件系统。它将为内核提供必要的驱动程序和模块。最后,在上述过程完成后,initrd 内存将被释放。内核将以只读权限挂载整个/root 文件系统。内核还将释放未使用的内存。

What is a Boot Sequence

4. INIT

一旦内核挂载了 /root 目录,它就会通过 /sbin/init 进程来控制 INIT 进程。这是所有自动启动的系统的祖父。

首先,它运行 /etc/rc.d/rc.sysinit 脚本,该脚本设置环境路径,启动交换,检查文件系统,并执行系统初始化所需的所有其他步骤。

例如,大多数系统都使用时钟,因此 rc.sysinit 读取 /etc/sysconfig/clock 配置文件来初始化硬件时钟。

另一个例子是,如果存在必须初始化的特殊串行端口进程,rc.sysinit 会执行 /etc/rc.serial 文件。init 脚本将检查 /etc/inittab 脚本。它由 Linux 系统的运行级别组成。

init 脚本将从 /etc/rc.d/init.d/function 设置源库。它用于配置如何启动、终止和确定进程的 PID。

根据上述运行级别,它将查看 /etc/rc.d/rc5.d/(此处 5 是运行级别)。它将执行在此文件夹下可用的启动、停止和后台进程。

此目录下的进程是对 /etc/rc.d/init.d/ 目录的符号引用。

位于 /etc/rc.d/rc5.d/ 目录下的进程是 K 和 S 类型。

其中,K 表示停止,S 表示启动

init 将在 BOOT 过程中执行以下命令。

每个进程都带有数字前缀。优先级将赋予较低的数字。有时一个进程可能具有相同的数字;在这种情况下,将遵循字母顺序。init 将分叉 /bin/mingetty 进程,该进程用于根据运行级别提供虚拟控制台。这将打开通往 tty 设备的路径,并提供用户名、密码等提示,并打印登录详细信息。

如果运行级别是五,那么 /etc/inittab 将运行一个名为 /etc/X11/prefer 的脚本,该脚本根据 KDM、GNOME、XDM 提供显示。

5. Execution (执行)

最后,将出现登录屏幕供用户使用。

如何修改 BIOS 启动顺序?

在计算机上,硬盘驱动器通常是启动过程中的第一项。如果您想从 DVD 或闪存驱动器等其他设备启动,则需要修改启动顺序,因为硬盘驱动器始终是可引导设备(除非计算机遇到严重问题)。

相反,某些设备可能会将光驱放在第一位,然后是硬盘驱动器。在这种情况下,除非驱动器中有包含启动文件的 CD,否则您无需修改启动顺序即可从硬盘驱动器启动。如果没有光盘,请等待 BIOS 跳过光驱并搜索操作系统。

您可以通过计算机上的 BIOS 设置工具修改启动顺序。只需按照以下说明即可了解如何操作

步骤 1:启动计算机上的 BIOS 设置程序。

通常,您必须在计算机启动时立即按键盘上的一个键(或偶尔是一个组合键)才能进入 BIOS。

如果您不确定这是哪个键,请重新启动计算机,并留意启动过程开始时屏幕上显示的信息。通常会显示类似“按任意键进入设置”的内容。

如果您想重试,请重新启动计算机,并在您的机器开始从其内部磁盘加载后立即按下设置键。

What is a Boot Sequence

步骤 2:访问 BIOS 启动顺序菜单。

一旦您访问了计算机上的 BIOS 设置程序,请找到更改启动顺序的选项。虽然每个 BIOS 实用程序都略有不同,但它可能位于“Boot”、“Boot Options”、“Boot Sequence”或甚至“Advanced Options”选项卡下。

What is a Boot Sequence

步骤 3:重新排列启动顺序

一旦您找到用于启动顺序选项的 BIOS 页面,您会看到一个计算机可以从中加载的选项列表。

计算机上通常有以下选项:硬盘驱动器、光驱(CD 或 DVD)、可移动设备(如 USB 或软盘)和网络。这些选项在不同系统之间也会略有不同。

USB 设备或可移动设备应列在列表的第一个位置。

What is a Boot Sequence

步骤 4:保存您的修改。

在退出 BIOS 之前,请保存您的更改以确保应用了更改。

从“Save and Exit”(保存并退出)或“Exit”(退出)菜单中选择“Save Changes”(保存更改)或“Exit with Changes Saved”(保存并退出更改)选项(或类似选项)。

当您退出 BIOS 时,您可能会看到一个确认消息。请务必仔细阅读,然后再选择正确的按钮接受更改。

退出 BIOS 后,您的机器将自动重新启动。