você está aqui: Home  → Arquivo de Mensagens

Fazendo backup e recuperando a MBR e tabela de partições

Colaboração: Carlos E. Morimoto

Data de Publicação: 20 de Junho de 2005

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 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 (reiserfs,ext3, ntfs, etc.).

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

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 os 66 bytes da tabela de particionamento sejam subscritos 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ê vai poder recuperar tudo caso ocorra qualquer eventualidade. Para isso, 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". Se o seu HD estivesse instalado na IDE secundária (como master), ele seria visto pelo sistema como "/dev/hdc". Basta indicar a localização correta no comando.

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 particionamento for pro espaço, você pode dar boot com o CD do Kurumin e regravar o backup com o comando:

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

Lembre-se que o backup vai armazenar a tabela de particionamento atual. Sempre que você reparticionar o HD, não se esqueça de atualizar o backup.

Caso o pior aconteça, a tabela de particionamento seja perdida e você não tenha backup, ainda existe uma esperança. O gpart é capaz de recuperar a tabela de partição e salvá-la de volta no HD na maioria dos casos. Você pode executá-lo dando boot pelo CD do Kurumin.

Você pode baixá-lo no: http://www.stud.uni-hannover.de/user/76201/gpart/#download

Baixe o "gpart.linux" que é o programa já compilado. Basta marcar a permissão de execução para ele:

  # chmod +x gpart.linux

No Kurumin você pode instala-lo pelo apt-get: apt-get install gpart

Execute o programa indicando o HD que deve ser analisado:

  # ./gpart.linux /dev/hda 

(ou simplesmente "gpart /dev/hda" se você tiver instalado pelo apt-get)

O teste demora um pouco, pois ele precisará ler o HD inteiro para determinar onde começa e termina cada partição. No final ele exibe um relatório com o que encontrou:

  Primary partition(1)
     type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)
     size: 3145mb #s(6442000) s(63-6442062)
     chs:  (0/1/1)-(1023/15/63)d (0/1/1)-(6390/14/61)r
  Primary partition(2)
     type: 131(0x83)(Linux ext2 filesystem)
     size: 478mb #s(979964) s(16739730-17719693)
     chs:  (1023/15/63)-(1023/15/63)d (16606/14/1)-(17579/0/62)r
  Primary partition(3)
     type: 130(0x82)(Linux swap or Solaris/x86)
     size: 478mb #s(979896) s(17719758-18699653)
     chs:  (1023/15/63)-(1023/15/63)d (17579/2/1)-(18551/3/57)r

Se as informações estiverem corretas você pode salvar a tabela no HD usando o parâmetro "-W":

  # gpart -W /dev/hda /dev/hda 

Veja que é preciso indicar o HD duas vezes. Na primeira você indica o HD que será vasculhado e em seguida em qual HD o resultado será salvo. Em caso especiais, onde você tenha dois HDs iguais por exemplo, você pode gravar num segundo HD, com em: "gpart -W /dev/hda /dev/hdc"

O gpart não é muito eficiente em localizar partições extendidas (hda5, hda6, etc.) em boa parte dos casos ele só vai conseguir identificar as partições primárias (hda1, hda2, hda3 e hda4). Nestes casos, você pode usar o cfdisk ou outro programa de particionamento para criar manualmente as demais partições (apenas crie as partições e salve, não formate!). Se você souber indicar os tamanhos aproximados, principalmente onde cada uma começa, você conseguirá acessar os dados depois.


Gostou da dica? Conheça outros trabalhos do autor



 

 

Veja a relação completa dos artigos de Carlos E. Morimoto

Opinião dos Leitores

Sérgio
09 Abr 2012, 23:35
A pouco tempo, havia conseguido recuperar um HD-Externo usando o Gerenciamento de Disco do Windows-XP, porem no próprio gerenciador fui formata-lo e criar uma partição unica e primaria no disco... somente para salvar meus backups. E acidentalmente nem sei como, mas apaguei a tabela e o HD não aparece mais no sistema e nem no Gerenciamento de Disco. A Bios o reconhece e até na inicialização do boot ele é reconhecido e acredito então que tenha solução, usei o Windows Data Lifeguard Diagnostics que tbm o reconhece para verificar a situação e lá diz que a capacidade do disco é zero, achei o seu artigo interessante e vou fazer o teste.

Mas tenho uma duvida, usando o Ubuntu, consigo o mesmo resultado?

Obrigado desde já, pela dica!
Amanda
22 Jun 2011, 21:21
Artigo bacana =)
Mas o testdisk é muito melhor que o gpart.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script