鉴于memtest86+ 不与 UEFI 一起工作,是否有开源替代品或我可以从 grub 中使用的东西来测试内存?
Ste*_*itt 19
是的,在 Linux 内核本身中有:该memtest选项将运行最多 17 个模式的内存检查(当前)。如果您添加memtest内核启动参数,它将在启动时运行所有测试,并保留所有失败地址,以便不使用它们。如果您想要更少的测试,您可以指定模式的数量(memtest=8例如)。
这不像 Memtest86+ 的测试那么广泛,但它仍然给出了相当不错的结果。
某些发行版内核不包含此功能;您可以通过CONFIG_MEMTEST在内核配置中查找来检查它是否可用(尝试/boot/config-$(uname -r))。如果您指定,内核不会抱怨,memtest但它不支持它;当它运行时,你应该看到类似的输出
[ 0.000000] early_memtest: # of tests: 17
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern 4c494e5558726c7a
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern 4c494e5558726c7a
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern 4c494e5558726c7a
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern dddddddddddddddd
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern dddddddddddddddd
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern dddddddddddddddd
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern bbbbbbbbbbbbbbbb
...
Run Code Online (Sandbox Code Playgroud)
当内核启动时(或在其启动日志中,稍后)。
您可以使用 QEMU 来感受一下:
qemu-system-x86_64 -kernel /boot/vmlinuz-$(uname -r) -append "memtest console=ttyS0" -nographic
Run Code Online (Sandbox Code Playgroud)
(或qemu-system-...适合您的架构的任何一个),并寻找“early_memtest”。要在内核崩溃后退出 QEMU,请按Ctrla、c、q、Enter。
| 归档时间: |
|
| 查看次数: |
3316 次 |
| 最近记录: |