记录一次断电导致centos7.4系统不能正常进入的解决方案

情况描述:
园区意外断电,导致服务器centos7.4系统不能正常进入,一直卡在进度条界面,按esc或者f5能够看到详细的错误,主要有三个服务报错,如下图:


chronyd、Postfix、polkit服务启动失败

分析情况:
这几个服务都是centos下常见的服务,chronyd是时间同步服务,Postfix是邮件服务,polkit是linux服务器上面的一种服务器方法进程,是不是最后一个服务失败导致系统进不去的呢?

解决步骤:
一、关闭错误服务解决方法
服务器的紧急模式不能进入,于是刻录了一张centos7.4的光盘,通过光盘的紧急模式进入,原来的系统文件都被挂载在/mnt/sysimage/目录下面:

1.1、首先查看message日志
cat /mnt/sysimage/var/log/message (日志文件比较大)
检索发现了界面上面报的几个错误,于是我们想把这几个服务都停止掉:
于是在紧急模式下使用命令:
systemctl stop chronyd (不存在)
systemctl disable chronyd

systemctl disable polkit

systemctl disable postfix

后面正式这种方法错误,很有可能关闭了光盘系统里面的三个对应服务。
1.2、进入单用户模式
(在启动grub菜单,选择编辑选项启动
按键盘e键,来进入编辑界面
找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh
现在按下 Control+x ,使用单用户模式启动
现在,可以使用下面的命令访问系统
chroot?/sysroot)

运行一下命令,停止服务:
systemctl disable chronyd
systemctl disable polkit
systemctl disable postfix
然后重启,这次不报这三个错误了,但是继续报其它服务错误,我们采用同样的方法,陆陆续续关闭了以下服务:
chronyd.service
firewalld
NetworkManager
postfix
tuned
docker
kdump
在关闭了这么多服务后,启动界面不报任何错误了,但还是进不去系统,一直卡在进度条,按esc也没有任何错误,进入死胡同了,这种方法不通了。

二、系统分区、文件系统、磁盘检测
检查修复
进入紧急模式:
2.1、文件系统修复
先umount 系统分区,在修复
xfs_repair -v -L /dev/dm-0 (可能会导致用户信息和日志丢失)
2.2、df -h 和fdisk -l /dev/sda1 检查分区是否正常
2.3、#检测坏道命令,结果输出到 /home/badblocks.log
badblock -s -v -o /home/badblocks.log /dev/sda1
结果:都没有错误

三、selinux原因导致
于是进去检查selinux的配置,发现SELINUX=disabled和SELINUXTYPE=targeted是正常的,排除这种可能。

四、查看原系统的操作日志
紧急模式进入,查看/mnt/sysimage/root/.bash_history,发现有删除/etc/rc.d/目录下的操作记录,仔细看发现是中了挖矿病毒,用clamav扫描,手动清除文件的操作,而且还有替换ps、lattr命令等操作,截图如下,在想会不会是因为误删除了系统文件导致的,后面证实了我的想法是正确的。


4.1、于是重新进入紧急模式,查看message、boot.log、dmesg、secure日志,发现日志太大了,不好定位问题,于是先备份这些日志文件,然后全部清空,重新从硬盘启动系统,然后用光盘紧急模式进入查看日志具体错误,先后修复了以下文件。
centos7系统服务关联的三个路径:
/usr/lib/systemd/system/ | RPM包安装时分发的unit文件
/run/systemd/system/ | systemd运行时创建的文件
/etc/systemd/system/
修复了以下文件:
/usr/bin/tmux
zram.service
/sbin/rngd
/lib/systemd/rhel-dmraid-activation :no such file or directory 、
/usr/libexec/anaconda/anaconda-pre-log-gen
/usr/libexec/anaconda/zramswapon
anaconda-pre.service
libevent-2.0.so.5
anaconda-tmux0tty1.service
anaconda.service
/usr/bin/anaconda-disable-nm-ibft-plugin
/sys/module/pcc-cpufreg/initstate
/etc/rc.d/init.d/functions
采用方法:光盘文件考虑到原系统文件
cp /usr/lib64/libevent-2.0.so.5 /mnt/sysimage/usr/lib64/
cp -r /usr/libexec/anaconda /mnt/sysimage/usr/libexec/
cp /lib/systemd/rhel-dmraid-activation /mnt/sysimage/lib/systemd
cp /usr/bin/anaconda-disable-nm-ibft-plugin /mnt/sysimage/usr/bin/
修复了几十轮以后,发现message里面还报了以下错误:
Unknown username "polkitd"
Unknown username "dbus"
Failed bot register match for Disconnected message
Looping too fast Throottling execution a little
tuned.service
postfix.service failed
chronyd.service
polikit.service
dbus.service
有用户不存在和系统服务启动失败的现象,很奇怪,这些是系统服务用户,下意识的去找passwd文件,发现里面除了root,其它用户都被注释掉了,到这里感觉找到了问题所在,于是取消注释,重新在清楚日志重启,发现可以正常进入系统了,具体passwd文件被病毒注释还是程序或者人为设置的,无痕可查。后来我做过实验,如果把passwd里面的用户除了root,其它用户都停掉,确实会导致进不去系统。
总结:进不去系统原因是passwd用户被注释了,不然能进去系统,系统缺少库文件会影响系统服务启动。

原文地址:https://blog.51cto.com/9678130/2396126

时间: 2024-12-18 00:06:05

记录一次断电导致centos7.4系统不能正常进入的解决方案的相关文章

服务器断电导致虚拟机数据丢失怎么恢复?

在服务器运行过程中如果出现意外情况突然断电很容易引起服务器故障,服务器中的硬件设备损坏可以修复或者购买,但是服务器中的数据一旦发生故障丢失,对于企业来说将是不可估量的损失.那么服务器数据一旦丢失就除了痛哭之外别无他法了吗?不是的,下面我将引用一个真实案例为大家讲解意外断电导致服务器数据丢失的数据恢复方法和过程.文中若有歧义之处欢迎探讨..虚拟机数据丢失情况描述因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失.硬件环境是Dell

win10下安装centos7双系统

国庆最后一天了,闲来无事装个双系统,用虚拟机的linux总有些不方便. window下安装linux双系统有两中方法: 1.U盘安装 (我采用的方法,后面详述) 2.EasyBCD工具安装 (使用EasyBCD完美实现Windows7与Linux双系统) 使用U盘win10安装centos7双系统,网上的文章有很多,不一一列举,然而这并不能让我少走弯路,不知是历史遗留原因,还是系统自身原因,原本很简单的东西,愣是让网友们说的很复杂. 这里面有个最大的风险点:linux覆盖了window系统.控制

千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记

千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记 2007年3月,我写过一篇文章<解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记>( http://www.xiaohui.com/weekly/20070307.htm ),谈到自己在解决一个拥有 60 万条记录的 MySQL 数据库访问时,导致 MySQL CPU 占用 100% 的经过.在解决问题完成优化(optimize)之后,我发现 Discuz 论坛也存在这个问题,当时稍微提了一下: 发现此主

Win8.1 + CentOS7 双系统 U盘安装--引导修复

安装完重启后,竟然没有引导!!!(难道是由于Windows 8在BIOS中使用了统一的 UEFI 接口??但是,Linux基金会早就宣布将会提供一种全新的 方式使用 UEFI Secure Boot选项安装Linux系统.她两可以和平共处啊) 本人对 UEFI 引导不太了解(UEFI boot 比 Legacy boot 要强大 ),只能另想办法了!!最终,决定采用 easyBCD 来引导 CentOS 7. 1.失败的尝试(收获巨大,得到了启动的方式) 第一次尝试中,以为只要简单的添加 gru

CentOS7.4 系统下 Tomcat 启动慢解决方法

CentOS7.4 系统下 Tomcat 启动慢解决的方法 首先查看日志信息,查看因为什么而启动慢 在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的.Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥.为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥. 22-Apr-2017 19:33:07.623 INFO [localhost-startS

Taishan服务器装centos7.6系统部署ceph服务出现的慢请求

近期,公司云要适配Taishan服务器,于是在服务器上部署了ceph,用来跑储存,但是在使用ceph上传快文件时,ceph出现大量的慢请求,导致ceph集群用不了,但是,使用对象存储和文件系统,未出现以上情况,于是在服务器上使用dmesg命令查看,出现一下问题:对于这个问题,在网上找到信息,需要升级hns3网卡驱动,才能解决这个问题.由于升级教程 编辑模块配置 echo 'blacklist hns_roce_hw_v2' >> /usr/lib/modprobe.d/dist-blackli

centos6.5和centos7修改系统字符集

centos6.5和centos7修改系统默认字符集的方法不一样了,但是临时设置的都是一样的. 查看系统支持的字符集 [[email protected] ~]# locale -a centos6.5修改系统字符集 临时生效: [[email protected] mysqldata]# LANG="zh_CN.utf8" [[email protected] mysqldata]# echo $LANG zh_CN.utf8 永久生效: # vim /etc/sysconfig/i

安装Windows7+Ubuntu13.04+Centos7三系统

安装Windows7+Ubuntu13.04+Centos7三系统 (说明一点,在用U盘制作centos7的启动盘后,不需要删除包什么的,也不需要拷贝镜像文件什么的,刻录完就是可以直接使用的,我测试了两台台式的和一个笔记本安装都没有问题,不过在安装的时候,要修改下U盘的位置,如下:) .在用u盘安装过程中,在进入安装界面,按tab键修改或者直接按e键:(直接安装是不能成功的,需要修改) vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x

centos7的系统 防火墙

centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 ? 1 #yum install firewalld //安装firewalld 防火墙 开启服务 ? 1 # systemctl start firewalld.service 关闭防火