O teste somente leitura é lido apenas. Esse é basicamente o método de teste padrão para praticamente tudo e praticamente o mesmo que os discos fazem para os autotestes SMART.
O teste não-destrutivo de leitura-gravação funciona sobrescrevendo dados, depois lendo para verificar e depois gravando os dados originais de volta depois. A única maneira de verificar se a gravação de dados funciona é realmente gravar dados, nenhum teste somente leitura fará isso para você.
As pessoas que apenas leem testes (a maioria simplesmente porque escrevem testes levam pelo menos o dobro do tempo) simplesmente aceitam de boa fé que quando a leitura funciona, escrever (e ser capaz de ler os dados que foram escritos mais tarde) provavelmente trabalhe também.
No entanto, o não-destrutivo é relativo ... afinal, a própria gravação pode destruí-lo (em um meio com ciclos de gravação limitados) e, uma vez quebrado, não há maneira de gravar os dados originais de volta também. Embora o teste não seja destrutivo, se seu hardware estiver com defeito, ele ainda poderá perder alguns dados adicionais.
Portanto, você não deve usar badblocks se houver dados em um meio que você espera recuperar. Especialmente se você já sabe que está indo mal ... se você não tiver um backup, basta fazer oddrescue
diretamente. Isso também acontece de ser um teste somente de leitura e o arquivo de log irá dizer onde estão as zonas de erro ...