badblocks
lê, escreve e compara (não necessariamente nessa ordem).
Posteriormente badblocks -v
produzirá mensagens como:
Pass completed, n bad blocks found (x/y/z errors)
O que significa que encontrou n
blocos defeituosos, consistindo em x
erros de leitura, y
erros de gravação e z
erros de corrupção. Ele considera erros de leitura e erros de gravação conforme eles ocorreram durante a leitura e gravação (conforme relatado pelo kernel). Esses erros também podem ser causados devido a problemas de cabo / controlador / driver.
Um erro de corrupção é onde os dados foram comparados e considerados diferentes do esperado (ou seja, os dados lidos diferiam dos dados conhecidos / gravados anteriormente). Em particular, badblocks
pode escrever vários padrões de dados (especificados por uma ou mais -t pattern
opções) e verificar se cada padrão foi gravado corretamente.
É possível obter falsos positivos para erros de corrupção, se você tiver outro programa fazendo suas próprias gravações enquanto badblocks
estiver em execução. Se outro programa gravar, o disco está se comportando corretamente, mas badblocks
não saberá disso, apenas verá o que considera os dados incorretos.
É também por isso que você nunca deve executar badblocks
em uma unidade em uso, em uma unidade que já possua um sistema de arquivos que possa ser montado automaticamente sem que você saiba, ou em unidades que você suspeita serem ruins, mas ainda deseja recuperar seus dados.
Em termos de recuperação de dados, você deve sempre ir em ddrescue
vez de badblocks
. ddrescue
faz a mesma coisa badblocks
(modo de leitura), lê a unidade inteira e registra os setores que não pôde ler; mas, ao mesmo tempo, produz uma cópia útil, enquanto badblocks
apenas descarta os dados inteiramente.
É confiável?
badblocks
é uma ferramenta como qualquer outra, faz exatamente o que diz na página de manual - pesquise blocos defeituosos em um dispositivo. Pode ou não ser a ferramenta certa para o que você deseja fazer.
Nas mãos erradas, pode ser a causa da corrupção de dados. O modo chamado non-destructive
é um amigo falso e não implica em segurança para seus dados.
badblocks
(modo de gravação) é útil principalmente para colocar uma unidade nova e vazia no wringer antes de confiar nos dados.
Para um teste somente leitura, geralmente é melhor usar os autotestes SMART ( smartctl -t long
ou smartctl -t select
). Mais seguro badblocks
e amigável para outras E / S.