如何用 btrfs 替换损坏的文件?

如何用 btrfs 替换损坏的文件?

我也想使用 btrfs 进行备份,因为它可以告诉我文件是否损坏,而且我也可以使用快照。假设 btrfs 在我的备份驱动器上发现了损坏的文件,并且我仍然拥有未损坏的原始文件。有没有办法修复备份文件并用它修复我的旧快照?

答案1

您可以运行清理来检测/修复任何数据问题:

btrfs scrub start /mnt/backup

完成后,如果存在不可恢复的错误,请搜索dmesg有关哪些文件存在错误的详细信息。然后只需从您的主位置复制文件即可。

cp /path/to/file /mnt/backup/snapshot/path/to/file

当然,您必须对每个损坏的快照执行此操作。如果快照是只读的,则必须先将其设置为可写,复制文件,然后将其设置回只读。

btrfs property set -ts /mnt/backup/snapshot ro false
cp /path/to/file /mnt/backup/snapshot/path/to/file
btrfs property set -ts /mnt/backup/snapshot ro true

编写脚本应该是可能的,但理论上这种损坏不应该经常发生。如果您最终遇到许多错误,则可能是需要解决的硬件问题,或者可能是软件错误。

快照
btrfs 属性

相关内容