一、引导过程总览

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统


1.开机自检

服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

2.MBR 引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(Master Boot Record主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根MBR 记录中的引导信息调用启动菜单。

3.GRUB 菜单

对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB 以后,将会显示启动菜单给用户选择,并根据所选项加载 Linux 内核文件,然后将系统控制权转交给内核。 (CentOS 7 采用的是 GRUB2 启动引导器)。

4.加载内核

Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。

5.init 进程初始化

为了完成进一步的系统引导过程,Linux 内核首先将系统中的“/sbin/init”程序加载到内存中运行,init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录。

二、init 进程

Linux 操作系统中的进程使用数字进行标记,每个进程的身份标记号称为 PID。在引导Linux 操作系统的过程中,“/sbin/init”是内核第一个加载的程序,因此 init 进程对应的PID 号总是为 1。

三、Systemd简介

Systemd 是 Linux 操作系统的一种 init 软件,CentOS 7 系统中采用了全新的 Systemd 启动方式,取代了传统的 SysVinit。Systemd 启动方式使系统初始化时诸多服务并行启动,大大提高了开机效率。CentOS 7 系统中“/sbin/init”是“/lib/systemd/systemd”的链接文件。换言之,CentOS 7 系统中运行的第一个 init 进程是“/lib/systemd/systemd”。 systemd 守护进程负责 Linux 的系统和服务,systemctl 用于控制 Systemd 管理的系统和服务状态。以下是Systemd的单元类型。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_02


早期 Linux 操作系统中的 SysVinit 机制,默认包括七种不同的服务搭配方式,为了向下兼容 SysVinit 系统,Systemd 使用了相应的 target(目标)模拟了 SysVinit 的运行级别,如图。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_03

四、排除系统启动故障

1、修复MBR扇区故障

MBR 位于物理硬盘的第一个扇区(512 字节),该扇区又称为主引导扇区,除了包含系统引导程序的部分数据外,还包含整个硬盘的分区表记录。当主引导扇区发生故障时,将可能无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态。

扇区故障实验:

(1)首先我们添加一块硬盘,然后(1)执行“fdisk /dev/sdb”命令将硬盘分区。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_04


(2)执行“mkfs.xfs /dev/sdb1”命令对硬盘分区进行格式化。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_05


(3)执行“mkdir /data”命令创建目录作为挂载点,再执行“mount /dev/sdb1 /data”将硬盘设备挂载到目录上。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_06


(4)执行“dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1”命令将主硬盘的第一扇区的内容备份到“/data”目录中。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_07


(5)执行“dd if=/dev/zero of=/dev/sda bs=512 count=1”命令来模拟主分区故障。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_08


(6)执行“init 6”命令重启来看一下,显示无法找到系统。

centos7系统启动的引导过程有哪几步 centos7引导文件_加载_09


(7)我们重启设备,在加载读条的时候及时按下Esc键进入“Boot Menu”界面,并将系统镜像放入驱动中然后使用方向键选择“CD-ROM Drive”选项进入驱动引导。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_10


(8)在向导界面使用方向键选择“Troubleshooting”进入故障修复页面,再选择“Rescue a CentOS Linux system”选项,将以“救援模式”引导 Linux 操作系统。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_11


centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_12


(9)然后选择 “1”确认并按 Enter 键继续,接下来会出现字符界面。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_13


(10)按 Enter 键后将进入Bash Shell 环境。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_14


(11)执行“mkdir /bak”命令创建目录,并执行“mount /dev/sdb1 /bak”命令将硬盘设备挂载到该目录上。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_15


(12)执行“dd if=/bak/sda.mbr.bak of=/dev/sda”命令将备份的主扇区内容放入到主扇区里。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_16


(13)最后执行“reboot”命令重启设备即可。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_17


2、GRUB引导故障

GRUB 是大多数 Linux 操作系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统。

故障模拟实验:

(1)执行“cd /boot/”命令再执行“ls”命令可以看到“grub2”目录。

centos7系统启动的引导过程有哪几步 centos7引导文件_CentOS_18


(2)执行“cd grub2”命令再执行“ls”命令可以看到“grub.cfg”配置文件(CentOS 7 采用的是 GRUB2 启动引导器)。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_19


(3)执行“rm -rf grub.cfg”删除掉配置文件,然后执行“init 6”命令重启设备。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_20


(4)重启可以发现系统让我们手写启动菜单界面。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_21


(5)重启设备并导入镜像到驱动中,在加载读条时及时按下Esc键进入“Boot Menu”界面。使用方向键选择“CD-ROM Drive”选项进入驱动引导。

centos7系统启动的引导过程有哪几步 centos7引导文件_CentOS_22


(6)在向导界面使用方向键选择“Troubleshooting”进入故障修复页面,再选择“Rescue a CentOS Linux system”选项,将以“救援模式”引导 Linux 操作系统。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_23


centos7系统启动的引导过程有哪几步 centos7引导文件_CentOS_24


(7)然后选择 “1”确认并按 Enter 键继续,接下来会出现字符界面。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_25


(8)按 Enter 键后将进入Bash Shell 环境。

centos7系统启动的引导过程有哪几步 centos7引导文件_加载_26


(9)执行“chroot /mnt/sysimage/”命令加载系统镜像,再执行“grub2-install /dev/sda”命令重新建立加载sda分区。

centos7系统启动的引导过程有哪几步 centos7引导文件_加载_27


(10)执行“grub2-mkconfig -o /boot/grub2/grub.cfg”命令选择构建grub菜单配置文件。

centos7系统启动的引导过程有哪几步 centos7引导文件_重启_28


(11)执行“exit”命令退出bash环境,再执行“reboot”命令重启即可。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_29

五、重置root用户密码

当忘记 root 用户的密码时,将无法登录 Linux 操作系统执行管理、维护等任务,而只能通过其他用户(普通用户)登录使用一些受限制的功能。当然,如果操作系统中还有其他具有 root 权限的用户(uid 为 0),或者拥有修改 root 账号密码权限的用户,也可以使用这些用户登录操作系统,然后重新设置 root 用户的密码。

模拟实验:

1、将镜像放入驱动并重启设备。

centos7系统启动的引导过程有哪几步 centos7引导文件_CentOS_30


2、在加载读条时及时按下Esc键进入“Boot Menu”界面。使用方向键选择“CD-ROM Drive”选项进入驱动引导。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_31


3、在向导界面使用方向键选择“Troubleshooting”进入故障修复页面,再选择“Rescue a CentOS Linux system”选项,将以“救援模式”引导 Linux 操作系统。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_32


centos7系统启动的引导过程有哪几步 centos7引导文件_CentOS_33


4、然后选择 “1”确认并按 Enter 键继续,接下来会出现字符界面。

centos7系统启动的引导过程有哪几步 centos7引导文件_操作系统_34


5、按 Enter 键后将进入Bash Shell 环境。

centos7系统启动的引导过程有哪几步 centos7引导文件_shell_35


6、执行“chroot /mnt/sysimage/”命令加载系统镜像, 在执行“passwd root”命令即可重置。

centos7系统启动的引导过程有哪几步 centos7引导文件_加载_36

下一篇幅我们将学习CentOS 7 的服务控制与优化启动过程。尽请期待,谢谢!