我也想使用 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
编写脚本应该是可能的,但理论上这种损坏不应该经常发生。如果您最终遇到许多错误,则可能是需要解决的硬件问题,或者可能是软件错误。