发布于2026-05-21 阅读(0)
扫一扫,手机访问
遇到Linux系统死机,千万别急着去按电源键。直接强制断电,搞不好文件系统损坏,数据丢了哭都来不及。正确的做法,是有一套从“安全重启”到“精准排查”的标准流程。简单来说,就是先用手边的工具安全地把系统拉回来,再像侦探一样,从日志和硬件指标里找出真凶。

核心原则就两条:重启前,优先尝试内核提供的安全机制;重启后,必须去/var/log下和命令行里找证据,图形界面卡住的那点信息,根本不够看。
这招堪称Linux系统的“后门钥匙”,很多新手都不知道。只要内核还没彻底崩溃(比如只是某个驱动卡住了),你就有机会优雅地重启。操作的关键是顺序:按住 Alt + SysRq(这个键通常和 Print Screen 是同一个)别松手,然后依次按 R、E、I、S、U、B,每个字母按完最好间隔一秒。
这个顺序是有讲究的:R 先夺回键盘控制权;E 和 I 是逐步终止所有进程;最关键的是 S 和 U,它们负责把缓存数据同步到磁盘,并把文件系统挂载为只读,这是避免文件系统损坏的保险丝。最后那个 B,才是执行重启。跳过同步步骤直接重启,下次开机就可能遇到文件系统校验错误。
系统回来了,但问题没解决。这时候,图形界面帮不上忙,得去命令行里挖日志。重点排查三个地方:
dmesg -T:这是第一现场。带上 -T 参数看时间戳,在里面搜索 Oops、BUG、hung_task、Hardware Error 这些关键词,它们直接指向内核级的严重错误。如果这里空空如也,那可能是内核崩溃时把日志缓冲区清空了,得看下一个。journalctl -b -1 -p err:对于使用systemd的系统,这是更全面的日志查看方式。这个命令专门筛选出上一次启动过程中的错误级别日志。如果系统开启了持久化日志,你甚至可以用 -b -2 查看更早的崩溃记录。grep -i "kernel:.*\[.*\].*error\|panic\|segfault" /var/log/syslog 这样的命令直接扫描原始日志文本,对于排查某些显卡驱动(比如NVIDIA或AMD)的深层模块错误特别有效。memtest86+一死机就怪内存,这思路太窄了。死机背后,可能是电源供电不稳、CPU过热降频、固态硬盘固件有bug,甚至是主板PCIe插槽接触不良。排查硬件,得用组合拳:
smartmontools 工具包,用 smartctl -a /dev/nvme0n1 命令查看NVMe固态硬盘。重点关注 Media_Wearout_Indicator(磨损度)和错误日志数量。NVMe硬盘的某些特定错误码(比如 0x01)常常和PCIe链路重置有关。sensors 和 sudo turbostat --interval 1。如果发现 turbostat 里显示的CPU平均频率(A vg_MHz)骤降到很低,而温度(Thermal)持续在95°C以上,那基本可以断定是散热失效,触发了系统的热保护机制。lspci -vv 命令定位到你的显卡,查看其 LnkSta(链路状态)。如果 Speed 显示的是 2.5GT/s 而不是预期的 8.0GT/s 或更高,说明PCIe通道协商失败了,问题可能出在BIOS设置或物理连接上。最让人头疼的,其实是那种“假死”:系统看起来卡住了,但 dmesg 没有报错,ps 也看不到异常进程。这时候,可以快速看一眼 vmstat 1,如果发现 wa(IO等待)列长时间接近100%,而 bi(块输入)为0,很可能遇到了IO死锁或内核调度问题。
对付这种深层问题,终极武器是性能分析工具 perf。在系统还勉强能动的时候,赶紧运行 perf record -e sched:sched_switch -a sleep 30 抓取30秒内的进程调度事件。然后通过 perf script 分析输出,往往能定位到是哪个内核函数或线程卡在了锁或者等待队列上。这一步虽然有点门槛,但却是解开许多离奇死机谜团的唯一钥匙。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9