Linux 我们如何生成MCE(机器检查错误)

Linux 我们如何生成MCE(机器检查错误),linux,linux-kernel,crash,kernel,kernel-module,Linux,Linux Kernel,Crash,Kernel,Kernel Module,据我所知,mcelog用于检查硬件中的内存错误。我想模拟同样的情况。我没有任何一台机器在硬件上有问题,我可以模拟这种情况。有没有人能给我推荐一些模拟器或者其他我可以产生这些错误的方法。因为我的主要目的是显示无法纠正的内存错误。谢谢。您可以使用该工具,但需要加载mce\u inject内核模块。这个内核模块在Ubuntu12.04(我唯一可以访问的系统)上可用,在更新的Ubuntus上也应该可用 首先,您需要加载模块: $ sudo modprobe mce_inject 接下来,您需要下载mc

据我所知,
mcelog
用于检查硬件中的内存错误。我想模拟同样的情况。我没有任何一台机器在硬件上有问题,我可以模拟这种情况。有没有人能给我推荐一些模拟器或者其他我可以产生这些错误的方法。因为我的主要目的是显示
无法纠正的内存错误
。谢谢。

您可以使用该工具,但需要加载
mce\u inject
内核模块。这个内核模块在Ubuntu12.04(我唯一可以访问的系统)上可用,在更新的Ubuntus上也应该可用

首先,您需要加载模块:

$ sudo modprobe mce_inject
接下来,您需要下载
mce\u inject
工具的源代码,安装依赖项并编译它:

$ git clone https://github.com/andikleen/mce-inject.git
$ sudo apt-get install flex bison
$ cd mce-inject
$ make
接下来,您需要创建一个模拟所需错误的文件。您应该查看
mce inject
手册页(包括在源代码中),以了解有关该结构的更多信息。您可以在[
mce inject
source]的
test/
目录中找到一些示例(

注入致命错误会导致系统不稳定和崩溃;不建议这样做。

一旦决定使用哪个示例文件(或创建了自己的示例文件),就可以使用
mce inject
将其注入。例如,注入
mce inject
中包含的
test/corrected
示例错误:

$ sudo ./mce-inject test/corrected

您现在可以检查日志,发现错误已被注入。

感谢您提供的有用信息。我将在Red Hat Linux上检查相同的错误。Red Hat Linux上唯一的区别是
sudo-yum-install-bison-flex
而不是
sudo-apt-get-install-bison-flex
。请告诉我标记此答案还需要什么已被接受。我正在使用您的方法,它可以正常工作,但在dmesg和消息日志文件中,我唯一可以观察到的是这样的消息:[date]MCE exception done on CPU 0。我还可以在哪里查看更多详细信息以检查错误?