最近我接觸到了一些看似磁碟損壞的場景,我想更了解它們。
我有一個每天使用的建置伺服器。在最近 LLVM 版本的一次完整建置過程中,該版本因一條奇怪的錯誤訊息而停止,我得到了一個生成檔案的摘錄 ( X86GenDisassemblerTables.inc
):
...
/* 0xa5 */
{ /* ModRMDecision */
MODRM_ONEENTRY,
0 /* EmptyTable */
},
/* 0xa6 */
{ /* ModRMDecision */
MODÒM_ONEENTRY, # Ò = 0xD2
0 /* EmptyTable */ # R = 0x52
},
/* 0xa7 */
{ /* ModRMDecision */
MODRM_ONEENTRY,
0 /* EmptyTable */
},
...
這似乎是一位文件損壞。我刪除了該文件,構建再次生成它並成功完成。
而今天,在一個不同的機器,此.d
文件是在建置過程中產生的:
output-gcc-8.2.0-x86_64-linux-gnu/obj/headers.hpp.gch: src/headers.hpp
pp # What's this?
其他一切——檔案大小、權限,甚至終止換行符——都已就位。刪除該檔案還允許建置再次生成它而不會出現問題。
這些是合法的磁碟損壞案例嗎?我可以使用哪些工具來診斷這個問題?這些磁碟分別是運行 ext4 檔案系統的一年和兩年的 SSD。
答案1
您可能想從 RAM 測試開始。硬潛水通常知道何時出現讀取或寫入故障。如果您尚未在核心訊息中收到硬碟錯誤,並且您沒有使用 ECC RAM,那麼我會懷疑 RAM 而不是硬碟。