Btrfs

btrfs 可以跟踪/避免壞塊嗎?

  • August 4, 2021

我有一個我不完全信任的硬碟驅動器,但仍然想使用(burstcoin 探勘,如果我在文件中得到一個壞塊,我只會損失幾美分)。

如何告訴 btrfs 將某些塊標記為壞塊(例如來自badblocks輸出)?

如果我不能將塊預先標記為壞塊,btrfs scrub如果使用它們的文件被刪除,將來是否會避免辨識出的任何壞塊?

可悲的是沒有。

btrfs 不會跟踪壞塊,btrfs scrub也不會阻止下一個文件命中相同的壞塊。

這個 btrfs 郵件列表文章建議使用 ext4 mkfs.ext4 -c(這*“建立一個壞塊列表,然後不會使用這些扇區”*)。在 mdadm 3.1+ 和 RAID0上使用btrfs 的建議將不起作用

似乎LVM 不支持 badblock relocation

一種解決方法是建構一個不包括已知壞塊的設備:btrfs over dmsetup


btrfs Project Ideas wiki說:

未聲明——還沒有更新檔——還沒有在核心中

目前 btrfs 不跟踪壞塊,即很可能失去寫入它們的數據的磁碟塊。Btrfs 應該接受一個 badblocks 輸出格式的列表,將它儲存在一個新的 btree 中(或者可能在目前的範圍樹中,帶有一個新的標誌),重新定位塊包含的任何數據,並保留這些塊以便它們不能被使用用於未來的分配。此外,當發現校驗和錯誤時,可以教擦洗以測試壞塊。這將使磨砂膏更加有用;校驗和錯誤通常是由磁碟引起的,但是當擦洗檢測到受影響的文件時,在備份方案中這提供了重新創建它們的機會,下一個重用壞塊的文件將開始出現錯誤。這兩項將匹配 ext4 功能(通過 e2fsck 使用)。

如果狀態發生變化,請發表評論,我將更新此答案。

引用自:https://unix.stackexchange.com/questions/362241