针对CentOS虚拟机常见故障(启动失败、网络异常、磁盘空间不足、服务崩溃等),以下是系统化的排查步骤:
journalctl -xe(实时日志)或检查/var/log/boot.log、/var/log/messages,定位启动阶段的错误信息(如内核加载失败、驱动缺失)。e键,找到linux16或linuxefi行,将ro改为rw,行末添加init=/bin/bash,按Ctrl+X启动;e键编辑kernel行,添加single参数,启动后进入单用户模式。fsck /dev/sdaX(X为分区号)修复文件系统错误;通过df -h查看磁盘空间,若使用率超过80%,清理无用文件(如/var/log下的旧日志)。ping <目标IP>(如ping 8.8.8.8)检查网络是否可达;若无法ping通,继续下一步。ip addr查看网卡是否启用(state UP)及IP地址是否正确;/etc/sysconfig/network-scripts/ifcfg-ensXX(网卡名,如ens33)文件,确认BOOTPROTO(静态/动态)、IPADDR、GATEWAY、DNS1配置无误;systemctl stop firewalld(CentOS 7+);若需永久关闭,执行systemctl disable firewalld;systemctl status network(CentOS 7以下)或systemctl status NetworkManager(CentOS 7+),确保服务运行正常。free -m查看内存占用,若available内存不足,可通过top命令找出占用高的进程(按M排序),终止无用进程(kill -9 <PID>)或增加虚拟机内存。top或htop查看CPU使用率,若长期超过80%,优化应用程序(如调整Apache/Nginx的worker数量)或增加CPU核心数。systemctl list-units --type=service --state=failed查看失败的服务,针对具体服务执行systemctl restart <服务名>(如httpd、mysqld)。httpd.conf、my.cnf),使用对应工具验证语法:
apachectl configtest;mysqld --validate-config;journalctl -xe(实时日志)、/var/log/messages(系统级日志)、/var/log/secure(认证日志);/var/log/httpd/error_log(Apache错误日志)、/var/log/mysqld.log(MySQL错误日志),通过关键词(如ERROR、FAILED)定位具体问题。以上步骤覆盖了CentOS虚拟机常见故障场景,可根据具体问题逐步排查。若仍无法解决,建议查阅虚拟机软件(如VirtualBox、VMware)的官方文档或CentOS社区论坛寻求帮助。