A menos que você tenha um utilitário capaz de acessar o disco no nível SCSI, há poucos que uma leitura normal de um disco pode fazer.
Se você quiser encontrar blocos inválidos, será necessário obter acesso aos dados de correção de erros internos do hardware do controlador de disco. O SCSI verify
pode fazer isso, mas uma leitura normal não pode.
Note que antigamente, setores com erros de bit eram chamados de bad blocks, mas como a IBM Stuttgart em 1992 fez o primeiro disco com correção antecipada de erros em tempo real, blocos ruins são blocos com uma certa quantidade de erros de bits perto do máximo corrigível.
Antes de 1992, uma leitura normal poderia encontrar bloqueios ruins e muitas pessoas parecem acreditar que isso ainda funciona, então o que exatamente você programa?