
我將在一些大型檔案系統(大約 50 TB)上測試“xfs_repair”,因為過去記憶體使用率很高。雖然我只能在正確的檔案系統上測試該程序,但在損壞的系統上測試它們會很好。
那麼破壞檔案系統的最佳方法是什麼?如果該方法每次都重複給出相同的損壞,則額外加分...
讓人們明白我在 2006 年的意思
「要在多 TB 檔案系統上成功檢查或執行修復,您需要:
- 64位機器
- 64 位元 xfs _ 修復/xfs _ 檢查二進位文件
- 每 TB 檔案系統約 2GB RAM
- 檔案系統中每百萬個 inode 需要 100-200MB RAM。
xfs_repair 通常會使用比這更少的內存,但這些數字為您提供了修復大於 80% 的大型檔案系統所需的大致數字。
FWIW,上次在內部出現這個問題時,有問題的 29TB 檔案系統需要大約 75GB RAM + 交換來修復。
答案1
xfs_db 有一個選項 blocktrash ,它
丟棄隨機選擇的檔案系統元資料塊。廢棄發生在所選區塊中隨機選擇的位上。該命令僅在 xfs_db 的調試版本中可用。它對於測試
xfs_repair(8)
和很有用xfs_check(8)
。
例如
xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs
答案2
dd 區塊到檔案系統所在的裝置。您可以編寫此腳本,使其可重複。只需在隨機位置放置幾個隨機區塊,然後繼續前進。
答案3
您可以嘗試覆蓋區塊裝置的前 512 個位元組(MBR 和分割區表)。
先備份一下:
dd if=/dev/device bs=512 count=1 of=backup.bin
稍後將其歸零:
dd if=/dev/zero bs=512 count=1 of=/dev/device
此後您的機器不應啟動,您可以使用 Live CD 測試 XFS 修復。