该命令dd if=/dev/mem of=/dev/null seek=16k bs=4k count=1
用于测试错误注入埃达克。为什么?据我所知, dd 只是将数据从这些设备复制到其他地方。复制时会发生什么坏事导致内存错误?
答案1
你跳过了重要的部分前dd 命令,来自内核文档:
例如,以下代码将在通道 2 上的任何 DIMM/地址上对套接字 0 处的任何写访问生成错误:
echo 2 >/sys/devices/system/edac/mc/mc0/inject_addrmatch/channel echo 2 >/sys/devices/system/edac/mc/mc0/inject_type echo 64 >/sys/devices/system/edac/mc/mc0/inject_eccmask echo 3 >/sys/devices/system/edac/mc/mc0/inject_section echo 1 >/sys/devices/system/edac/mc/mc0/inject_enable dd if=/dev/mem of=/dev/null seek=16k bs=4k count=1 >& /dev/null
内核驱动产生错误,这与dd无关,dd只是用来触发它。