过去一周,我的服务器(运行 Debian Jessie)已重新启动两次。在系统日志中,我在每次重新启动之前都会看到这一点,而在其他任何时候都没有:
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
一些谷歌搜索让我相信这与我的 ECC RAM 检测并从错误中恢复有关。它是否正确?如果正在恢复,为什么系统会重新启动?如果可能的话,我想阻止系统重新启动。
答案1
您的 RAM 似乎出现故障,或者存在正在纠正的错误。根据严重程度,听起来这些错误正在影响其运行能力,并且之后必须重新启动。
从该线程的外观来看,末尾有关错误部分长度太小的消息位可能是罪魁祸首。
摘录-[PATCH 1/1] efi: cper: 支持不同长度的错误部分
在较新的 UEFI 规范中,某些字段可能会添加到错误部分。例如,从 UEFI 规范 2.3 开始,“Reserved”、“Rank Number”、“Card Handle”和“Module Handle”字段被添加到“内存错误部分”中。不幸的是,如果检测到内存更正错误并且 struct acpi_generic_data 中的字段“revision”小于 0x203(UEFI 规范 2.3),将会出现以下警告消息:
{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 中的重复代码。
通过应用此补丁,注入错误后可以正确显示内存纠正错误。
使用 Grantley 平台和 Intel RAStool 在 v3.14-rc5 上进行测试。
因此,针对该特定错误的补丁似乎正在开发中,并且可能会在较新版本的内核中提供。
答案2
仅供参考,我似乎有一个与此非常相似的问题。
事实证明,解决方案是将内存取出并重新安装,一切都恢复正常。