如何在BIOS或Win10系统中禁用存在故障的RAM内存区域?
故障内存区域禁用操作方案
注:内存硬件损坏属于不可逆故障,以下屏蔽方法仅作临时应急使用,长期运行仍建议更换故障内存条,避免出现数据损坏、存储文件出错等问题
BIOS层面屏蔽方法
- 重启电脑,在开机自检阶段按对应主板快捷键(常见为Del、F2、F10,不同品牌主板提示信息会在开机画面标注)进入BIOS设置界面
- 找到高级内存配置分类(通常命名为
Advanced Memory Settings、Memory Configuration),查找内存重映射、坏块屏蔽相关选项:- 服务器主板、部分高端消费级主板会自带
Bad Memory Remap、Memory Error Isolation功能,开启后可自动识别并屏蔽检测到的内存错误段 - 若BIOS支持手动配置内存排除范围,直接填入MemTest86检测到的故障内存段起始地址、段长度,保存设置重启即可生效
- 服务器主板、部分高端消费级主板会自带
- 绝大多数普通消费级主板不提供手动指定内存屏蔽段的功能,这类情况直接使用下述Windows系统层面的屏蔽方案即可
Win10系统层面屏蔽方法
Win10可通过启动配置数据(BCD)强制内核跳过指定地址范围的内存,不会将这部分空间分配给系统和应用使用,操作步骤如下:
- 提前整理MemTest86检测报告里的所有故障内存段信息,记录每段的起始地址、长度,统一换算为十六进制数值
- 按下Win+X组合键,选择「Windows终端(管理员)」(或命令提示符(管理员))
- 先执行命令查询现有坏内存配置,避免和原有规则冲突:
bcdedit /enum {badmemory}
- 执行命令添加需要屏蔽的故障内存段,将命令内的<起始地址>、<段长度>替换为你实际检测到的数值,多段坏块可直接在后面追加对应参数:
bcdedit /set {badmemory} badmemorylist <起始地址1> <段长度1> <起始地址2> <段长度2> ...
示例:如果检测到0x1A0000000起始位置存在128MB坏块(128MB对应十六进制长度为0x8000000),对应命令为
bcdedit /set {badmemory} badmemorylist 0x1A0000000 0x8000000
- 执行命令开启坏内存块拦截功能:
bcdedit /set badmemoryaccess no
- 重启电脑即可生效,重启后可在「任务管理器-性能-内存」页查看可用内存容量,若容量扣除值和你屏蔽的坏块总大小基本一致,说明配置生效。
配置回退方法
后续更换正常内存条后,只需在管理员终端依次执行以下两条命令,重启即可恢复全内存识别:
bcdedit /deletevalue {badmemory} badmemorylist bcdedit /set badmemoryaccess yes
补充注意事项
- 若检测到的坏块总容量超过总内存的5%、或坏块分布非常分散,不建议继续使用屏蔽方案,系统运行稳定性无法保障
- 屏蔽配置完成后建议重新运行一次MemTest86,确认所有故障段都已被排除在系统寻址范围外
内容的提问来源于stack exchange,提问作者Artog
相关产品推荐
相关产品推荐

