Recuperado a MBR e tabela de partições

Ao comprar um novo HD, você precisa primeiro formatá-lo antes de poder instalar qualquer sistema operacional. Existem vários programas de particionamento, como o qtparted, gparted, cfdisk e outros.

Os programas de particionamento salvam o particionamento na tabela de partição, gravada no início do HD. Esta tabela contém informações sobre o tipo, endereço de início e final de cada partição. Depois do particionamento, vem a formatação de cada partição, onde você pode escolher o sistema de arquivos que será usado em cada uma (NTFS, EXT3, FAT32, ReiserFS, etc.).

Ao instalar o sistema operacional, é gravado mais um componente: o gerenciador de boot, responsável por carregar o sistema operacional durante o boot.

Tanto o gerenciador de boot quanto a tabela de particionamento do HD são salvos no primeiro setor do HD (a famosa trilha MBR), que contém apenas 512 bytes. Destes, 446 bytes são reservados para o setor de boot, enquanto os outros 66 bytes guardam a tabela de partição.

Ao trocar de sistema operacional, você geralmente subscreve a MBR com um novo gerenciador de boot, mas a tabela de particionamento só é modificada ao criar ou deletar partições. Caso, por qualquer motivo, os 66 bytes da tabela de particionamento sejam sobrescritos ou danificados, você perde acesso a todas as partições do HD. O HD fica parecendo vazio, como se tivesse sido completamente apagado.

Para evitar isso, você pode fazer um backup da trilha MBR do HD. Assim, você pode recuperar tudo caso ocorra qualquer eventualidade. Para fazer o backup, dê boot usando um live-cd, logue-se como root e use o comando:

# dd if=/dev/hda of=backup.mbr bs=512 count=1

O comando vai fazer uma cópia dos primeiros 512 bytes do “/dev/hda” no arquivo “backup.mbr” (salvo no diretório atual). Lembre-se de substituir o “hda” pelo dispositivo correto do HD, que você pode conferir usando o Gparted.

Você pode salvar o arquivo num disquete ou pendrive, mandar para a sua conta do gmail, etc. Caso no futuro, depois da enésima reinstalação do Windows XP, vírus, falha de hardware ou de um comando errado a tabela de particões for pro espaço, você pode dar boot com o live-cd e regravar o backup com o comando:

# dd if=backup.mbr of=/dev/hda

Claro que, no mundo real, quase ninguém faz backup da tabela de partições, o que nos leva ao Testdisk, uma ferramenta “sem preço” para recuperar partições acidentalmente deletadas, ou restaurar tabelas de partições corrompidas.

Lembre-se de que o Testdisk é capaz de recuperar partições apenas enquanto as informações não são subscritas. Se você acabou de apagar a sua partição de trabalho, é bem provável que consiga recuperá-la, mas se o HD já tiver sido reparticionado e formatado depois do acidente, as coisas ficam muito mais complicadas. Sempre que um acidente acontecer, pare tudo e volte a usar o HD só depois de recuperar os dados.

O Testdisk permite recuperar desde partições isoladas (incluindo as extendidas), até toda a tabela de partições, caso o HD tenha sido zerado. Ele suporta todos os principais sistemas de arquivos, incluindo FAT32, NTFS, EXT2, EXT3, ReiserFS, XFS, LVM e Linux Raid.

A página oficial é a http://www.cgsecurity.org/testdisk.html onde, além da versão Linux, você encontra versões para Windows, DOS e até para o Solaris. Todas utilizam a mesma interface, e possuem os mesmos recursos, de forma que você pode simplesmente escolher qual utilizar de acordo com a situação.

Se você tiver uma máquina Windows disponível, pode instalar o HD com a tabela de partições danificada como HD secundário e rodar a versão Windows do Testdisk. Em outros casos, pode ser mais rápido dar boot usando um live-CD e rodar a versão Linux do Testdisk, usando a própria máquina onde o HD está instalado, sem precisar removê-lo. O Link de download do programa é o: http://www.cgsecurity.org/wiki/TestDisk_Download.

Ao rodar sob o Linux, o programa pode ser chamado diretamente através do terminal, enquanto ao rodar sob o Windows, os executáveis abrem uma janela do DOS. Em ambos os casos, você pode executar o programa diretamente, depois de descompactar o arquivo. Não é necessário instalar.

No caso da versão Windows, você só precisa descompactar o arquivo .zip e clicar sobre o “testdisk_win.exe”:

Ao baixar a versão Linux, você obtém um arquivo .tar.bz2, que precisa ser descompactado usando o comando “tar -jxvf”, como em:

$ tar -jxvf testdisk-6.6.linuxstatic.tar.bz2

Acesse agora a pasta “testdisk-x.x/linux” (onde o x-x é a versão baixada) e logue-se como root, usando o comando “su -” e execute o comando “./testdisk_static”, como em:

$ cd testdisk-*/linux
$ su –
# ./testdisk_static

Além da versão “genérica”, disponível para download, o Testdisk pode ser (na maioria dos casos) instalado através do gerenciador de pacotes. Nos derivados do Debian, você pode instalá-lo via apt-get:

# apt-get install testdisk

Neste caso, o comando para executá-lo depois de instalado é apenas “testdisk”.

Outra observação é que muitos live-CDs trazem o testdisk pré-instalado, incluindo o Kurumin (a partir da versão 6.0), versões recentes do Knoppix (http://www.knoppix.com/), PLD (http://www.pld-linux.org/) e Ultimate Boot CD (http://www.ultimatebootcd.com).

Vamos a um exemplo prático de como recuperar duas partições deletadas “acidentalmente”. Onde o cfdisk está mostrando “Free Space” existem, na verdade, as partições “/dev/hda2” e “/dev/hda3”, que removi previamente:

Ao ser aberto, o Testdisk começa detectando os HDs instalados, permitindo que você selecione em qual deles o teste deve ser realizado.

Ele é multiplataforma, por isso ele pergunta sob qual plataforma está sendo executado na opção seguinte. A menos que você esteja usando um Mac, uma workstation Sun ou um Xbox, responda sempre “[Intel] Intel/PC partition” (a opção default). Esta opção indica que você está usando um micro PC. O “intel”, no caso, indica a plataforma (Intel i386), não tem nada a ver com o fabricante do processador usado.

Na tela inicial, selecione o HD que será analisado, acesse a opção “Analyse” e em seguida “Proceed“, para iniciar a varredura do disco.

O Testdisk verifica a tabela de partições atual e em seguida pesquisa em todos os setores onde podem existir informações sobre outras partições que não constam na tabela principal.

Veja que, apenas com o teste rápido, ele já conseguiu localizar as duas partições que haviam sido deletadas:

Pressionando a tecla “P” você pode ver os dados dentro da partição, para ter certeza que os arquivos estão lá. Nos raros casos onde ele localize a partição, mas identifique incorretamente o sistema de arquivos, use a opção “T” para indicar o correto.

Depois de checar se o particionamento detectado está correto, pressione “Enter” mais uma vez e você chega à tela final, onde pode salvar as alterações, usando a opção “Write“. Reinicie o micro e monte a partição para checar os dados.

Caso a lista não exiba a partição que você está procurando, use a opção “Search” no lugar do Write. Isto ativa o teste mais longo, onde ele vasculha todos os setores do HD em busca de partições deletadas. Este segundo teste demora alguns minutos e, em um HD com bastante uso, pode retornar uma longa lista de partições que foram criadas e deletadas durante a vida útil do HD. Nesse caso, preste atenção para recuperar a partição correta.

Todas as partições listadas aqui aparecem com o atributo “D”, que significa que a partição foi deletada. Para recuperar uma partição, selecione-a usando as setas para cima/baixo e use a seta para a direita para mudar o atributo para “*” (se ela for uma partição primária e bootável, como o drive C: no Windows), “P” se ela for uma partição primária ou “L” se ela for uma partição lógica. Lembre-se de que, no Linux, as partições de 1 a 4 são primárias e de 5 em diante são extendidas.

É possível também adicionar uma partição manualmente, caso você saiba os setores de início e final, mas isso raramente é necessário.

Pressione “Enter” mais uma vez e ele mostra uma tela de confirmação, com a tabela de particionamento alterada que será salva no disco. Use o “Write” para salvar ou volte à tela inicial para começar novamente em caso de erros.

Tenha em mente que o tamanho da partição é reportado de acordo com o número de setores de 512 bytes. Uma partição de 5 GB, por exemplo, tem pouco mais de 10 milhões de setores.

Depois de recuperar qualquer partição, é importante checá-la usando o utilitário apropriado, para que qualquer problema dentro da estrutura do sistema de arquivos seja corrigido.

Outro programa para recuperar a tabela de partições, desta vez comercial, é o PTDD (Partition Table Doctor), disponível no http://www.ptdd.com/. Ele é mais limitado que o Testdisk em diversos aspectos, e é capaz de recuperar apenas partições FAT, NTFS e EXT, enquanto o Testdisk oferece suporte a um conjunto mais completo de sistema de arquivos. O PTDD roda apenas sobre o Windows, de forma que você precisa sempre remover o HD a reparar e instalá-lo como slave na máquina Windows com o PTDD instalado. Apesar disso, ele é gráfico e por isso mais fácil de usar, o que o torna a escolha preferida de muitos.


Partition Table Doctor

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X