计算机内存故障排除
内存模块属于没有移动部件的电子设备,如果安装得当,它们很少会发生故障。当问题确实发生时,表现形式多种多样,可能像开机 RAM 自检失败那样显眼,也可能像数据文件中几个位出错那样隐蔽。内存问题的常见症状是 Windows 显示“蓝屏死机”(BSOD)。遗憾的是,导致蓝屏死机的原因实在太多,因此它作为诊断依据的参考价值很小。
内存变“好”时
听起来很奇怪,故障内存很少是内存问题的根源。当你遇到内存错误时,最可能的原因是电源边缘化、即将损坏或负载过重。其次最可能的原因是系统过热。特别是,如果系统在刚开机时工作正常,但在运行一段时间后出现问题,电源或过热问题是最主要的原因。只有在排除了这些可能性之后,你才应该考虑内存本身存在缺陷的可能性。
排查内存问题的首要步骤是运行 Memtest86 (http://www.memtest86.com)。Memtest86 提供 DOS、Windows 和 Linux 的可执行版本,但最有用的形式是可引导的 ISO 镜像,即使在系统因为严重的内存问题导致 Windows 或 Linux 无法加载和运行时,它也能正常启动。如果你手头有 Knoppix 光盘,将其插入并启动系统,在引导提示符下输入 memtest 并按回车键即可。无论你是通过什么方式运行它,请将 Memtest86 配置为执行深度测试和多轮循环。让它运行一整晚,并将结果记录到磁盘中。
在检查日志时,请注意错误发生的地址。如果错误在相同地址或邻近地址重复发生,则很可能是内存模块本身有缺陷。如果错误发生在看似随机的地址,那么问题更可能是出在电源上,或者是系统温度过高。当然,还有一种可能是系统温度只在你玩游戏或进行图形处理(让 CPU 和显卡全速运转)时才会飙升。这种效应使得与温度相关的组件问题难以定位。
POST 自检
在 POST(加电自检) 过程中,大多数系统会测试内存。虽然 POST 内存测试远不如运行内存诊断工具彻底,但它作为一种“绊网”测试,能在你遇到严重内存问题时发出警告,非常有用。许多系统的 BIOS 允许你禁用或简写 POST 内存测试。我们建议保留启用状态,除非你安装的内存容量太大,导致开机测试的时间过长。
如果错误是随机的,请采取措施消除电源或过热问题。如果错误发生在可重复的地址,那么是时候开始拔插 DIMM 内存条了。在进行内存故障排除时,请务必遵守以下原则:
- 使用标准的防静电措施。在触摸内存模块之前,通过触摸机箱框架或电源进行接地。
- 拆下并重新安装所有内存模块,以确保它们安装到位。在操作过程中,顺便清洁内存模块上的触点是一个好主意。有些人会用铅笔橡皮轻轻擦拭触点。我们自己也这样做过,但内存制造商不建议这样做,因为这可能会损坏触点。此外,橡皮碎屑还有可能掉入内存插槽中,阻挡一个或多个触点。更好的做法是使用一张全新的纸币,它的粗糙度恰到好处,既能清洁触点又不会损坏它们,如图 6-7 所示。
图 6-7:使用新纸币清洁 DIMM 内存条触点
接下来的步骤取决于你最近是否对内存做过变动。
未添加内存的情况
如果你怀疑内存有问题,但并没有添加或重新配置过内存(也没有打开过机箱),那么内存本身导致问题的可能性很小。内存有时确实会损坏,也可能被电涌击毁,但这种情况并不常见,因为 PC 电源本身在隔离内存和其他系统组件以防电力损坏方面做得很好。最可能的问题是电源即将失效。请尝试以下一项或两项操作:
- 如果你有另一台系统,请将疑似有问题的内存安装到其中。如果它能在那里正常运行,那么问题几乎肯定不在于内存,而在于电源不足或机箱内部温度过高。
- 如果你有其他内存,将其安装到出现问题的系统中。如果它能工作,你可以放心地认为原来的内存有缺陷。如果它也出现同样的故障,则强烈暗示是电源或散热问题。
如果你既没有另一台系统,也没有额外的内存,并且你的系统中安装了多个内存模块,请使用二进制排除法来确定哪个模块损坏。例如,如果你安装了两个模块,只需移除其中一个模块,看是否能解决问题。如果你安装了四个相同的模块,将它们标记为 A、B、C 和 D。仅安装 A 和 B,重启系统,再次运行内存测试。如果没有问题,说明 A 和 B 是好的,问题必然出在 C 和/或 D 上。移除 B 并换上 C。如果没有问题,说明 C 是好的。如果系统在 A 和 C 的组合下失败,说明 C 坏了,但你无法确定 D 是否坏了。用 D 替换 C 并重启系统,以确定 D 是否正常。
WINDOWS XP 非常“严苛”
Windows 95、98、98SE 和 ME 不会对内存施加太大压力。如果你升级到 Windows XP 或 Linux,内存错误可能会出现在一台看起来很稳定的 PC 上。人们常以为是自己在安装新操作系统时导致了这些错误,但事实很少如此。这些错误几乎总是预示着实际存在的问题——边缘化的电源、过热或内存缺陷。这个问题一直都在,只是 Windows 9X 简单地忽略了它。
添加内存的情况
如果你在添加内存时遇到问题,请注意以下几点:
- 如果 DIMM 内存条看起来插不进去,是有原因的。DIMM 有多种不同且互不兼容的类型。每个 DIMM 都有一个或多个定位缺口,其位置与内存插槽中的凸起相对应。如果 DIMM 上的定位缺口与插槽的凸起匹配,则说明该 DIMM 与插槽兼容且可以安装。如果定位缺口与插槽凸起不匹配,说明 DIMM 类型错误,物理上会被阻止安装到该插槽中。
- 确保 DIMM 完全插入内存插槽,并且保留臂扣紧到位以固定 DIMM。部分插入的 DIMM 可能看起来完全到位,甚至可能暂时能用。但迟早(很可能是迟早),该模块就会出现问题。
- 验证内存模块是否安装在正确插槽中,以匹配主板手册中列出的支持内存配置。
- 如果系统在第一次重启时显示内存不匹配错误,这通常并不代表有什么真正的问题。按照提示进入设置(Setup),选择保存并退出(Save and Exit),然后重启系统。系统随后应该能够识别新内存。有些系统需要这些额外步骤来更新 CMOS。
- 如果系统将新安装的模块识别为实际容量的一半,且该模块两面都有芯片,系统可能只能识别单组(single-banked)或单面(single-sided)模块。有些系统限制了可识别的“面”总数,所以如果你安装了一些现有的较小容量模块,试着移除它们。系统可能随后就能识别双面模块。如果不行,请退掉这些模块并换成单面模块。
3条评论
Great article, as expected from iFixIt.
I am in the thralls of troubleshooting binary-style. It's the pits.
As I understand wiping clean the DIMM contacts would help, would the ink from the money cause any problems? I used the blank border of a $1 bill because I didn't want to introduce anything else to compound the problem.
eoakley - 回复 分享
And dang, Intel! I get that your proprietary ways are awesome, but give us a way to single out a DIMM when troubleshooting!
eoakley - 回复 分享
I don't know how can I solve the error of “bad ME memory configuration” please help me
Masesa - 回复 分享