系统引导修复
一、通电
启动所有硬件并为进入系统做准备
问题处理:
检查所有电源设备, 确定供电设备正常,所有线缆是否插紧,检查线缆是否有损坏
二、BIOS环境检测
检测硬件是否正常
检测硬件是否插紧
三、磁盘引导阶段
找到/boot分区
如果此阶段出现问题,那么系统会处于黑屏并闪烁光标
模拟问题的命令:
dd if=/dev/zero of=/dev/sda bs=446 count=1
#/dev/sda 是系统boot分区所在磁盘
#此命令标识用无限零字节覆盖/dev/sda上最前面的446个字节(mbr主引导记录,负责找到/boot)
问题提示信息:
问题解决方法:
1.进入挽救模式
从光盘启动
2.得到shell后,开始执行修复命令,修复原理是把mbr重新安装到启动设备
#chroot/mnt/sysroot #从挽救模式的环境切换到系统环境
#fdisk-l #通过命令找出启动设备(*在哪个设备上那个就是启动设备),如果显示的是/dev/sda1,其实际下面命令的启动设备可能是/dev/sda
#grub2-install 启动设备(/dev/sda)
#exit
#exit
等待系统重启,系统修复完毕
四、文件引导阶段
在文件引导阶段,系统会读取/boot/grub2/grub.cfg (自动引导文件),在此文件中指定系统系统过程中读取什么文件,加载什么参数。
如何修改grub参数(以修改等待时间为例)
[root@rhel9 桌面]# cd /etc/default/
[root@rhel9 default]# vim /etc/default/grub #生成grub.cfg时使用的默认参数
GRUB_TIMEOUT=10 #设定grub启动时等待时间为10秒
[root@rhel9 default]# grub2-mkconfig > /boot/grub2/grub.cfg #生成新grub.cfg
(1)问题:当/boot/grub2/grub.cfg文件丢失,那么系统将无法完成自动启动
解决问题:
1.设置问题出现
#确定/boot分区所在系统位置
#确定/分区位置
#问题重现
#此文件如果被删除,并把系统重新启动,那么会出现如下情况:
如何解决
#永久恢复
#进入系统后执行
(2)模拟问题:内核参数文件丢失后,无法完成自动启动
内核参数文件
[root@rhel9 桌面]# cd /boot/loader/entries/
[root@rhel9 entries]# ls
732d4c51b0fd439d940bbc4ee7d9018e-0-rescue.conf #挽救内核参数
732d4c51b0fd439d940bbc4ee7d9018e-5.14.0-427.13.1.el9_4.x86_64.conf #常规内核参数
首先手动引导系统初始化,进入系统
执行命令进行恢复后,文件出现
五、启动内核
启动内核过程系统都完成了以下工作:
1.加载内核文件 /boot/vmlinuz-5.14.0-427.13.1.el9_4.x86_64
2.只读挂载/设备(只读挂载根设备)
3.读取/etc/fstab文件,确定磁盘挂载策略
4.读取/etc/sysconfig/selinux 确定selinux状态
5.加载系统时钟
模拟问题:内核文件丢失
[root@rhel9 ~]# rm -fr /boot/vmlinuz-5.14.0-427.13.1.el9_4.x86_64
如何进行修复:
1、进入主机的BIOS模式,让主机从光盘启动
2、通过设置进入到rescue(挽救模式)
chroot /mnt/sysrootmount /dev/cdrom /mediacd /media/BaseOS/Packages/cp kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm /mntcd /mnt]#ls
kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpmrpm2cpio kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm | cpio -idcd lib/modules/5.14.0-427.13.1.el9_4.x86_64/ #lib目录是在mnt目录里面的cp vmlinuz /boot/vmlinuz-$(uname-r)exitexit
3、修复完成后,将光盘启动改成硬盘启动就行了
六、系统初始化
系统初始化的作用
使用初始化环境开启系统所有开机自启动服务
模拟问题:
[root@rhel9 boot]# rm -fr /boot/initramfs-5.14.0-427.13.1.el9_4.x86_64.img
如何解决:
1. 通过光盘引导进入rescue模式(拯救模式)
2. 恢复文件
chroot /mnt/sysrootmount /dev/cdrom /media/cd /media/BaseOS/Packages/rpm -ivh kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm --forceexitexit
3. 设置启动顺序,把硬盘启动放在第一位,然后重新启动就行了
七、如果boot分区损坏,里面的内容全部丢失
模拟问题:
[root@rhel9 ~]# rm -fr /boot/*
修复问题:
1、安装grub
2、修复/boot/grub2/grub.cfg文件
3、安装内核文件
4、设置启动顺序,把硬盘启动放在第一位,然后重新启动就行了
chroot /mnt/sysrootfdisk-l grub2-install /dev/sdagrub2-mkconfig > /boot/grub2/grub.cfgmount /dev/cdrom /media/cd /media/BaseOS/Packages/rpm -ivh kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm --forceexitexit