Eu gostaria de ter uma maneira de verificar periodicamente se posso realmente ler todos os dados em minhas unidades, para que eu possa reescrever qualquer arquivo e/ou investigar mais se houver um problema.
Tanto o ZFS quanto o Btrfs possuem um comando scrub para essa finalidade.
Como faço para depurar de forma eficiente ext* e NTFS?
Um método é simplesmente ler cada arquivo, esperando uma mensagem no STDERR se houver um problema:
(cd /mountpoint && find . -xdev -print0 | xargs -0P4 xxhsum ) >hashes 2>errors
Usar
-z
comb2sum
(ousha256sum
) permite nomes de arquivos com novas linhas.Isso inclui diretórios propositalmente para permitir diretórios vazios.
Se diretórios vazios não são um problema, isso é mais curto:
Isso imprimirá o tamanho do arquivo, o hash e o nome do arquivo seguidos por um
NUL
.Idealmente, eu adicionaria
-t
,sha256deep
mas atualmente existe esse problema .