Linux故障修复

Linux故障处理

在我们平时使用Linux时,难免会遇到一些故障,所以我在这里记录一下故障处理流程

1. 忘记root密码

root密码忘记了是无法通过其他的普通用户去修改的,除非系统上有可以提权到root的普通用户,这种情况下直接sudo -i提权到root用户然后修改密码即可,我们现在说的是系统上已经没有了任何可以登录到root的方式了

1.1 重启服务器

重启服务器到达这个界面时按键盘上的e

1.2 修改引导参数

现在我们需要打断他的默认引导,找到linux开头的那一行参数修改,当然,你也可以直接在这一行的末尾去加上rd.break,只不过有些参数会冲突,导致达不到我们想要的效果,因为我这里是新装的系统,所以没那么多参数,直接在末尾加也是可以的

但是红帽的RHCSA考试的时候,他的参数是很多的,你如果不删除的话好像是无法修改root的密码的,所以这里根据实际情况来,我建议还是删除一下,改好之后按Ctrl + x继续让他启动

1.3 修改密码

1.3.1 以读写方式挂载文件系统

修改密码之前首先要将根文件系统重新挂载一下,如果你完全是按照我上一步的参数去改的话可以跳过这一步,当然,你执行了也是没问题的

1.3.2 切换到根文件系统

1.3.3 修改root密码

现在我们就可以直接修改密码了

这里已经显示密码修改成功了,但是此时还没完

1.4 让selinux重新打标签(红帽系需要)

让selinux重新打标签只需要创建一个文件即可

touch /.autorelabel

1.5 退出救援模式

输入两个exit既可

输入完2个exit之后系统会卡住,不要慌张,这是selinux正在重新打标签,等待即可

打完之后系统会重启,并进入系统,此时再使用刚刚修改的密码即可登录root

2. grub引导丢失

这种情况的产生是因为grub.cfg这个文件丢失,这个文件丢失如果系统是正在运行的不会产生任何的问题,但是只要系统重启之后,就会变成这样

你会发现他跟平时开机不一样了,平时开机他会有2个菜单让你去选择的,而现在是这样的,要修复我们就需要手动引导了,系统已经无法自动引导了

2.1 设置boot

首先我们先确定那一块硬盘的哪一个分区是boot分区,如果安装系统时使用的时自动分区的话,那么就是系统盘的第一个分区就是boot分区,如果服务器硬盘太多,不知道哪个是系统盘,我们也可以一个个试

我们先执行ls,他会列出所有的硬盘以及分区信息,我这里只有一个硬盘,所以只有hd0,如果有多块硬盘则会显示多个,我是自动分区的,所以第一个分区就是boot分区,第一个分区是(hd0,msdos1),所以我们先来设置他

设置好之后我们可以查一下这个分区下有哪些文件就可以知道这是不是boot分区,如果不是可以再重新执行刚刚的命令,再换个硬盘/分区即可

我们可以看到,这些文件就是我们系统里/boot分区下的文件,所以我们找的是对的

2.2 设置内核,根文件系统

我们找到boot分区之后就可以开始设置内核了,但是要先明确一点,就是系统的根文件系统是做的什么分区,如果是普通分区,那我们还需要再回到刚刚的步骤去找root分区,如果做的是LVM的话,那不同的发行版也不一样

2.2.1 明确根文件系统

比如: rhel的root分区是 /dev/mapper/rhel-root

​ centos的:/dev/mapper/centos-root

可以自行在网上查一下自己系统的LVM根分区是在哪

如果就是做的普通的分区,没有做LVM,那么我们可以回到刚刚的步骤去set root=(xx,msdos?),然后执行ls / 去查看文件结构是不是根分区

我这里使用的是lvm做的,所以这一步是这样的。

这一步可能跟我的不一样

2.3 设置驱动

2.4 开始引导

然后他就会进入系统了

这时候还没有修复完成,因为我们并没有还原grub.cfg,如果此时关机,那么前面的还得再来一遍,所以我们还需要生成grub.cfg文件

2.5 生成引导文件

[root@master ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done

等他生成完引导文件之后系统就正常了,此时关机/重启下次都是自动引导的

posted @ 2025-03-15 22:28  FuShudi  阅读(46)  评论(0)    收藏  举报