目录
1. 通电
2. blos初始化
- 对硬件检测
- 初始化硬件时钟
3. 磁盘引导
mbr=主引导记录=0磁道1扇区446字节
作用:记录grub2引导文件的位置
当mbr数据丢失,系统会因为找不到启动分区而停止启动
问题模拟: 系统磁盘:/dev/nvme0n1数据损坏及修复过程
dd if=/dev/zero of=/dev/nvme0n1 bs=446 count=1 ## 清空系统dev/nvme0n1上的mbr数据
## 恢复方式:用光盘进入挽救模式
chroot /mnt/sysimage
grub2-install /dev/XXXXXX ## 重新安装grub2到系统硬盘上,此处的XXXXXX指的是之前我们通过fdisk -l所查到的磁盘名称
- 清空系统dev/nvme0n1上的mbr数据
在这里由于我们清空了磁盘的数据,因此会默认从光盘启动,在这里为了验证实验效果,我们先将光盘断开连接
可以看到此时系统已经无法正常启动!
- 修复系统dev/nvme0n1
我们进入BLOS界面,设置通过光盘启动
在这里不是重新安装,在重新启动后,选择Troubleshooting
选择Rescue a Red Hat Enterprise Linux system
将系统恢复后通过两次exit即可以重启,在这里要注意,我们刚刚修改了启动方式是从光盘启动,现在将其恢复为磁盘启动就可以正常启动!
4. grub2文件引导
rhel7
/boot/grub2/grub.cfg
rhel8
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxx.conf
作用:
- 指定启动分区(/boot)位置
- 指定系统启动时加载文件名称
rhel7
rhel8
模拟问题
rhel7:
rm -fr /boot/grub2/grub.cfg
rhel8:
rm -fr /boot/loader/entries/xxxxxx.conf
## rhel7:
rm -fr /boot/grub2/grub.cfg
## rhel8:
rm -fr /boot/loader/entries/xxxxxx.conf
## 恢复
## rhel7
grub2-mkconfig > /boot/grub2/grub.cfg
## rhel8
kernel-install add KERNEL-VERSION KERNEL-IMAGE ## KERNEL-VERSION KERNEL-IMAGE
内核版本号 内核压缩镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
- rhel8删除启动加载文件
重启后我们的界面已经无法正常显示
- 手动引导正常启动
## 删除过程:
ls /boot/ ## 查看文件名称和镜像文件
uname -r ## 查看内核版本
rm -fr /boot/loader/entries/*
## 手动引导
set root='hd0,msdos1'
linux16 /vmlinuz-4.18.0-147.el8.x86_64 ro root=/dev/nvme0n1p3
initrd16 /initramfs-4.18.0-147.el8.x86_64.img
boot
## 但是手动引导不是永久更改的,因此我们还需要用命令来修复引导文件
- 命令修复引导文件
5. 内核加载
加载内核作用:/boot/vmlinuz-$(uname -r)
系统初始化硬件设备,只读挂载/设备
模拟问题:
rm -fr /boot/vmlinuz-$(uname -r)
恢复:
重装内核
- 删除内核文件操作
rm -fr /boot/vmlinuz-4.18.0-147.el8.x86_64
- 恢复内核文件操作
## rhel7 rhel8恢复
## 进入挽救模式
chroot /mnt/sysimage
mount /dev/cdrom /mnt
cd /mnt/BaseOS/Packages
rpm -ivh kernel-core-xxxxxx.rpm --force
rhel7:
rhel8:
恢复成功!
6. 系统初始化镜像
系统初始化镜像文件:/boot/initramfs-4.18.0-147.el8.x86_64.img
作用:
- 加载系统时钟
- 加载selinux
- 加载系统主机信息
- 加载/etc/fstab文件中磁盘挂载策略
- 加载磁盘配额
- 初始化系统程序开启开机启动服务
- 开启虚拟控制台
- 开启图形
模拟问题:
删除系统初始化镜像文件:
rm -fr /boot/initramfs-4.18.0-147.el8.x86_64.img
恢复系统初始化镜像文件:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
7. 系统启动级别
0 ## 关机
1 ## 单用户
2 ## 无图形网络模式
3 ## 无图形网络模式
4 ## 无图形网络模式
5 ## 有图形网络模式
6 ## 重启
更改配置:
systemctl set-default reboot.target ## 会陷入无限重启过程
恢复配置:
## 在开机选择界面按<e>进入到引导文件编辑模式
## 在内核加载选项最后加入启动级别5
ctrl+x
systemctl set-default graphical.target ## 永久设定为5,否则还会陷入重启循环
8. 超级用户密码忘记
恢复:
- 在开机选择界面按<e>进入到引导文件编辑模式
- 在内核加载选项最后删除到ro选项
- 更改ro ----> rw
- 加入rd.break参数终止系统启动进入单用户模式
- ctrl+x启动
- chroot /sysroot
- echo redhat | passwd --stdin root
- touch /.autorelabel ## 当/.autorelabel文件存在selinux会重新初始化