Questão 1:
No que diz respeito à -b
opção: isso depende do seu disco. Discos grandes e modernos têm blocos de 4KB, nesse caso, você deve definir -b 4096
. Você pode obter o tamanho do bloco no sistema operacional e também é possível obtê- lo lendo as informações do disco fora do rótulo ou pesquisando no Google o número do modelo do disco. Se -b
for definido como algo maior que o tamanho do seu bloco, a integridade dos badblocks
resultados poderá ser comprometida (ou seja, você poderá obter falso-negativos: nenhum bloco defeituoso foi encontrado quando ainda existe). Se -b
estiver definido como algo menor que o tamanho do bloco da sua unidade, a velocidade da badblocks
execução poderá ser comprometida. Não tenho certeza, mas pode haver outros problemas com a configuração-b
para algo menor que o tamanho do seu bloco, já que não está verificando a integridade de um bloco inteiro, ainda será possível obter falso-negativos se ele estiver definido muito pequeno.
A -c
opção corresponde a quantos blocos devem ser verificados ao mesmo tempo. Leitura / escrita em lote, basicamente. Esta opção não afeta a integridade dos seus resultados, mas afeta a velocidade com que as badblocks
execuções são executadas. badblocks
irá (opcionalmente) escrever, ler, armazenar em buffer, verificar, repetir para todos os N blocos, conforme especificado por -c
. Se -c
estiver definido muito baixo, isso fará com que suas badblocks
execuções demorem muito mais que o normal, pois o enfileiramento e o processamento de uma solicitação de E / S separada implicam sobrecarga, e o disco também pode impor sobrecarga adicional por solicitação. Se -c
estiver definido muito alto, badblocks
pode ficar sem memória. Se isso acontecer, badblocks
falhará rapidamente após o início. Considerações adicionais aqui incluem badblocks
execuções paralelas : se você estiver executandobadblocks
contra várias partições no mesmo disco (má idéia) ou contra vários discos no mesmo canal de E / S, você provavelmente desejará sintonizar -c
algo sensivelmente alto, dada a memória disponível para badblocks
que as execuções paralelas não lutem pela largura de banda de E / S e pode paralelizar de uma maneira sã.
Questão 2:
Ao contrário do que as outras respostas indicam, o -w
teste do modo de gravação não é mais ou menos confiável que o teste não destrutivo de leitura e gravação, mas é duas vezes mais rápido, com o custo de ser destrutivo para todos os seus dados. Vou explicar o porquê:
No modo não destrutivo, badblocks
faz o seguinte:
- Leia os dados existentes, faça a soma de verificação (leia novamente se necessário) e armazene-os na memória.
- Escreva um padrão predeterminado (substituível pela
-p
opção, embora geralmente não seja necessário) no bloco.
- Leia o bloco de volta, verificando se os dados lidos são os mesmos do padrão.
- Grave os dados originais de volta no disco.
- Não tenho certeza disso, mas provavelmente também relê e verifica se os dados originais foram gravados com sucesso e ainda somam as mesmas coisas.
No modo destrutivo ( -w
), badblocks
somente as etapas 2 e 3 acima. Isso significa que o número de operações de leitura / gravação necessárias para verificar a integridade dos dados é reduzido pela metade. Se um bloco estiver incorreto, os dados serão errôneos nos dois modos. Obviamente, se você se importa com os dados armazenados em sua unidade, deve usar o modo não destrutivo, pois -w
obliterará todos os dados e deixará badblocks
os padrões 'gravados no disco.
Ressalva: se um bloco está indo mal, mas ainda não está completamente desaparecido, alguns pares de verificação de leitura / escrita pode funcionar, e alguns não podem. Nesse caso, o modo não destrutivo pode fornecer uma indicação mais confiável da "empolgação" de um bloco, uma vez que ele faz dois conjuntos de verificação de leitura / gravação (talvez - veja o marcador na etapa 4). Mesmo que o modo não destrutivo seja mais confiável dessa maneira, é apenas mais confiável por coincidência . A maneira correta de verificar se há blocos que não são totalmente ruins, mas que não podem suportar várias operações de leitura / gravação, é executada badblocks
várias vezes nos mesmos dados, usando a -p
opção
Questão 3:
Se o SMART estiver realocando setores, você provavelmente deve considerar a substituição da unidade o mais rápido possível. As unidades que perdem alguns setores nem sempre as perdem, mas a causa geralmente é uma unidade muito usada que fica magneticamente mole ou falha de cabeçotes / motores, resultando em leituras / gravações imprecisas ou com falha. A decisão final depende de você, é claro: com base no valor dos dados no inversor e na confiabilidade necessária dos sistemas em que é executado, você pode decidir mantê-lo. Eu tenho algumas unidades com blocos defeituosos conhecidos que rodam com avisos SMART há anos no meu servidor de arquivos, mas eles são salvos em um cronograma para que eu possa lidar com uma falha total sem muita dor.