我正在调查一台机器上的问题,该机器有 4 块相同的 DDR-3 RAM,每块容量为 4 GB。它一直遭受突然无法恢复的冻结(在 Linux 上观察到),所以我开始用 Memtest86 测试 RAM。
一些实验表明:
- 单独使用的四条 RAM 条中的任何一条都通过了 Memtest(= 运行约 1 小时后未发现故障)。
- 当使用 2-4 个内存条的任意组合时,无论使用哪种组合,Memtest 都会在几秒钟内冻结。特别是在检查 6G-8G 范围的“地址测试”期间,它会冻结。
- 当我在 Memtest 配置中设置 4G 的上限时,它也通过了。
我尝试过以下方法来缓解这个问题,但都没有成功:
- 将 BIOS 重置为默认设置
- 将 RAM 电压从供应商指定的 1.5 V 略微增加到 1.55 V
- 将 RAM 频率从 1333 MHz 降低至 800 MHz
似乎不知何故,寻址超过 4G 的内存会失败。这是否表示某些特定硬件(例如主板)出现故障?还是某些 BIOS 设置错误?我是否可以采取其他措施来缩小问题范围?
答案1
过了一会儿,我终于解决了这个问题。结果发现存在多个问题:
事故的真正原因
Linux 上的稳定性问题与 RAM 无关。我通过使用memtester
而不是直接使用 Memtest86+ 在操作系统内部进行内存测试来解决这个问题。这样就不会出现任何故障。
最终,我发现更换显卡驱动程序(我认为是从 Nouveau 换成 Nvidia,但也可能反过来)可以让系统稳定下来。但我仍然不清楚 Nouveau 为何会导致崩溃。
如果内存完好无损,为什么 Memtest86+ 会冻结?
最有可能的是 Memtest 存在错误,导致它在某些情况下冻结,但这很难追踪。启动板错误报告它描述了与最新 Ubuntu 版本附带的 Memetest86+ 非常相似的问题。
答案2
我遇到的症状是,PC 正常启动,然后大约 10 分钟后自行重启。此后,Ubuntu 启动过程未完成,但它在启动过程中总是重新启动。
Memtest86
每当插入超过一根 4 GiB 内存条时,Ubuntu 20.04 上的 memtest86+ 就会冻结。
Test #2: [Address test, own address Parallel]
Testing 4096M - 6144M
所有棍棒本身并不会导致冻结。
原来是 ubuntu 自带的 memtest86 有问题,我从 memtest86.com 下载了最新的支持 BIOS 的版本 4.3.7,没有死机。
内存没问题!
罪魁祸首
我拔下了显卡 (MSI R7 370),并尝试了板载图形单元,结果成功了。因此,似乎显卡不知何故坏了(虽然它在 VGA 模式下工作),并导致系统在 Ubuntu 启动过程初始化它时崩溃。