系统启动流程:

一、BIOS检

​ 1.硬件检测

​ 2.选择合适的引导设备

二、引导部分 GRUB2

​ 1.读取引导设备的启动扇区

​ MBR模式

​ GPT模式 (大于硬盘2TB就使用GPT模式)

​ 1扇区=512Byte字节

​ 446字节引导程序+16*4分区表+2个字节的结束位 = 512Byte

​ 2.读取引导程序的配置文件

​ /boot/grub2/grub.cfg

​ 3.根据配置文件,加载内核,加载ramdisk文件

三、启动网络服务

故障案例一:引导程序故障

:star: 使用虚拟机来模拟,需要事先挂载一个镜像

:one: 前446字节是引导程序,我们可以使用dd命令来把前446字节给覆盖了来模拟引导程序故障

dd if=/dev/zero of=/dev/sda bs=446 count=1
##使用dd命令覆盖
# if 输入 of 输出 bs s输出文件大小 count 输出几块
# 我这的系统盘名为sda
[root@5317 ~]# dd if=/deu/zero of =/dev/sda bs=446 count=1 
1+records in
1+records out
446 bytes (446 B) copied,0.B88318632s,1.4 MB/s

:two: 重启系统会直接进入安装界面表示引导程序已经没了,选择Troubleshoting,在选择Rescue a Centos system

image-20240412200500907

:three: 这样就会进入LiveCD 也就是假系统类似于winPE ,LiveCD加载到内存中的系统,启动时尝试去查找本地硬盘中已经安装好的linux系统根分区,并且挂载至LiveCD系统的/mnt/sysimage目录

它会有三个选项,选择:one: 直接进入

image-20240412200739124

就会得到一个shell

image-20240412200839542

:four: 这样就进入liveCD系统了,输入以下命令

chroot /mnt/sysiimage ###切换根的位置
grub2-install /dev/sda ##重新写入引导文件 因为引导文件是固定的
exit //输入两次退出liveCD

故障案列二:不小心删除/boot目录中的所有文件,引导程序坏了

:one: 先按照上面的方法把引导程序修复好

:two: 我们首先先看一下的boot里面的文件是来自哪里

[root@tancserver2 boot]# ls
config-3.10.0-1160.45.1.el7.x86_64                       symvers-3.10.0-1160.45.1.el7.x86_64.gz
config-3.10.0-957.21.3.el7.x86_64                        symvers-3.10.0-957.21.3.el7.x86_64.gz
config-3.10.0-957.el7.x86_64                             symvers-3.10.0-957.el7.x86_64.gz
efi                                                      System.map-3.10.0-1160.45.1.el7.x86_64
grub                                                     System.map-3.10.0-957.21.3.el7.x86_64
grub2                                                    System.map-3.10.0-957.el7.x86_64
initramfs-0-rescue-20190711105006363114529432776998.img  vmlinuz-0-rescue-20190711105006363114529432776998
initramfs-3.10.0-1160.45.1.el7.x86_64.img                vmlinuz-3.10.0-1160.45.1.el7.x86_64
initramfs-3.10.0-957.21.3.el7.x86_64.img                 vmlinuz-3.10.0-957.21.3.el7.x86_64
initramfs-3.10.0-957.el7.x86_64.img                      vmlinuz-3.10.0-957.el7.x86_64
initramfs-3.10.0-957.el7.x86_64kdump.img
###可以看见这是一个rpm包,那么rpm包就好解决了
[root@tancserver2 boot]# rpm -qf vmlinuz-3.10.0-1160.45.1.el7.x86_64 
kernel-3.10.0-1160.45.1.el7.x86_64

:three: rpm包安装好就好解决了,我们可以直接挂载CD镜像里面有rpm包

mount /dev/cdrom /media
cd /medion/Packages/
rpm -qf /boot/vmlinuz-3.10.0-862.el7.x86_64
rpm -ivh kernel-3.10.0-862.el7.x86_64 --force ##强制安装
grub2-mkconfig -o /boot/grub2/grub.cfg ##重写boot引导文件

故障案列三:文件系统损害,根损坏

fdisk -l 查看硬盘
查找到后挂载
xfs_repair  假如你的文件系统是xfs就可以使用这个来修复
fsck就是修复ext3 ext4的文件系统的

故障案例四:根在逻辑分区

fdisk -l会看见根是在一个逻辑分区
lvsdisplay 查看逻辑卷的状态  
你会发现它挂载不起来lvdiplay倒数第六行查看状态会发现是不可用的
使用
lvchange -a y [逻辑卷]
在查看lvdisplay就会发现逻辑卷是活动状态了
在挂载根查看uuid然后查看fstab里面的是否正确修改

故障案例五:磁盘文件系统损坏**

如果是EXT4的文件系统 直接执行年 fsck -y [硬盘]
如果是xfs xfs_repair
原理:文件系统有个superblock ,记录文件系统的元数据结构的,在系统中有多份备份
dumpe2fs [硬盘] 可以查看