基于Linux的系统排错
阅读原文时间:2023年07月08日阅读:5

1.系统引导过程概述

2.系统异常及恢复

【1】grub系统引导

1)mbr上446字节丢失

模拟问题: dd if=/dev/zero? of=/dev/vda? bs=446? count=1?

开机提示错误信息

解决方法:

chroot /mnt/sysimaage ? ? ? ##切换到真实根环境

grub2-install /dev/vda ? ? ? ? ? ##安装硬盘?

具体实现方法如下:

1.打开虚拟机管理器,关闭虚拟机(force off)

2.加入镜像光盘,从光驱启动

3.在boot options中将IDE CDROM1设置为优先加载显示

4.重新开机,选择Troubleshooting

5.选择 Rescue a Red Hat Enterprise Linux system

重要的事情说三编:真实的系统挂载在/mnt/sysimage下

continue

ok

ok

6.切换到真实/环境,进行安装grub2磁盘引导

7.更改selinux状态为disabled

8.关闭虚拟机,在虚拟机管理器中将VirtlO Disk1再次设置为优先加载显示

9.再次打开虚拟机,系统成功引导

2)引导文件丢失

模拟问题:rm -rf
/boot/grub2/grub.cfg

1.当系统未重启

grub2-mkconfig >
/boot/grub2/grub.cfg ##grub2-mkconfig输出的就是/boot/grub2/grub.cfg的文件内容

2.当系统已经重启summary

grub> set root=’hd0,msdos1’?
##找boot分区的挂载点,第一块硬盘的第一个分区,此位置时不固定的,位置指定/boot所在分区

grub> linux16
/boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1
#内核文件只读挂载,根分区设备名称

grub> linitrd16
/boot/initramfs-3.10.0-123.e17.x86_64.img ##系统初始化镜像文件

grub>? boot

执行上述命令后,系统可正常启动,但是再次重启时又遇到相同的问题

此时需要grub2-mkconfig >
/boot/grub2/grub.cfg 生成引导文件

具体实现方法如下:

待开机后执行:

【2】内核文件丢失

模拟问题:rm -fr
/boot/vmlinuz-3.10.0-123.e17.x86_64 ##删除系统内核文件

Linux系统有7个运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

设定启动级别

systemctl set-default + 启动级别

模拟问题:

systemctl set-default
shutdown.target

解决方法:

1.开机按上下键停止读秒
2.按‘E’进入编辑模式

3.选择内核启动行,linux16
/vmlinuz-xxxxxxxx ro xxxxxxxxx? 后添加启动级别5

具体实现方法:

1.错误提示界面

2.重新启动

ctrl+x执行

3.恢复正常