Linux 引导过程 - 详细描述的 6 个步骤
操作系统 (OS) 是管理资源、控制外围设备并为其他软件提供基本服务的低级软件。在 Linux 中,典型的引导过程有 6 个不同的阶段。
1. BIOS
BIOS 代表基本输入/输出系统。简单来说,BIOS 加载并执行主引导记录 (MBR) 引导加载程序。
首次打开计算机时,BIOS 首先对 HDD 或 SSD 执行一些完整性检查。
然后,BIOS 搜索、加载并执行引导加载程序,该引导加载程序可以在主引导记录 (MBR) 中找到。MBR 有时位于 USB 记忆棒或 CD-ROM 上,例如实时安装的 Linux。
一旦检测到引导加载程序,它就会被加载到内存中,BIOS 会将系统控制权交给它。
2.MBR
MBR 代表 Master Boot Record,负责加载和执行 GRUB 引导加载程序。
MBR 位于可引导磁盘的第一个扇区,通常为/dev/hda
或/dev/sda
,具体取决于您的硬件。MBR 还包含有关 GRUB 或非常旧系统中的 LILO 的信息。
3. 蛴螬
有时称为 GNU GRUB,它是 GNU GRand Unified Bootloader 的缩写,是大多数现代 Linux 系统的典型引导加载程序。
GRUB 启动画面通常是您在启动计算机时看到的第一件事。它有一个简单的菜单,您可以在其中选择一些选项。如果您安装了多个内核映像,则可以使用键盘选择您希望系统启动的那个。默认情况下,选择最新的内核映像。
初始屏幕将等待几秒钟供您选择和选项。如果不这样做,它将加载默认内核映像。
/boot/grub/grub.conf
在许多系统中,您可以在或找到 GRUB 配置文件/etc/grub.conf
。这是一个简单grub.conf
文件的示例:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
initrd /boot/initrd-2.6.18-194.el5PAE.img
4.内核
内核通常被称为任何操作系统的核心,包括 Linux。它可以完全控制您系统中的所有内容。
在引导过程的这个阶段,GRUB 选择的内核首先挂载文件中指定的根文件系统grub.conf
。然后它执行/sbin/init
程序,该程序始终是第一个要执行的程序。您可以通过它的进程 ID (PID) 来确认这一点,它应该始终为 1。
然后内核使用初始 RAM 磁盘 (initrd) 建立一个临时根文件系统,直到真正的文件系统被挂载。
5. 初始化
此时,您的系统执行运行级程序。有一次它会寻找一个 init 文件,该文件通常/etc/inittab
用于决定 Linux 运行级别。
现代 Linux 系统使用 systemd 来选择运行级别。根据TecMint,这些是可用的运行级别:
运行级别 0与poweroff.target匹配(并且runlevel0.target是poweroff.target的符号链接)。
运行级别 1与rescue.target匹配(并且runlevel1.target是到rescue.target的符号链接)。
运行级别3 由multi-user.target模拟(并且runlevel3.target是指向multi-user.target的符号链接)。
运行级别 5由 graphics.target 模拟(并且runlevel5.target是到graphics.target的符号链接)。
运行级别 6由reboot.target模拟(并且runlevel6.target是reboot.target的符号链接)。
紧急情况与紧急情况匹配。目标。
systemd 然后将开始执行运行级程序。
6. 运行级程序
根据您安装的 Linux 发行版,您可能会看到不同的服务正在启动。例如,您可能会捕获starting sendmail …. OK
.
这些被称为运行级别程序,根据您的运行级别从不同的目录执行。上述 6 个运行级别中的每一个都有自己的目录:
- 运行级别 0 –
/etc/rc0.d/
- 运行级别 1 –
/etc/rc1.d/
- 运行级别 2 –
/etc/rc2.d/
- 运行级别 3 –
/etc/rc3.d/
- 运行级别 4 –
/etc/rc4.d/
- 运行级别 5 –
/etc/rc5.d/
- 运行级别 6 –
/etc/rc6.d/
请注意,这些目录的确切位置因分布而异。
如果您查看不同的运行级别目录,您会发现以“S”或“K”开头的程序分别表示启动和终止。启动程序在系统启动时执行,在关机时杀死程序。
这就是您需要了解的有关 Linux 引导过程的所有信息。现在走出去,让Tux感到自豪。