CentOS启动失败该如何进行排查以实现成本控制?
CentOS启动失败?别慌!手把手教你排查解决
咱用CentOS系统也有好些年了,从CentOS 6用到现在的CentOS 8,虽说这系统稳定性一直不错,但偶尔也会碰到启动失败的情况,每次遇到这种问题,心里那叫一个着急啊,特别是服务器上跑着重要业务的时候,恨不得立马把问题解决,经过这么多年的摸爬滚打,我也总结出了一套CentOS启动失败的排查方法,今天就给大家好好唠唠。
启动失败常见表现
CentOS启动失败的时候,表现那叫一个五花八门,最常见的就是系统卡在启动界面,屏幕上一直显示着那个旋转的小圈圈,等半天也没个动静,我有一次就碰到这种情况,服务器重启后,就一直卡在“Starting udev”这个步骤,等了快半个小时,还是原地不动,当时那个心急如焚啊。

还有一种情况是系统启动到一半,突然蓝屏或者黑屏,然后显示一些错误信息,这些错误信息有时候是英文的,有时候是代码,对于不太懂技术的人来说,简直就是天书,比如有一次,系统启动时显示“Kernel panic - not syncing: Attempted to kill init!”,我一看这信息,脑袋都大了,完全不知道从哪儿下手。
有些时候系统能启动,但是启动后某些服务无法正常运行,比如网络服务启动不了,导致服务器无法访问外网,或者数据库服务启动失败,影响业务的正常运行,这些情况虽然不算完全的启动失败,但也给我们的工作带来了很大的麻烦。
排查步骤之硬件检查
遇到CentOS启动失败的问题,咱首先得从硬件方面入手排查,毕竟硬件是系统运行的基础,要是硬件出了问题,那系统肯定没法正常启动。
内存检查
内存是计算机中非常重要的部件,如果内存出现故障,很容易导致系统启动失败,我们可以使用内存检测工具来检查内存是否有问题,在CentOS系统中,有一个叫做“memtester”的工具,可以用来检测内存的错误。
我们需要下载并安装memtester,可以通过yum命令来安装:

yum install memtester -y
安装完成后,我们可以使用以下命令来检测内存:
memtester 1G 5
这个命令的意思是检测1GB的内存,循环检测5次,在检测过程中,如果发现内存有错误,会在屏幕上显示出来,如果检测结果显示内存有问题,那就需要更换内存条了。
硬盘检查
硬盘也是容易出现问题的部件之一,硬盘出现坏道或者文件系统损坏,都可能导致系统启动失败,我们可以使用“fsck”命令来检查和修复文件系统。
我们需要进入单用户模式,在系统启动时,按下任意键进入GRUB菜单,然后选择要启动的内核,按下“e”键进行编辑,找到以“linux16”开头的行,在行末添加“init=/bin/sh”,然后按下“Ctrl + X”启动系统。
进入单用户模式后,我们可以使用以下命令来检查和修复文件系统:
fsck -y /dev/sda1
这里的“/dev/sda1”是我们要检查的分区,根据实际情况进行修改,如果文件系统有错误,fsck命令会自动进行修复,修复完成后,重启系统,看看问题是否解决。
排查步骤之软件检查
如果硬件方面没有问题,那我们就得从软件方面入手排查了,软件方面的问题主要包括系统文件损坏、配置文件错误、内核问题等。
系统文件损坏
系统文件损坏是导致CentOS启动失败的常见原因之一,我们可以使用“rpm”命令来验证系统文件的完整性。
我们可以使用以下命令来生成系统文件的校验和:
rpm -Vf /etc/redhat-release
这个命令会验证与CentOS版本相关的文件的校验和,如果发现有文件校验和不一致,说明这些文件可能已经损坏。
我们可以使用“yum”命令来重新安装损坏的软件包,如果发现“/bin/ls”文件损坏,我们可以先找出这个文件属于哪个软件包:
rpm -qf /bin/ls
然后使用以下命令重新安装该软件包:
yum reinstall coreutils -y
重新安装完成后,重启系统,看看问题是否解决。
配置文件错误
配置文件错误也可能导致系统启动失败。/etc/fstab文件配置错误,可能会导致系统无法挂载文件系统,从而无法正常启动。
我们可以进入单用户模式,然后检查/etc/fstab文件的配置是否正确,使用以下命令查看/etc/fstab文件的内容:
cat /etc/fstab
检查文件中的每一行,确保设备名称、挂载点、文件系统类型等信息都正确无误,如果发现有错误,可以使用文本编辑器进行修改,使用vi编辑器:
vi /etc/fstab
修改完成后,保存并退出,然后重启系统。
内核问题
内核是操作系统的核心,如果内核出现问题,也会导致系统启动失败,我们可以尝试更新内核或者使用旧版本的内核启动系统。
我们可以使用以下命令查看已安装的内核:
rpm -q kernel
如果有多个内核版本,我们可以尝试使用旧版本的内核启动系统,在GRUB菜单中,选择旧版本的内核进行启动。
如果更新内核,可以使用以下命令:
yum update kernel -y
更新完成后,重启系统,看看问题是否解决。
排查步骤之日志分析
在排查CentOS启动失败的问题时,日志分析是非常重要的一步,系统在启动过程中会记录很多日志信息,这些日志信息可以帮助我们找到问题的根源。
查看系统日志
我们可以使用“journalctl”命令来查看系统日志,查看系统启动过程中的日志:
journalctl -b
这个命令会显示本次启动过程中的所有日志信息,我们可以根据日志中的错误信息来排查问题,如果日志中显示“Failed to start Network Manager”,说明网络管理服务启动失败,我们可以进一步检查网络管理服务的配置文件和依赖项。
查看内核日志
内核日志也非常重要,我们可以使用“dmesg”命令来查看内核日志:
dmesg
这个命令会显示内核启动过程中的所有信息,包括硬件检测、驱动加载等,如果发现内核日志中有错误信息,ata1: SRST failed (errno=-16)”,说明硬盘控制器可能存在问题,我们可以进一步检查硬盘控制器的驱动和配置。
CentOS启动失败虽然让人头疼,但只要我们按照上述的排查步骤,一步一步地进行检查和分析,大部分问题都可以得到解决,在排查过程中,我们要保持冷静,不要急于求成,我们也要做好数据备份,以防在排查过程中数据丢失。
我记得有一次,一台运行CentOS的服务器启动失败,我按照上面的方法,先检查了硬件,发现内存没有问题,然后检查了系统文件和配置文件,发现/etc/fstab文件中有一个挂载点配置错误,修改后系统就正常启动了,那一刻,心里别提多高兴了。
希望今天分享的这些排查方法能对大家有所帮助,以后遇到CentOS启动失败的问题,就不用再干着急啦!
文章评论