天天看點

centos系統出現Read-only file system的解決方案

最近發現Centos登陸後容易出現Read-only

read-only

也查了一下造成的原因有一下幾種。

檔案系統錯誤

核心相關硬體驅動bug

FW固件類問題

磁盤壞道

硬碟背闆故障

硬碟線纜故障

HBA卡故障

RAID卡故障

非正常關機

1.檔案系統錯誤。

如 ext3 檔案系統錯誤,比較少見,ext3 檔案系統是linux下非常穩定的檔案系統,目前檔案系統自身bug 造成的 ext3 檔案系統錯誤,非常罕見。

當檔案系統自身的校驗機制發現檔案系統存在問題時,為避免檔案系統受到進一步的損壞,一般把檔案系統設定為隻讀。

tune2fs 指令可以設定當作業系統核心發現有檔案系統錯誤時,作業系統對該檔案系統如何處理:

-e error-behavior

Change the behavior of the kernel code when errors are detected. In all cases, a filesystem error will cause

e2fsck(8) to check the filesystem on the next boot. error-behavior can be one of the following:

continue Continue normal execution.

remount-ro Remount filesystem read-only.

panic Cause a kernel panic.

此類隻讀,一般可以通過自身的檢查工具,如 fsck ,進行修複。2.磁盤壞道

A.對于單個硬碟的情況,當硬碟出現壞道,且不能夠被硬碟自身的糾錯機制恢複時,就會報IO錯誤,進而進一步影響上層檔案系統導緻隻讀現象出現。

B.對于有備援raid 的情況,多個硬碟出現壞道導緻 raid 卡檢驗機制無法恢複時,也會對外報該raid IO 錯誤。

badblocks 指令可以對磁盤壞道情況進行檢查,該指令位于 e2fsprogs 程式包内。3.FW固件類問題

硬碟 fw bug

硬碟背闆、擴充卡 fw bug

HBA卡 fw bug

raid 卡 fw bug

以及各部件 fw bug 不相容

此類問題,隻能夠回報給相應廠家,由廠家協助處理。

4.核心相關硬體驅動bug

HBA卡、raid卡硬體的核心驅動,如果有bug ,也可能導緻硬碟隻讀。如硬碟出現錯誤時,驅動的錯誤處理機制 Error Handler 異常;或者對 SATA 協定的實作,不完全遵循标準。用sysctl 指令調整 dev.scsi.logging_level = 64 可以讓核心更多的顯示 scsi 層面的資訊,有利于排錯。

5.硬碟背闆、硬碟線纜、HBA卡故障、RAID卡故障

這些部件出現故障,都可以造成硬碟隻讀。這些部件,如果故障現象嚴重,還是比較容易判斷和發現,但對于偶爾不穩定,排查有時候會比較困難,一般是替換法處理。Raid 卡廠家一般有提供 linux 作業系統下的指令行工具,如:megacli hpacucli arrconf等

評論補充:

inode資源耗盡,也會導緻分區隻讀

某個分區出現寫滿問題後,會出現隻讀故障。和OS有關系,和硬體關系不大

6. 使用LVM的linux,還可能由于作業系統更新時的bug導緻檔案系統變成隻讀。需在/etc/init.d/rc.local(REDHAT),或 /etc/init.d/after.local (suse)加入如下内容

pvscan

vgscan

lvscan

mount -a

7.非正常關機 這種情況盡量避免直接電源關機。

繼續閱讀