Ubuntu系统故障排查指南
确认问题现象
明确故障的具体表现(如系统冻结、无法启动、服务异常、网络中断、运行缓慢等),这是定位问题的核心依据。例如,若系统频繁冻结,需优先排查资源占用或硬件问题;若Web服务无法访问,应检查Apache/Nginx服务状态及端口监听情况。
收集系统日志
日志是故障排查的“黄金线索”,Ubuntu的日志系统通过systemd-journald和rsyslog记录各类事件。常用命令:
journalctl:查看systemd管理的日志(支持时间过滤、服务筛选),例如查看最近1小时的所有日志journalctl --since "1 hour ago",查看Apache服务日志journalctl -u apache2;dmesg:查看内核环缓冲区日志(硬件、驱动相关错误),例如dmesg | grep -i error;/var/log目录:存储具体服务日志(如/var/log/syslog系统通用日志、/var/log/auth.log认证日志、/var/log/mysql/error.log MySQL错误日志)。检查系统资源使用
资源耗尽(CPU、内存、磁盘)是系统缓慢或冻结的常见原因:
top(实时动态视图)或htop(增强版,需安装sudo apt install htop)查看进程占用,按P(CPU)、M(内存)排序,结束异常进程(kill -9 <PID>);df -h查看磁盘使用率(重点关注/根分区、/home),若空间不足,用du -sh * | sort -rh(从大到小排序)定位大文件/目录,清理旧文件或日志(sudo rm -rf /var/log/*.gz删除压缩的旧日志);sudo smartctl -a /dev/sda(替换为实际磁盘设备名,如sdb)检查硬盘SMART状态,若有错误需备份数据并更换硬盘。排查网络问题
若涉及网络连接故障,按以下步骤操作:
ping <目标IP/域名>(如ping google.com),若超时报错,检查网线、路由器或DNS配置(cat /etc/resolv.conf);traceroute <目标IP>(或tracepath)查看网络路径,定位中断节点;ss -tulnp(替代netstat,更高效)查看监听端口,确认服务是否启动(如Apache:sudo systemctl status apache2)。检查软件包与依赖
软件安装失败、依赖冲突或未修复的更新可能导致故障:
sudo apt-get install -f自动修复损坏的依赖关系;sudo apt update && sudo apt upgrade更新所有软件包至最新版本,修复已知漏洞;sudo apt remove <软件名>卸载并排查。系统冻结/无响应
Ctrl+Alt+F2~F6切换至TTY虚拟终端(登录后输入top查看进程,结束占用过高的进程),若无法切换,使用Magic SysRq键(Alt+SysRq+REISUB,依次按下,SysRq通常与PrtSc键重合)安全重启系统(注意:此操作会丢失未保存数据);lm-sensors监控温度(sudo apt install lm-sensors && sensors-detect),若温度过高,清理风扇灰尘或更换散热硅脂;用memtest86+(重启后选择GRUB菜单中的MemTest86+)检测内存错误;用sudo smartctl -a /dev/sda检查硬盘健康。服务无法启动
sudo systemctl status <服务名>(如apache2),若显示failed,查看对应日志(journalctl -u <服务名>)定位错误原因(如端口被占用、配置文件错误);sudo systemctl restart <服务名>;sudo systemctl enable <服务名>(避免重启后失效)。登录失败/权限问题
sudo tail -f /var/log/auth.log(实时查看登录尝试),若存在Failed password或Permission denied,检查用户名密码是否正确,或锁定账户(sudo passwd -l <用户名>);/etc/pam.d/目录下的配置文件(如common-auth、common-session)是否被修改,恢复默认配置(sudo cp /usr/share/pam-configs/something /etc/pam.d/xxx)。启动加载项过多
systemctl list-unit-files --state=enabled列出所有开机自启服务,禁用不必要的服务(sudo systemctl disable <服务名>),例如bluetooth(若未使用)、cups(打印服务);gnome-session-properties(图形界面)或编辑~/.config/autostart/目录下的.desktop文件(手动删除不需要的启动项)。htop(进程管理)、iotop(磁盘I/O监控,需安装sudo apt install iotop)、nload(实时网络流量监控,sudo apt install nload);lnav(增强版日志查看器,支持语法高亮和过滤,sudo apt install lnav)、logwatch(自动生成日志报告,sudo apt install logwatch);strace(跟踪系统调用,strace -p <PID>查看进程行为)、gdb(调试程序崩溃,gdb <程序名> <core文件>)。