当Linux系统卡死时,可以按照以下步骤进行排查和解决:
一、尝试切换虚拟终端(TTY)
- 进入命令行界面
按下Ctrl + Alt + F1-F6
切换到虚拟终端(如F1
或F3
)。 - 登录并检查进程
- 使用
top
、htop
或ps aux
查看资源占用情况。 - 找到占用过高CPU或内存的进程,用
kill <PID>
终止进程(若无效则用kill -9 <PID>
)。
- 使用
二、强制安全重启(REISUB组合键)
- 触发安全重启
依次按下(间隔1秒):Alt + SysRq (Print Screen) → R → E → I → S → U → B
- 作用:逐步终止进程、卸载磁盘、重启系统,减少数据损坏风险。
- 若无效:长按电源键强制关机(最后手段)。
三、图形界面卡死的处理
- 重启显示管理器
sudo systemctl restart gdm3 # GNOME sudo systemctl restart lightdm # XFCE/LXDE
- 重启Xorg服务
按下Ctrl + Alt + Backspace
(需启用该快捷键)。
四、检查系统日志
- 查看近期日志
journalctl -b -0 -p 3 # 本次启动的错误日志 dmesg | tail -n 50 # 内核日志
- 常见日志路径
/var/log/syslog
/var/log/kern.log
(内核错误)
五、硬件与资源排查
- 检查磁盘空间
df -h # 查看磁盘使用 df -i # 检查inode是否耗尽
- 内存检测
- 重启后运行
memtest86+
(需安装)。
- 重启后运行
- 硬盘健康检查
sudo smartctl -a /dev/sda
六、驱动与内核问题
- 回滚内核或驱动
- 在GRUB启动菜单中选择旧内核启动。
- 卸载最近更新的驱动(如NVIDIA驱动)。
- 更新系统
sudo apt update && sudo apt upgrade
七、文件系统修复
- 强制重启后检查磁盘
sudo fsck -y /dev/sda1 # 替换为实际分区
八、禁用问题服务或硬件
- 进入恢复模式
- 在GRUB中选择 Advanced Options → Recovery Mode。
- 排查外设
- 拔掉USB设备、外接硬盘等,排除硬件冲突。
九、预防措施
- 配置监控工具
- 使用
cron
定时任务监控资源(如nmon
、glances
)。
- 使用
- 启用SysRq功能
sudo sysctl -w kernel.sysrq=1 # 临时启用
- 永久生效:在
/etc/sysctl.conf
添加kernel.sysrq = 1
。
- 永久生效:在
总结流程
- 优先尝试
Ctrl+Alt+F1
终止问题进程。 - 若完全卡死,使用 REISUB 安全重启。
- 检查日志、硬件、资源占用,修复文件系统。
- 更新/回滚驱动或内核,排查外设问题。
根据具体情况选择合适步骤,逐步缩小问题范围!