Você executaria um scrub para detectar / corrigir quaisquer problemas de dados:
btrfs scrub start /mnt/backup
Quando isso terminar, se houver erros irrecuperáveis, pesquise dmesg
para obter detalhes sobre quais arquivos têm os erros. Em seguida, basta copiar os arquivos do seu local principal.
cp /path/to/file /mnt/backup/snapshot/path/to/file
É claro que você terá que fazer isso para cada snapshot que foi corrompido. Se o instantâneo for somente leitura, você deverá primeiro gravá-lo, copiar o arquivo e, em seguida, defini-lo de volta para somente leitura.
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
O script deve ser possível, mas, em teoria, esse tipo de corrupção não deve acontecer com tanta frequência. Se você está terminando com muitos erros, provavelmente é um problema de hardware que deve ser resolvido ou, potencialmente, um bug de software.