戴尔Inspiron 5590笔记本内存插槽优先级与故障板载内存规避方案咨询
戴尔Inspiron 5590笔记本内存插槽优先级与故障板载内存规避方案咨询
大家好,我来分享一下我在戴尔Inspiron 5590上遇到的内存问题和后续尝试,希望能得到大家的建议:
设备背景与故障情况
- 我的设备是使用了3年的戴尔Inspiron 5590,搭载MX Linux系统,板载4GB内存(焊死在主板上),还有一个空闲的DIMM插槽(标注为插槽1,板载内存对应插槽2)。
- 近期频繁出现内存错误,用
Memtest86跑了4轮完整测试,测出了70个错误。 - 更换焊死的板载内存成本太高不划算,所以想通过添加外置内存的方式,尽量规避故障的内存区域。
初始猜想
我猜如果插槽1的内存优先级高于插槽2,那给插槽1加装8GB或16GB内存后,系统会先用完外置内存,再启用板载的4GB,这样就能尽量避开故障地址。但这只是我的个人猜想,想听听大家的看法是否合理。
加装8GB内存后的测试结果
我已经在插槽1装上了8GB内存,结果有点出乎意料:
- BIOS诊断结果:运行戴尔BIOS内置诊断后,提示发现并“修复”了2个错误,但没有给出细节,我推测这是板载4GB内存里的原有故障。
- Memtest86复测结果:再次跑4轮测试,居然没有测出任何错误——之前单独用板载4GB时可是测出70个错误的,这点让我很惊讶。
dmesg内存映射的细节对比
我没法直接查到每个内存模块的起始地址,但对比加装前后dmesg里的BIOS物理内存映射(BIOS-e820),发现了一些有意思的线索:
加装前(仅4GB板载内存)的不可用区域:
[ 0.000000] BIOS-e820: [mem 0x0000000042f08000-0x0000000042f09fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000052a64000-0x0000000052a64fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000052a66000-0x0000000052a67fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000079f10000-0x0000000079f10fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000079f12000-0x0000000079f13fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000104a84000-0x0000000104a87fff] unusable
我推测这些不可用区域是之前BIOS诊断标记的,系统和Memtest86都会自动跳过它们。
加装后(8GB外置+4GB板载,共12GB)的不可用区域:
[ 0.000000] BIOS-e820: [mem 0x0000000128508000-0x0000000128508fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000311cc8000-0x0000000311cc9fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000311ccc000-0x0000000311cccfff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000311cce000-0x0000000311ccffff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000360621000-0x0000000360621fff] unusable [ 0.000000] BIOS-e820: [mem 0x0000000360626000-0x0000000360627fff] unusable
这些地址大多在高位,看起来板载4GB可能处于内存的高区域,但奇怪的是,这些地址并没有统一增加8GB(即0x200000000),比如第一个地址现在是0x128508000(约4.6GB),其他都在0x311cc8000(约12.3GB)以上,和预期的偏移量完全不一致。
另外还有个疑惑:明明只装了12GB内存,dmesg却显示可用内存范围是0到0x36c7fffff(约13.7GB),这点也让我摸不着头脑。
当前诉求
我对板载的4GB内存不太放心,如果能确定外置和板载内存各自的精确地址范围,我打算用GRUB的memmap参数直接禁用板载的4GB内存,所以想请教大家:
- 我的初始猜想(插槽1内存优先级更高,会被优先使用)是否合理?
- 有没有办法确定外置和板载内存各自的地址范围?
- 针对这种焊死的故障板载内存,还有其他更可靠的规避方案吗?
备注:内容来源于stack exchange,提问作者Mikec




