to Linux引导过程基本指南
每次您打开Linux计算机时,它都会经过一系列步骤,直到最终显示要求您输入用户名或密码的登录屏幕。
每个Linux发行版在其典型的引导过程中经历了4个不同的阶段。
在本指南中,我们将重点介绍Linux从开机到登录所采取的各种步骤。
请注意,本指南仅考虑了GRUB2引导加载程序和systemd init,因为当前大多数现代Linux发行版都在使用它们。
下载过程包括以下4个步骤,我们将对其进行详细讨论:
- BIOS完整性检查(POST)
- 加载引导加载程序(GRUB2)
- 内核初始化
- 启动systemd,所有进程的父级
1. BIOS完整性检查(POST)
通常,当用户按下电源按钮(如果计算机已经关闭)或使用图形界面或命令行重新引导系统时,就会启动引导过程。
Linux开机后,BIOS(基本输入/输出系统)开机并执行开机自检- 开机自检 (POST)。
它是执行各种诊断检查的完整性检查。
POST检查硬件组件(例如硬盘或固态驱动器,键盘,RAM,USB端口和任何其他硬件)的运行状况。
如果未找到任何硬件设备,或者任何设备发生故障(例如硬盘驱动器或固态驱动器损坏),则屏幕上会显示一条错误消息,提示您进行干预。
在某些情况下,会发出哔声,尤其是在没有RAM模块的情况下。
但是,如果存在预期的硬件并按预期运行,则引导过程将继续进行下一步。
2.引导加载程序(GRUB2)
POST完成后,系统将检查MBR(主引导记录)中的引导加载程序和磁盘分区信息。
MBR是位于硬盘驱动器第一扇区中的512字节代码,通常取决于您的硬盘驱动器体系结构/ dev / sda或/ dev / hda。
但是请注意,有时MBR可能位于Live USB或Linux DVD上。
Linux中有三种主要类型的引导加载程序:LILO,GRUB和GRUB2。
GRUB2引导加载程序是现代Linux发行版中最新的主引导加载程序。
GRUB2代表GRand Unified Bootloader版本2。
BIOS一旦检测到grub2引导程序,就会启动并将其加载到主内存(RAM)中。
使用grub2菜单,您可以做几件事。
它允许您选择要使用的Linux内核版本。
如果您已多次更新系统,则可能会看到列出的不同内核版本。
另外,它使您能够通过按键盘快捷键来编辑某些内核参数。
另外,在双引导系统上,当您安装了多个操作系统时,可以使用grub菜单选择要引导到的操作系统。 grub2配置文件是一个文件 /boot/grub2/grub2.cfg。
GRUB的主要目的是将Linux内核加载到主内存中。
3.内核初始化
内核是任何Linux系统的核心。
它将PC硬件连接到基本过程。
内核控制Linux系统上的所有进程。
引导加载程序加载选定的Linux内核后,它必须先从压缩版本中自解压缩,然后再执行任何任务。
自解压后,选择的内核将挂载根文件系统并初始化/ sbin / init程序,通常称为init。
初始化始终由第一个程序执行,并分配有进程ID或PID 1。
这是一个初始化过程,将产生各种守护程序并挂载/ etc / fstab中指定的所有分区。
然后,内核会挂载一个初始RAM磁盘(initrd),该磁盘是一个临时的根文件系统,直到安装了真正的根文件系统为止。
所有内核以及初始RAM磁盘映像都位于/ boot目录中。
4.启动Systemd
最后,内核加载Systemd,以替换旧的SysV init。
Systemd是所有Linux进程的源头,除其他功能外,它还管理文件系统的挂载,启动和停止服务等。
Systemd使用/etc/systemd/system/default.target文件来确定Linux系统应引导的状态或级别。
- 对于台式机工作站(具有图形用户界面),默认目标为5,它等效于旧SystemV init的运行级别5。
- 对于服务器,默认值为multi-user.target,它对应于SysV init中的运行级别3。
要检查系统上的当前级别,请运行以下命令:
$ systemctl get-default
您可以通过在终端上运行以下命令从一个级别切换到另一个级别:
$ init runlevel-value
例如,初始化3将系统置于非图形状态。
初始化6重新启动系统,初始化0关闭系统。
要切换到这两个级别时,请确保使用sudo命令。
当systemd装入所有守护程序并设置目标或运行级别值时,引导过程结束。
此时,系统将提示您输入用户名和密码,之后您便可以访问Linux系统。