badblocks
lê, escreve e compara (não necessariamente nessa ordem).
Em seguida, badblocks -v
enviará mensagens como:
Pass completed, n bad blocks found (x/y/z errors)
O que significa que encontrou n
blocos inválidos, 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 ocorrem durante a leitura e gravação (conforme relatado pelo kernel). Esses erros também podem ser causados devido a problemas com cabos / controladores / drivers.
Um erro de corrupção é onde os dados foram comparados e considerados diferentes do esperado (ou seja, os dados lidos foram desviados dos dados previamente conhecidos / gravados). Em particular, badblocks
pode escrever vários padrões de dados (especificados por uma ou mais opções -t pattern
) e verificar se cada padrão foi escrito corretamente.
É possível obter falsos positivos por 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 sabe disso, apenas vê o que considera os dados errados.
Qual é também o motivo pelo qual você nunca deve executar badblocks
em uma unidade que esteja em uso, em uma unidade que já tenha um sistema de arquivos que possa ser montado automaticamente sem você saber ou em unidades suspeitas deseja recuperar seus dados.
Em termos de recuperação de dados, você deve sempre usar ddrescue
em vez de badblocks
. ddrescue
faz exatamente a mesma coisa badblocks
(modo de leitura), lê todo o disco e faz o logoff dos setores que não pôde ler; mas, ao mesmo tempo, produz uma cópia útil, enquanto badblocks
simplesmente descarta os dados inteiramente.
É confiável?
badblocks
é uma ferramenta como qualquer outra, faz exatamente o que diz na manpage - procure um dispositivo por blocos ruins. Pode ou não ser a ferramenta certa para o que você quer fazer.
Nas mãos erradas, pode ser a causa da corrupção de dados. O chamado modo non-destructive
é um falso amigo e não implica segurança para seus dados.
badblocks
(modo de gravação) é útil principalmente para colocar uma unidade nova e vazia no espremedor antes de confiar nela.
Para um teste somente leitura, geralmente é melhor usar os autotestes SMART ( smartctl -t long
ou smartctl -t select
). Mais seguro que badblocks
e amigável a outras E / S.