Origem:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7050
Introdução
Quando compramos um HD novo, a primeira coisa a se fazer é formatá-lo para então instalarmos o sistema operacional desejado. São vários os programas disponíveis de particionamento, como o qtparted, gparted e o cfdisk.
Os programas para particionamento são responsáveis por salvar o particionamento na tabela de partição, gravada no início do HD. É esta tabela que contém as informações sobre o início e o final de cada partição.
Depois do particionamento é necessário fazer a formatação de cada uma das partições, onde podemos escolher o sistema de arquivos que será usado em cada uma delas (reiserfs, ext3, ntfs, etc.).
Ao instalarmos o sistema operacional é gravado mais um componente, o gerenciador de boot, que é responsável por carregar o sistema operacional ao ligarmos o PC.
Tanto o gerenciador de boot como a tabela de particionamento do HD são gravados no primeiro setor do disco, mais conhecido como trilha MBR, que contém apenas 512 bytes. Destes, 446 bytes são reservados para o setor de boot, enquanto os 66 bytes restantes guardam a tabela de partição.
Fazendo backup da MBR
Ao trocarmos de sistema operacional, geralmente subscrevemos a MBR com um novo gerenciador de boot, mas a tabela de particionamento só é modificada ao criar ou deletar partições. Caso os 66 bytes da tabela de particionamento sejam subscritos ou danificados, perdemos o acesso a todas as partições do HD, parecendo que ele está vazio, como que tivesse sido completamente apagado.
Para que isso seja evitado, pode-se fazer um backup da trilha MBR do HD. Assim é possível recuperar tudo casso ocorra alguma eventualidade. Para que isso seja feito, precisamos digitar o seguinte comando:
# dd if=/dev/hda of=backup.mbr bs=512 count=1
O comando irá fazer uma cópia dos primeiros 512 bytes do “/dev/hda” no arquivo “backup.mbr”. Se o seu HD estiver instalado na IDE secundária (como master), ele será visto pelo sistema como “/dev/hdc”. Basta indicar a localização correta no comando. Também é possível salvar o arquivo em uma mídia removível, como disquete ou pendrive, e enviar o arquivo para o seu e-mail.
Recuperando a MBR
Recuperando a MBR através de backup
Caso algum dia a tabela de particionamento lhe deixe na mão, você pode dar o boot com o CD do Kurumin e regravar o backup com o comando:
# dd if=backup.mbr of=/dev/hda
Neste caso, é extremamente importante que sempre que você reparticionar o HD, atualize o arquivo de backup.
Recuperando a MBR sem backup
Caso a tabela de particionamento seja perdida e você não possua um backup, pode ainda haver uma luz no fim do túnel. O gpart é capaz de recuperar a tabela de particionamento e salvá-la de volta no HD na maioria dos casos. Você pode executá-lo dando boot pelo CD do Kurumin. Você também pode baixá-lo no site:
* http://www.stud.uni-hannover.de/user/76201/gpart/#download
Após baixar o gpart.linux, que é o programa já compilado, é necessário marcar a permissão de execução do mesmo:
# chmod +x gpart.linux
No Kurumin você pode instalá-lo pelo apt-get:
# apt-get install gpart
Execute o programa indicando o HD que deve ser analisado:
# ./gpart.linux /dev/hda
O teste demora um pouco, pois ele 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(0×07)(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(0×83)(Linux ext2 filesystem)
size: 478mb #s(979964) s(16739730-17719693)
chs: (1023/15/63)-(1023/15/63)d (16606/14/1)-(1579/0/62)r
Primary partition(3)
type: 130(0×82)(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
Como é possível perceber, precisamos indicar o HD duas vezes. Na primeira, indicamos o HD que será vasculhado e em seguida em qual HD o resultado será salvo. Caso você possua dois HDs iguais, é possível salvar o resultado no segundo HD usando o comando:
# gpart -W /dev/hda /dev/hdc
O gpart não tem muita eficiência quando se trata em localizar partições estendidas (hda5, hda6, etc); em boa parte dos casos ele só consegue identificar as partições primárias (hda1, hda2, hda3 e hda4). Nestes casos, podemos usar o cfdisk ou algum 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 um começa, você conseguirá acessar os dados depois.
Conclusão
Muitas vezes vemos acontecer com nossos amigos ou com nós mesmos de perder um HD devido a alguma falha na trilha MBR. Na maioria das vezes, sem o usuário saber que poderia ter feito um backup, o HD acaba sendo descartado, o que gera custos na aquisição de um novo HD e na perda de dados muitas vezes importantes.
Espero que este artigo seja de alguma importância para os usuários que querem que seus dados estejam sempre a salvo no caso de alguma eventualidade.
Referência
MORIMOTO, C. E. Linux: ferramentas técnicas. Porto Alegre: Sul Editores, 2005.