Recuperando partições danificadas

Assim como no Windows, você nunca deve desligar o micro no botão ao rodar qualquer distribuição Linux.

Mas, acidentes acontecem. A energia elétrica acaba de vez em quando, alguns dos drivers de softmodems podem fazer o micro travar (estes drivers são proprietários, por isso não é possível corrigir bugs, você depende unicamente
da boa vontade do fabricante) e assim por diante.

Durante o boot, o sistema verifica as partições em busca de problemas, tentando resolver qualquer inconsistência no sistema de arquivos causada por um desligamento incorreto. Você pode perder alguns arquivos que ainda não
tenham sido salvos no HD, mas a idéia é que a verificação coloque todo o resto em ordem.

Para partições em ReiserFS é usado o reiserfsck, para partições em EXT2 ou EXT3 é usado (respectivamente) o fsck.ext2 ou o fsck.ext3 e para partições em XFS é usado o xfs_repair.

Mas, em alguns casos, o dano pode ser grande o suficiente para que não seja possível repará-lo automaticamente, fazendo com que o sistema simplesmente deixe de dar boot.

Não há motivo para pânico. Você pode dar boot pelo CD do Kurumin e usá-lo para reparar as partições danificadas.

Abra um terminal e logue-se root (su). Lembre-se de que, ao rodar o Kurumin pelo CD, você pode definir a senha de root usando o comando “sudo passwd”. A partição a ser reparada precisa estar desmontada. Vou usar como exemplo
a partição /dev/hda1.

Se for uma partição EXT3, use o comando:

# fsck.ext3 /dev/hda1

Ele vai começar a apontar os erros e perguntar se cada um deve ser corrigido. Normalmente você pode ir apenas respondendo “y” para tudo, mas caso existam dados realmente importantes na partição é melhor prestar mais atenção.
Arquivos danificados ou fragmentos de arquivos que puderam ser recuperados vão para a pasta “lost+found”, no diretório raiz da partição.

Você pode também adicionar o parâmetro “-f”, que força a verificação da partição, mesmo que o sistema de arquivos pareça não ter problemas:

# fsck.ext3 -f /dev/hda1

O fsck não é capaz de recuperar o sistema de arquivos em casos de problemas com o superbloco, o setor que contém informações essenciais, como o tipo, tamanho, status e informações sobre a estrutura do sistema de arquivos.
Quando não encontra o superbloco, o fsck simplesmente falha, exibindo um “fatal error”, sem maiores explicações. Apesar de assustar, este é um problema fácil de resolver.

Sempre que a partição é criada, são criados vários superblocos alternativos, que servem justamente de backups para casos de problemas com o primeiro. Você pode ver a lista de endereços usando o comando “mkfs.ext3 -n
partição”, como em:

# mkfs.ext3 -n /dev/hda1

Importante: Ao usar o comando, nunca esqueça de incluir o “-n“. Caso contrário ao invés de mostrar as informações, ele vai formatar a partição.

No final do relatório você encontra uma lista como:

Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Alternativamente, você pode usar também o comando “dumpe2fs /dev/hda1 | grep -i superblock”. O Testdisk (que veremos a seguir) também oferece uma opção para listar superblocos alternativos em partições EXT, que você acessa em
“Advanced > Superblock”.

Chame novamente o comando “fsck.ext3”, adicionando a opção “-b”, seguida do endereço do superbloco que será usado. Caso eventualmente o primeiro resulte em erro, experimente o segundo e assim por diante:

# fsck.ext3 -f -b 32768 /dev/hda2

Para partições EXT2, use o comando “fsck.ext2”, que suporta os mesmos parâmetros.

Continuando, temos as partições formatadas em ReiserFS. Em casos de problemas com elas, comece com o comando:

# reiserfsck –check /dev/hda1

Ele exibe o aviso “Do you want to run this program?[N/Yes] (note need to type Yes if you do)”, onde você precisa digitar “Yes” para continuar. Caso apenas pressione Enter, ele aborta a operação.

Ele vai verificar toda a estrutura do sistema de arquivos e indicar os erros encontrados. O próximo passo é usar a opção “–fix-fixable”:

# reiserfsck –fix-fixable /dev/hda1

Este segundo comando efetivamente corrige todos os erros simples, aqueles que podem ser corrigidos sem colocar em risco as demais estruturas do sistema de arquivos. Em 90% dos casos isto é suficiente.

Caso seja encontrado algum erro grave, ele vai abortar a operação. Estes erros mais graves podem ser corrigidos com o comando:

# reiserfsck –rebuild-tree /dev/hda1

Este comando vai reconstruir do zero todas as estruturas do sistema de arquivos, vasculhando todos os arquivos armazenados. Esta operação pode demorar bastante, de acordo com o tamanho e volume de arquivos na partição. Nunca
interrompa a reconstrução, caso contrário você não vai conseguir acessar nada dentro da partição até que recomece e realmente conclua a operação.

O “–rebuild-tree” vai corrigir qualquer tipo de erro no sistema de arquivos. Ele só não vai resolver o problema se realmente existir algum problema físico, como, por exemplo, um grande número de setores defeituosos no
HD.

Para partições formatadas em FAT16 ou FAT32, incluindo pendrives, cartões, câmeras e outros dispositivos, use o comando “fsck.vfat“.

Verificar partições formatadas em FAT regularmente é importante, pois este sistema de arquivos não possui um sistema confiável de detecção de erros. As partições e pendrives são montados pelo sistema mesmo que o sistema de
arquivos esteja corrompido, fazendo com que os erros acabem se acentuando até o ponto em que os arquivos não podem ser lidos ou modificados, ou o sistema realmente não consegue montar a partição, dizendo que ela não está formatada ou outro erro
similar.

No Linux também é comum que o dispositivo seja desmontado automaticamente caso sejam detectados erros, uma precaução de segurança. Se o seu pendrive é acessado de forma aparentemente normal, mas o dispositivo é desmontado
“sozinho” quando você tenta modificar arquivos, provavelmente a partição contém erros que precisam ser reparados urgentemente.

Comece fazendo o teste não-destrutivo, que acessa o dispositivo em modo somente leitura e apenas avisa dos erros que encontrar:

# fsck.vfat /dev/hda1

De acordo com os erros que forem encontrados e a importância dos dados, você pode optar pela recuperação automática, que simplesmente corrige todos os erros, colocando arquivos corrompidos que puderam ser recuperados no
diretório raiz, ou pela recuperação manual, onde você pode verificar cada modificação.

Para fazer a recuperação automática, use:

# fsck.vfat -a /dev/hda1

Para a recuperação manual (bem mais longa e sujeita a erro humano), use:

# fsck.vfat -r /dev/hda1

Para que ele faça um exame de superfície, marcando os setores defeituosos, use a opção “-at”, como em:

# fsck.vfat -at /dev/hda1

Finalmente, se você estiver usando uma partição formatada em XFS, comece com o:

# xfs_check /dev/hda1

Ele vai indicar os problemas encontrados. Para realmente corrigi-los, rode o:

# xfs_repair /dev/hda1

Assim como no caso do reiserfsck, todo o processo é automático. Ao contrário do EXT2, tanto o ReiserFS quanto o XFS são sistemas de arquivos muito complexos, por isso qualquer intervenção manual só aumentaria a possibilidade
de destruir tudo. Apesar disso, ambos incluem algumas opções avançadas, que podem ser especificadas no comando. Você pode dar uma olhada dentro dos manuais: “man reiserfsck” ou “man xfs_repair”.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X