前言
系统引导如初始化一般,与系统运行并发,用户登陆界面之前便已经“初始化”完成,这一系列操作的目的是为了加载系统程序和命令,为呈现用户登陆搭建好框架。当然,linux启动时不仅有着令人叹服的引导过程。同时也有解决启动类故障的通道,使用户能够拥有更好的操作体验。
一、LINUX操作系统引导过程
1、开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交本机硬盘 总结:检测出第一个能够引导系统的设备,例如硬盘或者光驱
2、MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR的设置,将系统控制权递交给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单 总结:运行放在MBR扇区里的启动GRUB引导程序
3、GRUB菜单
对于LINUX操作系统来说,GRUB时使用最为广泛的多系统引导器程序,系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权转交给内核,需要注意的是:centos7采用是GRUB2启动引导器。 总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg.来获取内核和镜像文件系统的设置和路径位置
4、加载内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度,内核接过系统控制权以后,将完全掌控整个LINUX操作系统的运行过程,在Centos系统中,默认的内核文件位于“/boot/vmlinuz=3.10.0=541.e17.x86_64” 总结:把内核和镜像文件系统加载到内存中
5、init进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存之中运行,init进程负责完成一系列的系统初始化过程,最好等待用户进行登陆。 总结:加载硬件驱动程序,内核把init进程加载到内存中运行
6、Init进程和Systemd
6.1、init进程
由Linux内核加载运行/sbin/init程序Init 进程是系统中第一个进程Init进程是PID号永远是1
6.2、Systemd
Systemd是Linux操作系统的一种init软件CentOS7中采用全新的SYSTEMD启动方式,取代传统的SysVinitCentOS7中运行的第一个init进程是/lib/systemd/systemd
7、Systemd单元类型
8、运行级别所对应的systemd目标
二、排除启动类故障—修复MBR扇区故障
1、故障原因
病毒,木马、挖矿等造成的破坏不正确的分区操作、磁盘读写误操作
2、故障现象
找不到引导程序,启动中断无法加载操作系统,具体是开机后黑屏
3、解决思路
第一、提前准备好备份文件 第二、以安装光盘引导进入急救模式 第三、以备份文件中恢复
4、模拟故障展示区
4.1、镜像挂载
4.2、显示扇区信息
(此处省略重启,分区)
4.3、格式化及挂载
4.4、模拟破坏MBR引导扇区1
(进行MBR备份) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDThvQ9X-1628863527796)(htt)ps://img-blog.csdnimg.cn/b75c6c844aa74a258a12afe2528646d0.png#pic_center)]
4.5、模拟破坏MBR引导扇区2
(将MBR覆盖,将其损坏)
4.6、显示故障问题后重启
(重启-----引导界面进入急救模式)
4.7、使用备份文件恢复MBR损坏扇区
4.8、重启后恢复正常界面
三、排除启动类故障------修复GRUB引导故障
1、故障原因
MBR中的GRUB引导程序遭到破坏grub.conf文件丢失,引导配置有误
2、故障现象
系统引导停滞,显示“grub>”提示符
3、解决思路
尝试手动输入引导命令进入急救模式,重写或者从备份中恢复grub.conf向MBR扇区中重建grub程序
4、模拟故障展示区
4.1、添加硬盘重启分区格式化挂载
(此处省略添加硬盘、重启、分区)
4.2、重建GRUB菜单配置文件
(通过删除grub.cfg文件)
4.3、进入急救模式,加载光盘,切换到系统根环境
1、故障显示
2、注意:若想进入该界面,重启后快速反应 按一次Esc 多试几次,博主试了25次!
4.4、进入急救模式,恢复CENTOS系统
4.5、成功,恢复界面
四、总结
首先引导过程分五部分,第一部分是开机自检、第二部分是MBR引导、第三部分是GRUB菜单、第四部分是加载内核、第五部分是Init进程初始化,这五个部分相互影响缺一不可,其次,开机自检是检测出第一个能够引导系统的设备,MBR引导是运行放在MBR扇区里的启动GRUB引导程序,GRUB菜单是GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg.来获取内核和镜像文件系统的设置和路径位置,加载内核是把内核和镜像文件系统加载到内存中,init进程是加载硬件驱动程序,内核把init进程加载到内存中运行。这里是需要记忆的,原因是这里存在面试题。
|