linux ext3 fsck一定要慎用

2021-09-30 08:59:02 字數 975 閱讀 5551

2010/5/14 17:42:54

不管是哪種檔案系統,其根本目的都是相同的:如何把檔案存在系統給定的區域裡,如何有效地管理檔案的讀與寫。為實現這樣的目的,驅動層需要完善、周密地應付附加在檔案系統上的各種操作。這些操作通常不會是一條指令完成的,如果乙個過程需要多條指令完成,在執行這些操作時,全部指令未完成的情況下產生中斷,那這個檔案系統便會出現一致性錯誤(或者叫連續性錯誤)。

為了保證盡可以少的出現一致性錯誤,現在主流的檔案系統都會設計成日誌型的。日誌型檔案系統的主要特點就是把乙個操作的所有指令執行過程都另外緩衝下來,如果全部執行完成再清除日誌標誌,如果操作沒有執行完成,可以在重新啟用後通過日誌回溯或繼續完成。

ext3的日誌功能通過在ext2的設計基礎上增加乙個特殊的檔案(通常是8號節點檔案),在這個檔案中記錄檔案系統的操作過程。但ext系統檔案系統本身在節點、間接索引塊、目錄節點方面沒有冗餘保護,所以當檔案系統除日誌外的其他結構並不一致,卻又要通過fsck來進行修復,這種一致性有可能將原本正確的結構也錯誤化。(就像原來是1+2=3,現在錯成了1+3=3,也許改完後變成了1+3=4,就完全沒辦法還原成最早的1+2=3)。

資料恢復領域經常會遇到這類情況:一次raid出故障後,下次啟動系統提示做fsck,但做完後,也無法mount分割槽或者mount 分割槽後資料全是錯的。需要對這類情況進行資料修復的難度是很大的,從乙個完整的結構(fsck後實際上從系統角度看已經是完整的了)再構建另乙個完全不同的結構要比修正乙個錯誤的結構更難以下手。其實這類情況,很多是因為raid5有早離線的盤加入了兩個邏輯磁碟組,導致所有的資料流是以新+舊的方式交錯組成的,自然會有太多錯誤。這時候如果做fsck後,有可能資料都無法恢復了。

所以,在ext3(實際上其他檔案系統也類似)無法mount,或者提示fsck時,如果有重要資料,應該慎重對待,千萬不可貿然執行"fsck -f -y "這樣的自動修復功能。如果可能,先對故障區域做dd全映象後再執行,或者以唯讀方式執行,並仔細看修復過程,如果提示大量inode錯誤、需要重建樹、或大小不對等就不可再繼續下去了。

linux ext3 fsck一定要慎用

張宇 北亞 硬碟資料恢復 不管是哪種檔案系統,其根本目的都是相同的 如何把檔案存在系統給定的區域裡,如何有效地管理檔案的讀與寫。為實現這樣的目的,驅動層需要完善 周密地應付附加在檔案系統上的各種操作。這些操作通常不會是一條指令完成的,如果乙個過程需要多條指令完成,在執行這些操作時,全部指令未完成的情...

linux ext3 fsck一定要慎用

張宇 北亞 硬碟資料恢復 不管是哪種檔案系統,其根本目的都是相同的 如何把檔案存在系統給定的區域裡,如何有效地管理檔案的讀與寫。為實現這樣的目的,驅動層需要完善 周密地應付附加在檔案系統上的各種操作。這些操作通常不會是一條指令完成的,如果乙個過程需要多條指令完成,在執行這些操作時,全部指令未完成的情...

逃避不一定躲得過,面對不一定最難過

國王有七個女兒,這七位美麗的公主是國王的驕傲。她 們那一頭烏黑亮麗的長髮遠近皆知。所以國王送給她們每人一百個漂亮的髮夾。有一天 早上,大公主醒來,一如往常地用髮夾整理她的秀髮,卻發現少了乙個髮夾,於是她偷偷地到了二公主的房裡,拿走了乙個髮夾。二公主發現少了乙個髮夾,便到三公主房裡拿走乙個髮夾 三公主...