Linux 操作系统引导过程简介与排除启动类故障演示
前言
系统引导指的是将操作系统内核装入内存并启动系统的过程。系统引导通常是由一个被称为启动引导程序的特殊代码完成的,它位于系统ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来的整个系统启动过程。
一、Linux操作系统引导过程
开机自检
1.服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
2.总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
MBR引导
1.当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区。
2.总结:运行放在MBR扇区里的启动GRUB引导程序
GRUB菜单
1.对于Linux操作系统来说,GRUB (统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。
2.CentOS 7采用的是GRUB2启动引导器。
3.总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
加载内核
1.Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
2.CentOS 7系统中,默认的内核文件位于"/boot/vmlinuz-3.10.0-514.e17.x86_64"
3.总结:把内核和镜像文件系统加载到内存中
init进程初始化
1.为了完成进一步的系统引导过程,Linux内核首先将系统中的"/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init进程负责完成整个系统的初始化,最后等待用户进行登录。
2.总结:加载硬件驱动程序,内核把init进程加载到内存中运行
init进程和Systemd
①init进程
由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程,是所有进程的父进程
init进程的PID(进程标记)号永远是1
②Systemd
Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd
传统SysVinit依赖于串行执行Shell脚本启动服务,导致效率低下,系统启动速度较慢
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。
Systemd单元类型
运行级别所对应的Systemd目标
CentOS5/6/7启动过程的区别
:排除启动类故障演示
案例1:修复MBR扇区 故障****
故障原因:**
病毒,木马等造成的破坏
不正确的区分操作,磁盘读写误操作
故障现象:
找不到引导程序,引导中断
无法加载操作系统,开机后黑屏
解决思路
应提前做好备份文件
以安装光盘引导进入救急模式
以备份文件中恢复
演示案例“
1.新添一块磁盘
2.添加成功
3.分区成功
4.创建文件系统
5.创建vent目录,挂载到vent目录下。
6.把sda的文件导入新文件夹中,相当于备份
7.空文件导入sda,模拟毁坏
8.启动镜像
9.重启选择troubleshooting(急救模式)。
10.从备份文件中恢复MBR扇区数据
11.创建新目录重新挂载sdb1,然后再把文件导入sda。完成重启
12.重启成功。演示结束。
案例2:遗忘root用户密码
故障原因:
遗忘root用户密码
故障现象:
无法进行需要root权限的管理操作
若没有其他账号可用,将无法登陆系统
解决思路:
进入急救模式,重设密码
1.进入引导界面更改密码
然后重新登录即可。
总结
Linux操作系统引导过程是非常重要的,是我们运维人员都需要掌握的技能。