em Sem categoria

Gerenciamento de setores defeituosos com o ReiserFS

Este artigo foi retirado do site Dicas-L da Unicamp.

Por Carlos E. Morimoto (http://www.guiadohardware.net)

“Como funciona o gerenciamento de setores defeituosos (bad blocks)
no HD ao usar o sistema de arquivos ReiserFS? Existe algum utilit?rio
que fa?a um exame de superf?cie e marque os setores defeituosos,
como faz o scandisk?”

Voc? pode usar o comando “badblocks”, ele vai fazer um exame de
superf?cie e mostrar uma lista com os setores defeituosos. Para
usar em conjunto com o ReiserFS, voc? precisa especificar o tamanho
dos blocos (em bytes). Se voc? n?o usou nenhuma op??o especial ao
formatar a parti??o, os blocos ter?o 4096 bytes. O comando para
verificar a parti??o /dev/hda1 por exemplo, fica:

# badblocks -b 4096 /dev/hda1

(como root)

Isso demora alguns minutos. Se estiver tudo certo ele n?o vai
retornar nada no final do teste.

Hoje em dia os HD’s s?o capazes de marcar automaticamente os setores
defeituosos, o pr?prio hardware faz isso, independentemente do
sistema operacional.

Existe uma ?rea reservada no in?cio do disco chamada “defect
map” (mapa de defeitos) com alguns milhares de setores que ficam
reservados para isso. Sempre que o HD encontra um erro ao ler ou
gravar num determinado setor, ele remapeia este setor defeituoso para
um bom dentro do defect map, de modo que o HD continua aparecendo
intacto para o sistema operacional.

Os setores s? realmente come?am a aparecer quando o HD j? possui
muitos setores defeituosos e o defect map j? est? cheio. Isso ? um
ind?cio de um problema grave. O HD j? deu o que tinha que dar e o
melhor ? troca-lo o mais r?pido poss?vel para n?o arriscar perder
os dados.

Alguns sintomas de que o HD est? desfrutando de seus ?ltimos dias
de vida s?o:

– Muitos badblocks (causados por envelhecimento da m?dia)

– Desempenho muito abaixo do normal (isso indica problemas de
leitura, o que faz com que a cabe?a de leitura tenha que ler v?rias
vezes o mesmo setor para finalmente conseguir acessar os dados)

– Um barulho de click-click (o famoso click da morte, que indica
problemas no sistema de movimenta??o da cabe?a de leitura, um
ind?cio de que o HD est? realmente nas ?ltimas)

De qualquer forma, o ReiserFS ? capaz de marcar via software setores
defeituosos que for encontrando. Isso ? feito automaticamente, assim
como no NTFS do Windows XP. S? ? preciso marcar setores defeituosos
manualmente em sistemas de arquivos antigos, como o FAT32 e o EXT2.

Ou seja, para marcar setores defeituosos que por ventura existam,
voc? s? precisa copiar um monte de arquivos, at? encher a
parti??o. Para ver se existem setores defeituosos na parti??o,
marcados via software, rode o comando:

# debugreiserfs /dev/hda1

Caso exista algum erro no sistema de arquivos, causados por
desligamentos incorretos por exemplo, voc? pode corrigir com
o comando:

# reiserfsck /dev/hda1

Este comando deve ser executado com a parti??o desmontada. O ideal
? dar boot pelo CD do Kurumin e rodar a partir dele.

Em casos mais extremos, caso voc? tenha um HD cheio de badblocks
em m?os e queira us?-lo mesmo assim, num micro que n?o ? usado para
nada importante por exemplo, voc? pode fazer o seguinte:

Comece enchendo o HD de bits zero, isso vai for?ar a controladora
a escrever em todos os setores e marcar via hardware os
setores defeituosos que conseguir. Isso pode ser feito usando o
dd. Naturalmente isso vai apagar todos os dados. A forma ideal de
fazer isso ? dando boot atrav?s do CD do Kurumin:

# dd if=/dev/zero of=/dev/hda

(onde o /dev/hda ? o dispositivo do HD. Na d?vida, d? uma olhada
no qtparted)

Reparticione o HD usando o cfdisk e formate as parti??es em ReiserFS,
como em:

# mkreiserfs /dev/hda1

Monte a parti??o e copie arquivos (qualquer coisa) para dentro dela
at? encher. Isso deve marcar via software os setores defeituosos
que sobrarem. A partir da? voc? pode ir usando o HD at? que ele
pife definitivamente.