CentOS 7 系统启动引导过程与服务控制(一)
更新:HHH   时间:2023-1-7


一、CentOS系统启动流程图解


二、启动详解

1.开机自检

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

 

2. MBR 引导

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

 

3. GRUM菜单

       对于Linux系统来说,GRUB算是使用最为广泛的多系统引导器程序了。系统控制权传递给GRUB以后,将会显示启动菜单提供给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。

 

4.加裁Linux内核

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


5.INIT进程初始化

       为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程) init进程负责完成一系列的系统初始化过程


init进程

       与使用数字标记用户账号、组账号类似,Linux系统中的进程(运行中的程序)也使用数字进行标记,每个进程的身份标记号称为PID。在引导Linux系统的过程中,init进程是系统中第一个进程,PID(进程标记)号永远为1

       init进程运行以后将陆续执行系统中的其他程序,不断生成新的进程,这些进程称为init进程的子进程,反过来说init进程是这些进程的父进程。当然,这些子进程也可以进一步生成各自的子进程,依次不断繁衍下去,最终构成一棵枝繁叶茂的进程树,共同为用户提供服务。

       从以上描述可以看出,init进程正是维持整个Linux系统运行的所有进程的"始祖",因此init进程是不允许被轻易终止的。需要切换不同的系统运行状态时,可以向init进程发送正确的执行参数,由init自身来完成相关操作。

 

 三.Systemd单元类型


四.运行级别

Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

运行级别(runlevel)的分类:




五.MBR扇区故障修复

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


(1)事先准备一块磁盘


(2).将MBR引导文件备份到新磁盘中

dd   if=/dev/sda  of=/data/sda.mbr.bak  bs=512   count=1


(3).模拟破坏mbr引导扇区

dd   if=/dev/zero   of=/dev/sda   bs=512  count=1


(4).重启 reboot 会出现下面dhcp搜索的情况


(5).将系统镜像文件的驱动盘放入,重启,并在读条的过程按下ESC键,选择CD-ROM  Drive


(6).选择Troubleshooting  疑难问题


(6).选择Rescue  a  Centos  system


(7).等待一段时间后,出现下面界面  输入1  选择继续


(8).这个时候输入ls  你会发现我们放备份文件的挂载点不在列表中


(9).我们新建一个挂载点,将sdb1挂载到该文件夹,你会看到我们前面备份的文件


(10).将该备份文件覆盖我们的mbr扇区引导文件


(11).输入reboot 重启


这样修复就完成了











返回云计算教程...