Neste artigo mostrarei como identificar e "esconder" os blocos defeituosos (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.
Reconhecendo blocos defeituosos com a ferramenta badblocks
Você pode identificar badblocks no seu HD através de algumas características/ferramentas:
Se você notar que estão aparecendo diversas mensagens no syslog, indicando falha de leitura ou escrita.
Se você notar que o led de atividade do seu disco fica ligado constantemente e o desempenho do sistema começa a cair consideravelmente quando acessa o disco.
Quando o seu sistema iniciar os sistemas de arquivos em modo somente leitura.
Utilizando algum software para identificar badblocks.
OBS: Os problemas com badblocks em HDs 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". Ela procura blocos danificados no dispositivo especificado como parâmetro. Para mais informações consulte o manual do comando badblocks.
[1] Comentário enviado por lordello em 18/10/2006 - 12:56h
Legal o artigo, mas o comando "badblocks" apenas verifica a existência dos setores defeituosos, não marca eles. No título você diz que iria ensinar a marcar os setores defeituosos...
Na verdade, o ideal é usar o comando "e2fsck" com a opção "-c", desta forma ele já usa o comando "badblocks" e marca os setores defeituosos automaticamente.
A sua dica de usar um LiveCD é muito importante, usar o fsck ou qualquer outro utilitário de disco com ele montado é muito perigoso.
# man e2fsck
-c This option causes e2fsck to use badblocks(8) program to do a read-only scan of the device in order to find any bad blocks. If any bad blocks are found, they are added to the bad block inode to prevent them from being allocated to a file or directory. If this option is specified twice, then the bad block scan will be done using a non-destructive read- write test.
[6] Comentário enviado por robertors em 18/10/2006 - 23:02h
Olá, Raptor.
A opção -w realiza uma verredura nos blocos defeituosos e escreve alguns testes no disco (lendo cada bloco do disco e comparando ).
No manual do comando, fala que ele faz o teste em cada bloco do dispositivo. ( Presumo que seja em todo o disco )
Mas infelismente não tenho mais nenhum disco com badblocks para comprovar com um teste prático.
Se voce quer somente verificar e não quer correr riscos, utilize a opção -n, que realiza um teste não-destrutivo. Vai demorar um pouco mais.
Lembrando que eu não aconselho brincar com um disco com dados importantes... sempre tenha um backup antes.
[7] Comentário enviado por robertors em 18/10/2006 - 23:16h
Olá, Radiske.
Pelas informações que eu tenho, os discos modernos implementam um sistema de verificação de badblocks por hardware.
Voce também pode fazer via software.
Em sistema de arquivos reiserfs, existe um recurso para fazer a varredura e fazer a atualização dos blocos defeituosos automaticamente.
[9] Comentário enviado por henriquecorbo em 17/06/2012 - 17:55h
Excelente artigo. Salvou o meu HD. Tenho pouca experiência em ambiente linux e quase condenei injustamente um HD. Depois que li esse artigo cheguei a conclusão que o problema não era do HD.
Parabéns Robertors e muito obrigado pela dica Lordelho.
[10] Comentário enviado por andreuebe em 03/05/2015 - 19:06h
Caro
a) Qual a vantagem de se utilizar -w em vez do método não destrutivo? Acelera o processo?
b) Uma vez marcados os blocos, se eu reparticionar o HD, perco as marcações e tenho que repetir todo o processo?