2008-09-26 61 views
15

我想模擬文件系統損壞的目的是測試我們的嵌入式系統如何對它做出反應並最終讓它們儘可能優雅地失敗。我們使用不同類型的塊設備模擬閃存來存儲經常修改的數據,並且不適合存儲在NAND/NOR中。如何模擬ext3文件系統損壞?

由於我對數據在文件樹的不同部分以及敏感數據存儲位置的修改頻率有很好的瞭解。我想在特定領域注入錯誤,而不是隨機。

在緊急情況下,我們使用fsck -y作爲最後的手段,以試圖使系統啓動並報告狀態非常糟糕。我非常想引起錯誤,這會引發fsck嘗試修復,以便研究對系統恢復能力的影響。

dd if=/dev/random對於我的目的不夠精確,因爲它不容易用於注入受控錯誤。還有其他工具或方法能更好地滿足我的需求,還是我必須創造自己的?

+0

偉大的問題,但我會標記此容錯而不是優雅退化。 – 2008-09-26 15:49:50

回答

2

如果您已經知道要修改什麼,dd可以讀取包含要寫入字節的文件,並告訴它在哪裏寫入。

要確定在哪裏編寫,e2fsprogs軟件包中的debugfs可以幫助您。

1

應該可以使用Linux文件系統的圖像模糊器造成損壞:

或其中一種Linux磁盤故障注入技術(例如,在https://unix.stackexchange.com/a/144200中描述的在腐敗模式下的dm-flakey)。