本文主要分享下Linux服務器中硬盤發生故障後/var/log/messages 和/var/log/mcelog中會出現的具體日志以及對應的修復方法,隨著案例的不斷增多和豐富,最後我會歸納形成自動化腳本。
當然其中會有很多硬盤有物理壞道,需要更換,這種就需要硬盤供應商去更換了,此處不在本文討論范圍。
服務器型號:
HP SE1170s
硬盤型號:
MB2000EAZNL
故障1:
Jul 17 00:46:34 xxxxxxxxxxxxxx kernel: [8384801.159283] EXT4-fs (sdl1): warning: mounting fs with errors, running e2fsck is recommended
Jul 17 00:50:00 xxxxxxxxxxxxxx kernel: [8385006.016500] sd 6:0:6:0: [sdl] Sense Key : Medium Error [current]
Jul 17 00:50:00 xxxxxxxxxxxxxx kernel: [8385006.016508] sd 6:0:6:0: [sdl] Add. Sense: Unrecovered read error
Jul 17 00:50:00 xxxxxxxxxxxxxx kernel: [8385006.016524] Buffer I/O error on device sdl1, logical block 1415594116
Jul 17 00:50:00 xxxxxxxxxxxxxx kernel: [8385006.095561] Buffer I/O error on device sdl1, logical block 1415594117
故障解決:
#e2fsck /dev/sdl1
若壞的block無法修復,則需要用fdisk格式化硬盤:
#fdisk /dev/sdl
#d
#n
#p
#Enter
#Enter
#w
用ext4文件系統格式化磁盤:
#mkfs.ext4 /dev/sdl1
把格式化好的硬盤mount回來:
#mount -L /Hadoop07 /hadoop/7 -t ext4 -o defaults,noatime,nodiratime,noauto
若幾天後發現/var/log/messages裡面有最新的/dev/sdl的錯誤日志,則表明此硬盤需要更換了,這時可以先禁掉這塊盤所掛在目錄的讀寫功能,在此之前你可以先把裡面的數據拷貝出來:
#chmod 0 /hadoop07