Saturday, August 26, 2006

Linux - Verificando e marcando BadBlocks

Neste artigo mostrarei como identificar e "esconder" os BadBlocks do seu HD.
É assumido que essa técnica não irá deixar seu disco em perfeito estado de uso, mas irá apenas amenizar o problema dos badblocks.
Para um servidor em produção, realize a troca do HD danificado por um HD novo.

Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:

- O texto em Negrito assume que se trata de um comando que deve ser digitado.
- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.
- O ">>>" significa que você deve digitar no interpretador do Python.
- O "#" significa que o comando dever ser executado como usuário "root".
- O "$" significa que o comando deve ser executado como usuário sem privilégios.

Você pode identificar BadBlocks no seu HD através de algumas caracteríscas/ferramentas:

1 - Se você notar que está aparecendo diversas mensagens no syslog, indicando falha de leitura ou escrita.
2 - Se você notar que o led de atividade do seu disco, fica ligado constantemente e o desempenho do sistema começar a cair consideravelmente quando acessa o disco.
3 - Quando o seu sistema iniciar os sistemas de arquivos em modo somente leitura.
4 - Utilizando algum software para identificar BadBlocs.

Obs.: Os problemas com BadBlocks em HD's são de ordem física e não podem ser corrigidos com software ( Podemos somente "esconder" o problema ).

Podemos amenizar os problemas com BadBlocks dizendo para o disco não ler ou gravar nos blocos defeituosos. Ou seja, iremos fazer uma varredura no disco procurando por blocos danificados e os blocos danificados serão "marcados" como defeituosos.

No Linux utilizamos a ferramenta: badblocks

A ferramenta badblocks procura blocos danificados no dispositivo especificado como parâmetro.

Vamos a prática:

Para fazer uma checagem de BadBlocks em sistemas de arquivos ext2 ou ext3, siga os passos abaixo:

1 - Para sua segurança, realize um backup de todos os dados que você julgar importante.

2 - Inicie seu computador com outra mídia bootável. Algumas opções: kurumin live cd, ubuntu live cd.
É importante não "bootar" o sistema apartir do HD defeituoso, pois o sistema pode perder a comunicação com o disco rígido e seu sistema ficar paralisado.

3 - Executando o comando badblocks:

Sintaxe: badblocks [opções] dispositivo contagem-bloco

# badblocks -o badblocs_encontrados.dat -n -v /dev/hda4
Checking for bad blocks in non-destructive read-write mode
From block 0 to 8201182
Testing with random pattern:
Pass completed, 0 bad blocks found.

Descrevendo o comando acima:

- A opção -o: Especifica o nome do arquivo que será uma "lista" com os badblocks encontrados.
- A opção -n: Realiza um teste não-destrutivo, gravando em cada bloco e depois lendo-o, enquanto preserva os dados. Isso deve demorar um pouco.
- A opção -v: Ativa modo verbose.
- O dispositivo: Especifica o dispositivo que você quer verificar. /dev/hd??

Aviso: Nunca utilize a opção -w em um dispositivo contendo dados importantes.
Esta opção irá apagar (deletar) os dados.
Para checagem não-destrutiva, utilize a opção -n. Essa opção demora um pouco mais.

Referência:
Guia Foca Linux

Recursos:
Página manual do comando badblocks

1 Comments:

At 8:41 AM, Blogger Alfonso said...

Valeu, Roberto.
Estou há tempos procurando uma explicação objetiva de como utilizar o badblocks.
Abraço.

 

Post a Comment

<< Home