运行 Windows 时内存故障且无法更换

运行 Windows 时内存故障且无法更换

对于带有焊接/集成 RAM 的设备(例如平板电脑和超极本),内存缺陷意味着计算机将成为昂贵的镇纸。

显然,最好的选择是更换有缺陷的 RAM,但是当这不可能并且设备不再享受保修时,是尝试其他解决方案的好时机。

我一直在研究bcdedit /set badmemorylist,但bcdedit /set badmemoryaccess没有成功。

这个问题几年前就讨论过这个问题:在 RAM 有缺陷的情况下运行 Windows

在当时和那些情况下,有可能更换 RAM,并且没有进行进一步调查。

现在我已经没有可能更换 RAM 了,我想重新审视这个问题。

答案1

我成功了几次。传递损坏的内存参数的关键是:

  1. 地址 memtest86,与 Windows 中使用的地址匹配。

  2. 必须标记4KBytes的完整页面。

  3. 在memtest中0x10000000,对应Windows中的0x10000。

  4. 在memtest中,0x00001000对应Windows中的0x1。

  5. 意思是:windows里的页码去掉memtest的最后3位十六进制数。

  6. 意思是:Windows 会消除左边的零。

  7. 考虑5和6,以避免页码出现错误。

  8. 正确的说法是:bcdedit /set {badmemory} badmemorylist 0xB7 0xB8 0xB9 0xBAmemtest 中的错误从 0x000B7000 到 0x000BAFFF。请注意,您不能放置一个内存范围,而必须逐一放置所有页面。

  9. 无法添加页面;所有页面都应使用同一命令进行标记。如果是新页面,则添加的页面将覆盖旧页面。我仅使用一个命令就成功添加了 4096 个页面。我还没有尝试更多。

  10. bcdedit / 枚举 {badmemory}显示标记页面的列表。

  11. bcdedit /设置 badmemoryaccess 否防止使用标记的页面。

  12. 标记页面并删除访问权限后需要重新启动。

现在它运行起来不会崩溃。

答案2

您可以设置Windows允许使用的最大内存。

如果您可以确定坏的 RAM 地址,则可以使用此设置强制 Windows 仅停留在良好的内存区域内。

要修改此设置:

  1. 打开 msconfig(按开始按钮,输入 msconfig,然后按回车键)
  2. 选择“启动”选项卡
  3. 按高级选项...按钮
  4. 启用最大内存复选框
  5. 指定允许 Windows 使用多少内存(以及允许其使用的最高物理地址)

相关内容