目录
1. 通电
2. bios初始化
• 对硬件检测
• 初始化硬件时钟
3. 磁盘引导
mbr=主引导记录=0磁道1扇区446字节
作用:记录grub2引导文件的位置
当mbr数据丢失,系统会因为找不到启动分区而停止启动
模拟问题:系统磁盘/dev/sda数据损坏
问题出现:dd if=/dev/zero of=/dev/sda bs=446 count=1 ##清空系统/dev/sda上的mbr数据
恢复:
- 用光盘进入系统挽救模式
- chroot /mnt/sysimage
- grub2-install /dev/sda##重新安装grub2到系统硬盘上
清空系统dev/sad上的mbr数据
进入系统失败
#用光盘进入系统挽救模式
注:不同主机,系统硬盘名不同。此图中命令改为grub2-install/dev/sda
将系统恢复后通过两次exit即可以重启,恢复为磁盘启动就可以正常启动!
4. grub2文件引导
rhel8版本中文件位置/boot/grub2/grub.cfg/boot/loader/entries/xxxxxxxxx.conf
作用:
指定启动分区(/boot)位置
指定系统启动时加载文件名称
模拟问题:rhel8中删除启动加载文件
-
方式1.命令修复引导文件:
kernel-install add (uname -r)/vmlinuz -
方式2.手动引导启动(不是永久更改的,因此我们还需要用命令来修复引导文件)
set root=‘hd0,msdos1’
linux16 /vmlinuz-4.18.0-147.el8.x86_64 ro root=/dev/sda2
initrd16 /initramfs-4.18.0-147.el8.x86_64.img
boot
重启:
注:此图中root=/dev/sda2 根目录文件
恢复成功
5. 内核加载
加载内核:/boot/vmlinuz-$(uname -r)
作用:系统初始化硬件设备,只读挂载/设备
模拟问题:删除内核
rm -fr /boot/vmlinuz-$(uname -r)
恢复:复制内核文件包并压缩镜像到/boot
- 重启进入挽救模式
- chroot /mnt/sysimage
- mount /dev/cdrom /media
- cd /media/BaseOS/Packages
- cp kernel-core-###.rpm /mnt/
- cd /mnt
- rpm2cpio kernel-core-###.rpm | cpio -id
- cp /mnt/lib/modules/4.18.0-##/vmlinuz /boot/vmlinuz-$(uname -r)
- exit
- exit
恢复成功
6. 系统初始化镜像
系统初始化镜像文件:/boot/initramfs-4.18.0-147.el8.x86_64.img
作用:
- 加载系统时钟
- 加载selinux
- 加载系统主机信息
- 加载/etc/fstab文件中磁盘挂载策略
- 加载磁盘配额
- 初始化系统程序开启开机启动服务
模拟问题:删除初始化镜像文件
rm -fr /boot/initramfs-4.18.0-80.el8.x86_64.img
- 方式1.命令修复:
恢复命令:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) - 方式2.手动修复(删除后重启情况下)
①进入挽救模式
②chroot /mnt/sysimage
③mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
恢复成功
7. 系统启动级别
- 0 ## 关机
- 1 ## 单用户
- 2 ## 无图形网络模式
- 3 ## 无图形网络模式
- 4 ## 无图形网络模式
- 5 ## 有图形网络模式
- 6 ## 重启
开机后自动启动的服务存放在/etc/systemd/system/multi-user.target.wants/目录
实质上这里的sshd.service是一个软连接指向服务真实位置
同理:default.target也是一个软连接指向开机图形界面
存放位置:/lib/systemd/system/
模拟问题:更改开机set-default配置
systemctl set-default reboot.target ## 会陷入无限重启过程
问题解决:
- 在开机选择界面按进入到引导文件编辑模式
- 在内核加载选项最后加入启动级别5
- ctrl+x
- 开机后输入systemctl set-default graphical.target ## 永久设定为5,否则还会陷入重启循环
恢复成功
模拟问题:删除/boot下的所有文件
删除:rm -fr /boot/*
恢复:
8. 超级用户密码忘记
恢复:
- 在开机选择界面按进入到引导文件编辑模式
- 在内核加载选项最后删除到ro选项
- 更改ro ----> rw
- 加入rd.break参数,终止系统启动进入单用户模式
- ctrl+x启动
- chroot /sysroot
- echo redhat | passwd --stdin root
- touch /.autorelabel ## 当/.autorelabel文件存在selinux会重新初始化