15.linux系统中的引导修复
前言
抛开硬件问题,在linux系统中系统引导过程及引导修复是我们本章需要学习的内容。
一、磁盘引导
在整个磁盘的第0磁道第1扇区存在着mbr主引导记录,其大小为446字节,主要作用为记录grub2引导文件的位置。当系统中mbr数据丢失会因为找不到启动分区而停止启动。
实验模拟:
将mbr数据清空:
dd if=/dev/zero of=/dev/vda bs=446 count=1
清空/dev/vda 数据
若未重启,则可直接恢复
若清除后重启
报错
此时进入磁盘挽救模式
添加新的磁盘,并用它来作为虚拟机的启动首选。
打开虚拟机
选择Troubleshooting ---->Rescue 进入挽救模式
按照提示操作,操作完成即将系统挂载到镜像文件/mnt/sysimage
转入系统shell,重新安装grub2
关闭selinux:可加快重启速度,但并非必要操作。
exit
exit,两次exit后会自动重启
再将硬盘作为启动首选项,重启虚拟机
重启成功,磁盘引导成功。
二、grub2文件引导
引导文件位于/boot/loader/entries
实验模拟:rm -fr /boot/loader/entries/xxxx.conf 重启
手动引导:
set root=‘hd0,msdos1’
linux16 /vmlinuz- ro root=/dev/vda3
initrd16 /initramfs-4
boot
但手动配置需要启动前每次都进行上述操作,
修复:
kernel-install add 内核版本号 内核镜像
uname -r 查看内核版本号
kernel-install add $(uname -r) /boot/vmlinuz-4.18.0-193.el8.x86_64
reboot重启后不再需要手动引导。
三、内核加载
内核引导 vmlinuz-4.18.0-193.el8.x86_64 丢失
1.未重启
cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
2.重启后
使用光盘镜像进入挽救模式,进行上述操作
重启成功。
四、系统初始化镜像
系统初始化镜像丢失
rm -fr initramfs-4.18.0-193.el8.x86_64.img
未重启:
mkinitrd --help
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
重启后:
光盘挽救模式进行上述操作
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
重启成功。
五、系统启动级别
级别 | 含义 |
---|---|
0 | 单机 |
1 | 单用户 |
2 | 无图形网络模式 |
3 | 无图形网络模式 |
4 | 无图形网络模式 |
5 | 有图形网络模式 |
6 | 重启 |
实验模拟:
systemctl set-default reboot.
reboot
发现一直在重启,按e----> 第二行+ 5 ----> ctrl+x启动
启动后,重新设定系统启动级别
systemctl set-default graphical.target
六、超级用户密码忘记
在开机选择界面按进入到引导文件编辑模式
在内核加载选项最后删除到ro选项,更改ro---->rw---->加入rd.break参数终止系统启动进入单用户模式---->ctrl+x启动
chroot /sysroot
echo lee| passwd --stdin root
touch /.autorelabel
登陆界面输入账号与新密码,登陆成功。
总结
学习完本章内容,在linux系统出现故障无法重启的时候要准确定位缺失文件并且解决。