在过去的一周里,我的服务器(运行 Debian Jessie)重启了两次。在 syslog 中,我在每次重新启动之前都看到了这一点,在其他点上没有:
Aug 15 13:32:58 hoshimiya kernel: [296512.005355] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1
Aug 15 13:32:58 hoshimiya kernel: [296512.005360] {1}[Hardware Error]: It has been corrected by h/w and requires no further action
Aug 15 13:32:58 hoshimiya kernel: [296512.005361] {1}[Hardware Error]: event severity: corrected
Aug 15 13:32:58 hoshimiya kernel: [296512.005362] {1}[Hardware Error]: Error 0, type: corrected
Aug 15 13:32:58 hoshimiya kernel: [296512.005363] {1}[Hardware Error]: fru_text: CorrectedErr
Aug 15 13:32:58 hoshimiya kernel: [296512.005364] {1}[Hardware Error]: section_type: memory error
Aug 15 13:32:58 hoshimiya kernel: [296512.005365] [Firmware Warn]: error section length is too small
Run Code Online (Sandbox Code Playgroud)
一些谷歌搜索让我相信这与我的 ECC RAM 检测和从错误中恢复有关。这样对吗?如果它正在恢复,为什么系统会重新启动?如果可能的话,我想阻止系统重新启动。
看起来您的 RAM 出现故障,或者正在纠正错误。根据严重程度,听起来这些错误会影响它的运行能力,之后必须重新启动。
从这个线程的外观来看,最后关于错误部分长度太小的消息位可能是罪魁祸首。
摘录 - [PATCH 1/1] efi: cper: 支持不同长度的错误部分
某些字段可能会添加到较新的 UEFI 规范中的错误部分。例如,从 UEFI 规范 2.3 开始,将字段“保留”、“等级编号”、“卡句柄”和“模块句柄”添加到内存错误部分。不幸的是,如果检测到内存更正错误并且结构体 acpi_generic_data 中的字段“修订版”小于 0x203(UEFI 规范 2.3),则会出现以下警告消息:
Run Code Online (Sandbox Code Playgroud){1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 3 {1}[Hardware Error]: It has been corrected by h/w and requires no further action {1}[Hardware Error]: event severity: corrected {1}[Hardware Error]: Error 0, type: corrected {1}[Hardware Error]: section_type: memory error [Firmware Warn]: error section length is too small此行为会导致无法正确显示更正后的错误。为解决此问题,此补丁支持不同 UEFI 规范版本的错误部分长度不同。
并且,此补丁使用预定义的结构来清理函数 cper_estatus_print_section 中的重复代码。
通过应用此补丁,在注入错误后可以正确显示内存更正的错误。
在 v3.14-rc5 上使用 Grantley 平台和英特尔 RAStool 进行测试。
因此,该特定错误的补丁似乎正在开发中,并且可能在较新版本的内核中可用。