badblocks
читает, пишет и сравнивает (не обязательно в таком порядке).
Впоследствии badblocks -v
будут выводиться такие сообщения, как:
Pass completed, n bad blocks found (x/y/z errors)
Это означает, что он обнаружил n
плохие блоки, состоящие из x
ошибок чтения, ошибок y
записи и ошибок z
повреждения. Он считает ошибки чтения и записи такими, какие они произошли во время чтения и записи (согласно сообщению ядра). Эти ошибки также могут быть вызваны проблемами с кабелем / контроллером / драйвером.
Ошибка повреждения - это то, где данные сравнивались и оказывались отличными от ожидаемых (то есть считываемые данные отличались от ранее известных / записанных данных). В частности, badblocks
можно написать различные шаблоны данных (заданные одним или несколькими -t pattern
параметрами) и проверить, правильно ли написан каждый шаблон.
Можно получить ложные срабатывания для ошибок коррупции, если у вас есть другая программа, которая делает свои собственные записи во время badblocks
работы. Если другая программа пишет, диск ведет себя правильно, но об badblocks
этом не узнает, он просто видит, что считает неправильными данными.
Именно поэтому вы никогда не должны запускаться badblocks
на используемом диске, на диске, на котором уже есть файловая система, которая может быть смонтирована автоматически без вашего ведома, или на дисках, которые, как вы уже подозреваете, являются плохими, но вы все равно хотите восстановить свои данные.
С точки зрения восстановления данных, вы всегда должны идти ddrescue
вместо badblocks
. ddrescue
делает почти то же самое badblocks
(режим чтения), читает весь диск и записывает сектора, которые он не мог прочитать; но в то же время он создает полезную копию, тогда как badblocks
просто отбрасывает данные полностью.
Это заслуживает доверия?
badblocks
это инструмент, как и любой другой, он делает именно то, что говорит на странице руководства - поиск устройства на наличие плохих блоков. Это может или не может быть правильным инструментом для всего, что вы хотите сделать.
В чужих руках это может быть причиной повреждения данных. Так называемый non-destructive
режим является фальшивым другом и совсем не подразумевает безопасность ваших данных.
badblocks
(режим записи) в первую очередь полезно вставить новый пустой диск через отжимной модуль, прежде чем доверять ему данные.
Для теста «только для чтения» обычно лучше использовать самотестирование SMART ( smartctl -t long
или smartctl -t select
). Безопаснее, чем badblocks
дружественный к другим устройствам ввода / вывода.