Questão 1:
No que diz respeito à -bopçã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 -bfor definido como algo maior que o tamanho do seu bloco, a integridade dos badblocksresultados poderá ser comprometida (ou seja, você poderá obter falso-negativos: nenhum bloco defeituoso foi encontrado quando ainda existe). Se -bestiver definido como algo menor que o tamanho do bloco da sua unidade, a velocidade da badblocksexecução poderá ser comprometida. Não tenho certeza, mas pode haver outros problemas com a configuração-bpara 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 -copçã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 badblocksexecuções são executadas. badblocksirá (opcionalmente) escrever, ler, armazenar em buffer, verificar, repetir para todos os N blocos, conforme especificado por -c. Se -cestiver definido muito baixo, isso fará com que suas badblocksexecuçõ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 -cestiver definido muito alto, badblockspode ficar sem memória. Se isso acontecer, badblocksfalhará rapidamente após o início. Considerações adicionais aqui incluem badblocksexecuções paralelas : se você estiver executandobadblockscontra 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 -calgo sensivelmente alto, dada a memória disponível para badblocksque 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 -wteste 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, badblocksfaz 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
-popçã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), badblockssomente 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 -wobliterará todos os dados e deixará badblocksos 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 badblocksvárias vezes nos mesmos dados, usando a -popçã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.