linux系统排错

一.硬盘引导阶段 mbr主引导记录的恢复

1.查看虚拟机的版本号

hostnamectl     ##查看系统版本号

在这里插入图片描述
2.模拟问题:mbr主引导记录丢失,如何恢复

fdisk -l        ##查看主引导记录是放在哪个硬件中,带*号的vda

在这里插入图片描述

dd if=/dev/zero of=/dev/vda1 bs=446 count=1 ##将系统启动主引导记录切割

在这里插入图片描述
reboot发现无法重启
在这里插入图片描述
3.mbr主引导记录的恢复
1)关闭虚拟机器
2)光盘方式添加镜像7.0
在这里插入图片描述
指定光驱路径
在这里插入图片描述
3)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置
在这里插入图片描述
4)打开虚拟机
选择Troubleshooting故障排错
在这里插入图片描述
选择Rescue a Red Hat Enterprise Linux system挽救模式
在这里插入图片描述
选择Continue,注意看提示信息
在这里插入图片描述
选择ok
在这里插入图片描述
选择ok
在这里插入图片描述
提示Your system is mounted under the /mnt/sysimage directory
重要的事情说三遍
5)

df       ##查看 /dev/vda3挂载到/mnt/sysimage

在这里插入图片描述

chroot /mnt/sysimage/  ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/
df                     ##查看 /dev/vda1 挂载到/

在这里插入图片描述
6)安装

grub2-install  /dev/vad   ##grub2-install  启动分区所在硬盘

在这里插入图片描述
7)两次exit退出
8)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置启动Hard Disk优先
在这里插入图片描述
虚拟机就可以正常重新启动了
在这里插入图片描述

二.文件引导阶段-引导文件丢失

1.引导文件的位置/boot/grub2/grub.cfg
在这里插入图片描述
在这里插入图片描述
2.模拟问题:删除引导文件

rm -fr /boot/grub2/grub.cfg   ##删除引导文件

在这里插入图片描述
3.解决问题:
1)当删除之后系统没有重新启动(没有重启之前恢复)

grub2-mkconfig > /boot/grub2/grub.cfg ##将grub2-mkconfig中的内容导到引导文件中

在这里插入图片描述
2)当删除之后系统重启(这种情况比较常见)
在这里插入图片描述
重启时发现无法启动

grup > set root='hd0,msdos1'  ##此位置是不固定的,位置指定/boot所在分区;hd0指的是系统在/dev/vda;msdos1指的是/dev/vda1;这里有两种情况:如果/boot分区单独列出,则是/boot分区所在的硬盘分区号;如果不是独立出的,则写/分区所在的硬盘分区号
grup > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vad1  ##把设备只读挂载到根分区,设置内核文件
grup > initrad16 /boot/initramfs-3.10.0-123.e17.x86_64.img            ##系统初始化镜像,设置initrd文件
grup > boot                                                           ##启动

发现可以重新启动
在这里插入图片描述
以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行如下命令恢复

grub2-mkconfig > /boot/grub2/grub.cfg ##将grub2-mkconfig中的内容导到引导文件中

在这里插入图片描述

三.文件引导阶段-内核文件丢失

1.内核文件
在这里插入图片描述
2.模拟问题:删除内核文件

rm -fr /boot/vmlinuz-3.0.0-123.e17.x86_64  ##删除内核文件
reboot                                     ##重启

发现启动不了
在这里插入图片描述
3.解决问题:
1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置
在这里插入图片描述
2)打开虚拟机
选择Troubleshooting故障排错
在这里插入图片描述
选择Rescue a Red Hat Enterprise Linux system挽救模式
在这里插入图片描述
选择Continue,注意看提示信息
在这里插入图片描述
选择ok
在这里插入图片描述
选择ok
在这里插入图片描述
提示Your system is mounted under the /mnt/sysimage directory
3)

df     ##查看 /dev/vda3挂载到/mnt/sysimage

在这里插入图片描述

chroot /mnt/sysimage/  ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/ 
df                     ##查看 /dev/vda1 挂载到/

在这里插入图片描述
4)内核文件的恢复

mkdir /westos              ##创建目录/westos
mount /dev/sr0 /westos     ##将镜像挂载到/westos
cd /westos                 ##到/westos可以看到镜像里东西

在这里插入图片描述

cd Packages/                               ##切换到安装包目录
cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/  ##把包复制到/mnt,因为光盘文件是不可以进行拆包的
cd /mnt                   		   ##切换到/mnt

在这里插入图片描述

rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id  ##拆包
ls                                                    ##查看包中文件
pwd                                                   ##当前位置
cd boot/                                              ##切换到包中boot/目录下
ls -l                                                 ##包中有内核文件
cp vmlinuz-3.10.0-123.e17.x86_64 /boot/               ##将内核文件复制到/boot/

在这里插入图片描述
5)两次exit退出
6)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置启动Hard Disk优先
在这里插入图片描述
虚拟机就可以正常重新启动了
在这里插入图片描述

四.系统初始化镜像文件丢失

1.模拟问题:删除初始化镜像文件

rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img  ##删除初始化镜像文件

在这里插入图片描述
2.解决问题
当系统没有重启时

mkinitrd --help   ##mkinitrd命令帮助

在这里插入图片描述

uname -r                   ##内核版本号
mkinitrd /boot/initramfs-3.10.0-123.el7.x86_64.img 3.10.0-123.el7.x86_64##重新生成初始化镜像文件(方法1)

在这里插入图片描述

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)##重新生成初始化镜像文件(方法2)

在这里插入图片描述
当删除后系统重启
在这里插入图片描述
发现重启出现问题
在这里插入图片描述
1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置
在这里插入图片描述
2)打开虚拟机
选择Troubleshooting故障排错
在这里插入图片描述
选择Rescue a Red Hat Enterprise Linux system挽救模式
在这里插入图片描述
选择Continue,注意看提示信息
在这里插入图片描述
选择ok
在这里插入图片描述
选择ok
在这里插入图片描述
提示Your system is mounted under the /mnt/sysimage directory
3)

chroot /mnt/sysimage/  ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)##重新生成初始化镜像文件

在这里插入图片描述
4)两个exit退出
5)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置Hard Disk优先启动
在这里插入图片描述
虚拟机就可以正常重新启动了
在这里插入图片描述

五./boot分区被删除

1.问题模拟:删除/boot分区
在这里插入图片描述
发现重启出现问题
在这里插入图片描述
2.解决问题
1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置
在这里插入图片描述
2)打开虚拟机
选择Troubleshooting故障排错
在这里插入图片描述
选择Rescue a Red Hat Enterprise Linux system挽救模式
在这里插入图片描述
选择Continue,注意看提示信息
在这里插入图片描述
选择ok
在这里插入图片描述
选择ok
在这里插入图片描述
提示Your system is mounted under the /mnt/sysimage directory
3)

chroot /mnt/sysimage/  ##更改分区/dev/vda3挂载目录由/mnt/sysimage修改成/

4)mbr主引导记录的恢复
在这里插入图片描述
5)内核文件恢复
在这里插入图片描述
6)系统初始化镜像文件恢复
在这里插入图片描述
7)引导文件恢复
在这里插入图片描述
8)两次exit退出
在这里插入图片描述
9)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置Hard Disk优先启动
在这里插入图片描述
虚拟机就可以正常重新启动了
在这里插入图片描述

六.当开机启动级别被篡改

systemctl set-default + 启动级别         ##设定启动级别
##启动级别
runlever0.target->poweroff.target
runlever1.target->rescue.target
runlever2.target->multi-user.target
runlever3.target->multi-user.target
runlever4.target->multi-user.target
runlever5.target->grapical.target
runlever6.target->reboot.target

开机启动级别被篡改:

sysremctl ser-default reboot.target  ##篡改开机启动级别

在这里插入图片描述
发现重启不了
在这里插入图片描述
解决问题:
1.开机按上下键停止读秒
2.按’E’进行编辑模式
3.选择内核启动行
linux16 /vmlinuz-xxxxxxx 5
在这里插入图片描述
4.启动系统
ctrl +x
在这里插入图片描述
5.重新启动后永久设定

systemcl set-default graphical.target 

在这里插入图片描述

七.root密码忘记

1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
在这里插入图片描述
3.选择启动引导标题,按“E”进行编辑
在这里插入图片描述
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
在这里插入图片描述
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动
在这里插入图片描述

阅读更多

没有更多推荐了,返回首页