bios初始化

对硬件检测
初始化硬件时钟
 
bios打开方式:
Linux系统的故障修复
 
Linux系统的故障修复
 

Linux系统的故障修复

磁盘引导

mbr=主引导记录=0磁道1扇区446(其中只存放了c盘的位置)
 
作用: 记录grub2引导文件的位置,找到系统的启动分区
 
mbr数据丢失系统会因为找不到启动分区而停止启动
 
问题模拟方式
fdisk -l     查看系统磁盘所在位置
Linux系统的故障修复
系统磁盘/dev/sda
dd if=/dev/zero of=/dev/sda bs=446 count=1     清空系统/dev/sda上的mbr数据
Linux系统的故障修复
此时重启系统会当场gg
Linux系统的故障修复
 
恢复方式
进入bios设定为光盘驱动:
Linux系统的故障修复
进入挽救模式:
Linux系统的故障修复
Linux系统的故障修复
注意:挽救模式下的 / 是光盘的 /,硬盘的 / 会被挂载到当前环境光盘/mnt/sysimages
Linux系统的故障修复
Linux系统的故障修复
 
chroot /mnt/sysimage
grub2-install /dev/sda   重新安装grub2到系统硬盘上
exit
exit
Linux系统的故障修复
完成后挽救成功!

 

grub2文件引导

rhel8
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxxxxx.conf
Linux系统的故障修复
 
指定/boot位置
指定系统启动时加载文件成名
 
模拟问题
rhel8
rm -fr /boot/loader/entries/xxxxxxxxx.conf
Linux系统的故障修复
 
修复
kerne-install add
内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
 
手动引导
set root='hd0,msdos1'
linux16 /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/sda3
initrd16 /initramfs-4.18.0-80.el8.x86_64.img
boot
Linux系统的故障修复

 

kernel-install add 4.18.0-80.el8.x86_64  /boot/vmlinuz-4.18.0-80.el8.x86_64    重新生成config文件 

Linux系统的故障修复

内核加载

 
加载内核作用:
/boot/vmlinuz-$(uname -r)
系统初始化硬件设备
只读挂在/设备
 
问题模拟
rm -fr /boot/vmlinuz-$(uname -r)
Linux系统的故障修复
 
恢复
拆解内核文安装包并复制内核压缩镜像到/boot
 
进入到挽救模式
chroot /mnt/sysimage
mount /dev/cdrom  /media
cd /media/BaseOS/Packages
cp kernel-core-4.18.0-80.el8.x86_64.rpm /mnt/
cd /mnt
rpm2cpio kernel-core-4.18.0-80.el8.x86_64.rpm | cpio -id
cp /mnt/lib/modules/4.18.0-80.el8.x86_64/vmlinuz    /boot/vmlinuz-$(uname -r)
exit
exit
 
Linux系统的故障修复

系统初始化镜像

/boot/initramfs-4.18.0-80.el8.x86_64.img
加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形
 
问题模拟
rm -fr /boot/initramfs-xxxxx.img
Linux系统的故障修复
出现问题
Linux系统的故障修复
 
恢复
进入挽救模式
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
Linux系统的故障修复
 

系统启动级别

0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
 
问题出现
systemctl set-default reboot.target     进入无限重启模式
Linux系统的故障修复
 
恢复
在开机选择界面按<e>进入到引导文件编辑模式
Linux系统的故障修复
在内核加载选项最后加入启动级别5  按ctrl+x
Linux系统的故障修复
 
systemctl set-default graphical.target
Linux系统的故障修复

 

超级用户密码忘记

 
恢复
在开机选择界面按<e>进入到引导文件编辑模式
Linux系统的故障修复
 
在内核加载选项最后删除到ro选项,更改ro---->rw,加入rd.break参数终止系统启动进入单用户模式,ctrl+x启动
Linux系统的故障修复
 
chroot /sysroot
echo daddy| passwd --stdin root 将root用户密码改为daddy
touch /.autorelabel            /.autorelabel文件存在selinux会重新初始化
Linux系统的故障修复
 

终极实验

rm -fr /boot/*
Linux系统的故障修复
 
恢复步骤
grub2-install /dev/sda
grub2-mkconfig > /boot/grub2/grub.cfg
mount /dev/cdrom /media/
cd /media/BaseOS/Packages/
rpm -ivh kernel-core-xxxx.rpm
exit
exit
Linux系统的故障修复
 
Linux系统的故障修复

相关文章: