如何告诉ubuntu不要使用某些内存地址?

j3d1H

很抱歉,如果措辞不佳,但是我已经在一台计算机上进行了内存测试,并且某些内存地址有错误。这是我第一次搜索。如果您需要更多信息,那么我可以提供。

血淋巴瘤

如果您查看/etc/default/grub,则会找到一个GRUB_BADRAM=参数,可以在其中识别存在哪些错误的内存位置。

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

设置地址后,运行sudo update-grub以应用。


取自https://help.ubuntu.com/community/BadRAM#BADRAM_setting_in_Grub2 ...

Grub2中的BADRAM设置

Natty中的GRUB2配置文件中有一行用于配置内核坏RAM排除。因此,我将假定这是映射显示错误的内存部分的首选方法。我设定的线是

GRUB_BADRAM="0x7DDF0000,0xffffc000" 

我可以在每个网站上找到的建议方法是将其设置为运行memtest86,并向其显示BadRAM设置。memtest86给了我一页我必须输入的内容。我可以看到所有地址都在一个16K块中,所以我只想将该16K块映射为无效。这是我生成正确条目的方式。

第一个参数很简单。那是坏内存的基址。以我为例,我可以看到所有错误地址都大于0x7DDF0000且小于0x7DDF4000。因此,我以16K块的开头作为我的起始地址。

第二个参数是掩码。将1放在您想要的地址范围共享相同值的位置,将0放在会变化的地址范围。这意味着您需要选择地址范围,以使仅低阶位发生变化。看我的地址,面具的第一部分很简单。您要以0xffff开头。对于下一个小节,我将用位图进行说明。我的范围是0000至0011。因此,badram的掩码为1100或十六进制c。最后3个半字节在掩码中必须全部为0,因为我们希望将整个范围都映射出来。因此,我们得到的总结果为0xffffc000。

在/ etc / default / grub中设置此行后,我运行sudo update-grub并重新启动,并且不再使用我的错误内存。使用此方法不需要内核补丁即可映射出错误的内存。


当然,最好的措施是更换有缺陷的RAM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章