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

jgu*_*avo 5 memory windows bcdedit

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

显然,最好的替代方案是更换有缺陷的 RAM,但当无法做到这一点并且设备不再保修时,就是尝试其他解决方案的好时机。

我一直在研究bcdedit /set badmemorylistbcdedit /set badmemoryaccess没有成功。

这个问题几年前讨论过这个问题:Running Windows withfected RAM

At that time and in those cases, there was a possibility to replace the RAM, and no more was investigated.

Now I have no possibility of replacing the RAM, and I want to revisit the issue.

jgu*_*avo 6

我取得了一些成功。传递损坏内存参数的关键是:

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

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

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

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

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

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

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

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

  9. 无法添加页面;所有页面都应在同一命令中标记。如果是新页面,则添加内容并覆盖旧页面。我仅用一个命令就添加了 4096 个页面。我还没有尝试更多。

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

  11. bcdedit / set badmemoryaccess no阻止使用标记的页面。

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

现在它运行时不会崩溃。


小智 0

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

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

要修改此设置:

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