![Ubuntu 16.04 突然崩溃](https://linux22.com/image/1203371/Ubuntu%2016.04%20%E7%AA%81%E7%84%B6%E5%B4%A9%E6%BA%83.png)
我在调试所遇到的系统崩溃时遇到了麻烦。
症状:
没有任何警告,我的显示器就变得一片空白,系统对任何输入都没有反应。计算机也无法通过网络进行通信。ping 和 ssh 都不起作用。但是,计算机并没有“关闭”。它的风扇还在嗡嗡作响,灯还亮着。我见过这种崩溃发生在启动后几小时到几天的时间里。我以为问题在连续 6 天正常运行后就消失了,但后来它又崩溃了。当这种情况发生时,我必须按住电源按钮强制硬重启。然后它启动正常,似乎没有什么问题(温度传感器看起来也都很好)。此外,问题似乎与 CPU/GPU 负载无关。我可以毫无问题地运行 CPU 密集型进程。它在几个夜间作业中崩溃了,但它也在系统空闲的夜晚崩溃了。
总之:
- 黑屏且键盘/鼠标输入无反应
- ssh/ping 网络输入无响应。
- 风扇和 LED 灯仍在亮着并发出嗡嗡声。按住电源按钮确实会强制重启。
- 我见过两次崩溃之间的时间间隔从 2 小时到 144 小时不等。(中位数约为 6-8 小时)。
- 似乎与 CPU 负载无关。无论系统正在处理还是空闲,都会发生崩溃。
系统详细信息
- 这台电脑大约有7年历史了。
- 我在 Ubuntu 16.04.1 LTS 64 位(Gnome 版本)上
- CPU 为 Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
- GPU 是一个老
NVIDIA Corporation GT200b [GeForce GTX 285]
- PSU 是 500W OCZ500MXSP
- 32 GB 内存(x4 8GB HyperX)
- 128GB SSD
- 4 个 2TB HDD 配置为软件 RAID10。
lspci 的输出
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.6 PCI bridge: Intel Corporation 82801 PCI Bridge (rev b5)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation P67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
02:00.0 VGA compatible controller: NVIDIA Corporation GT200b [GeForce GTX 285] (rev a1)
04:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
05:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)
06:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
07:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 01)
08:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)
09:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s Controller (rev 11)
采取的调试步骤:
我已将 journalctl 设置为持久性,以便可以访问之前启动的日志。但是,查看日志后,我找不到任何可以指向问题或解决方案的内容。
sensors
当我第一次看到这个问题时,我的第一反应是 CPU 温度。我设置了一个系统服务,每 5 秒记录一次输出。
最后几行如下: https://gist.github.com/Erotemic/590699faa04956078f0ecc13f74217d8
注意最后一行全是空字符。我推测系统在写入文件的过程中崩溃了。
所有温度似乎都在合理范围内。其中一个传感器的CPUTIN: -60.0°C
恒定值为 -60,我猜这意味着传感器不工作了?我的一些风扇似乎也是如此。那么,也许发生了我无法检测到的温度问题?
最新崩溃前系统日志的最后几行: https://gist.github.com/Erotemic/4288a98be973edd8ed20915178122fdc
它显示传感器警报,但(对我而言)似乎没有任何非正常值。
系统很旧,所以可能是某个硬件组件出现故障,这很正常。但是,我不知道是哪个组件出现故障。RAM 最近升级了(崩溃发生在升级之前),所以我怀疑不是这个原因。有人知道是什么原因吗/我该如何找出原因?