我們有許多嵌入式系統需要通過塊設備模擬來訪問駐留在閃存上的文件系統。我們最早的平臺運行在緊湊型閃存上,並且這些系統已經使用了3年多,沒有在啓動期間運行單個fsck,並且到目前爲止我們沒有歸因於文件系統或CF的故障。我應該在嵌入式系統上使用ext3嗎?
在我們最新的平臺上,我們使用USB-flash進行初始生產,現在正在遷移到磁盤模塊以存儲r/w。前段時間,我們在USB存儲設備上運行的很多設備上都遇到了文件系統問題,所以我啓用了e2fsck以查看是否有幫助。事實證明,我們收到了一批不好的閃存,所以一旦更換了這些問題,問題就消失了。自從我們沒有任何跡象表明它使系統更加可靠並且歷史上我們在沒有它的情況下一直沒有問題以來,我一直禁用e2fsck。
既然我們已經開始放入磁盤模塊單元,我已經開始再次看到文件系統錯誤。突然系統無法讀取/寫入某些文件,如果我試圖從緊急控制檯訪問文件,我只會得到「輸入/輸出錯誤」。我再次啓用了e2fsck,並且所有文件都已更正。
O'Reilly的「構建嵌入式Linux系統」建議運行的e2fsck使用在ext2文件系統,但沒有提到它相對於ext3的,所以我有點困惑,以我是否應啓用與否。
你在嵌入式系統上運行fsck需要什麼?我們正在考慮將二進制文件放在ar/o分區上,並且只考慮在同一閃存設備上的ar/w分區上修改的文件,以便fsck永遠不會意外刪除重要的系統二進制文件,是否有人有過使用這種設置的經驗(好壞)?
其實我們已經有很少的目錄,這些目錄很少被寫入像fsck像/ lib/modules(!)一樣被刪除。我喜歡你的雙分區設置,我想在這裏實現類似的東西,但管理層給它的優先級很低。 – 2009-01-26 14:50:55
@David - 是的,刪除是可能的,如果修改。 fsck所做的並不理想,甚至有可能導致它折騰得比應該/可能更多的bug。它修復了文件系統的完整性,但它也是以犧牲一些數據爲代價的。 – 2009-01-26 14:58:31