如何損壞檔案系統

如何損壞檔案系統

我將在一些大型檔案系統(大約 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 修復。

相關內容