Если у вас нет утилиты, которая может получить доступ к диску на уровне SCSI, обычное чтение с диска мало что может сделать.
Если вы хотите иметь возможность находить плохие блоки, вам необходимо иметь доступ к внутренним данным исправления ошибок с аппаратного контроллера диска. SCSI verify
может это сделать, но обычное чтение не может.
Обратите внимание, что в прежние времена сектора с битовыми ошибками назывались сбойными блоками, но с тех пор, как IBM в Штутгарте в 1992 году выпустила первый диск с опережающей коррекцией ошибок «на лету», сбойные блоки — это блоки с определенным количеством битовых ошибок, т.е. близко к максимально корректируемому.
До 1992 года нормальное чтение могло найти плохие блоки, и многие люди, кажется, верят, что это все еще работает, так что же именно делает ваша программа?