我有一个我不完全信任的硬盘,但仍然想使用(burstcoin 挖掘,如果我在文件中得到一个坏块,我只会损失几美分)。
我如何告诉 btrfs 将某些块标记为坏的(例如来自badblocks
输出)?
如果我不能将块预先标记为坏块btrfs scrub
,那么如果使用它们的文件被删除,将来是否会避免任何由 识别出的坏块?
Tom*_*ale 11
可悲的是没有。
btrfs 不会跟踪坏块,btrfs scrub
也不会阻止下一个文件命中相同的坏块。
这个 btrfs 邮件列表帖子建议使用 ext4 with mkfs.ext4 -c
(这“建立一个坏块列表,然后不会使用这些扇区”)。在 mdadm 3.1+ 上使用btrfs 和 RAID0的建议不起作用。
解决方法是构建一个设备,排除已知的坏块:btrfs over dmsetup。
未声明 — 还没有补丁 — 尚未在内核中
目前,btrfs 不跟踪坏块,即很可能丢失写入其中的数据的磁盘块。Btrfs 应该接受一个 badblocks 输出格式的列表,将它存储在一个新的 btree 中(或者可能在当前的范围树中,使用一个新标志),重新定位块包含的任何数据,并保留这些块以便它们不能被使用用于未来的分配。此外,当发现校验和错误时,可以教导清理来测试坏块。这将使擦洗更有用;校验和错误通常是由磁盘引起的,但是当scrub 检测到受影响的文件时,在备份场景中这提供了重新创建它们的机会,下一个重用坏块的文件只会开始出现错误。这两项将匹配 ext4 功能(通过 e2fsck 使用)。
如果状态发生变化,请发表评论,我会更新此答案。
归档时间: |
|
查看次数: |
4588 次 |
最近记录: |