Gerenciamento de setores defeituosos como o ReiserFS

No Windows, sobretudo ao formatar o HD em FAT, o scandisk oferece a opção de fazer um teste de superfície, onde são marcados setores defeituosos (badblocks) do HD. Os badblocks são defeitos físicos na superfície do HD, que não podem ser corrigidos,
apenas marcados para que não sejam mais usados. Uma dúvida comum é se existe um sistema similar no Linux.

Embora não seja um processo automático, como o scandisk, você pode usar o comando “badblocks“. Ele faz um exame de superfície e mostra 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 1024 bytes. O comando para verificar a partição /dev/hda1 por exemplo, fica:

# badblocks -b 1024 /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 HDs são capazes de marcar automaticamente os setores defeituosos, a própria controladora 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 alocação posterior. Sempre que a controladora do HD encontra um erro ao ler ou
gravar num determinado setor, ela remapeia o setor defeituoso, substituindo-o pelo endereço de um setor “bom”, dentro do defect map. Como a alocação é feita pela própria controladora, o HD continua parecendo 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 é trocá-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.

Você pode ver a lista de setores marcados como defeituosos em uma determinada partição usando o comando abaixo, que salva a lista no arquivo “bads” dentro do diretório atual:

# debugreiserfs -B bads /dev/hda1

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, onde 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.

É possível também gerar uma lista dos setores defeituosos usando o comando badblocks e especificar a lista ao formatar a partição, fazendo com que os setores defeituosos preexistentes encontrados pelo badblocks sejam marcados
para não serem usados pelo mkreiserfs. Esta receita pode ser útil no caso de HDs com alguns setores defeituosos, que estejam “estabilizados”, usados por tempo considerável sem que novos setores apareçam.

Para isso, comece gerando o arquivo com a lista dos setores defeituosos da partição desejada:

# badblocks -b 1024 -o bads.list /dev/hda1

Neste caso estamos dizendo ao badblocks que ele deve verificar a partição “/dev/hda1” e salvar a lista no arquivo “bads.list”, salvo no diretório atual.

De posse do arquivo, formate a partição usando o comando:

# mkreiserfs -B bads.list /dev/hda1

Se a partição já estiver formatada e você quiser apenas adicionar a lista de setores defeituosos, sem destruir todos os dados, use o comando:

# reiserfsck –rebuild-tree -B bads.list /dev/hda1

Como disse, os setores defeituosos são automaticamente marcados conforme são detectados pelo sistema de arquivos, por isto este segundo comando é raramente necessário.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X