Convertendo MBR para GPT com gdisk

Esse artigo discute a teoria e mostra (um pouco) da prática da conversão de um disco particionado no esquema MS-DOS (MBR) para um esquema de partições GPT.

[ Hits: 33.794 ]

Por: Perfil removido em 20/02/2015


Conceitos básicos



Apesar de GPT ser parte da especificação (U)EFI, esse esquema de particionamento também pode ser utilizado em sistemas legados, baseados em BIOS-CMOS. Esse artigo é baseado nesse cenário: BIOS-CMOS tradicional, particionamento MS-DOS (MBR) e partições típicas para Linux (0x82 e 0x83). Quaisquer outros cenários não são abordados.

* Use as informações com cuidado, pois destruindo a MBR, irá destruir seu particionamento, com eventual perda de dados.

Segundo Roderick Smith, autor do utilitário gdisk [1], uma das habilidades de seu programa é a capacidade de converter um particionamento MBR (e também o particionamento BSD) em um particionamento GPT. Segundo Roderick, isso ocorre sem danificar o conteúdo das informações e sem perdas de dados.

Uma das razões para converter MBR em GPT, é que o esquema MBR é ineficiente e te limita em relação à quantidade sistemas operacionais que podem ser instalados no disco.

O esquema GPT permite até 128 partições primárias, pois em GPT não há o conceito de partição estendida nem de partições lógicas. O problema para a maioria dos usuários de dual boot é que, quase sempre, eles querem fazer isso envolvendo uma instalação Windows.

Se esse é o seu caso, aviso que nenhum Windows de 32 bits arranca em GPT, e os Windows de 64 bits fazem isso se estiverem usando boot seguro + (U)EFI. Caso Windows, seja um dos seus sistemas atuais, recomendo que você deve se informar melhor antes de fazer esse procedimento. Transformar um particionamento MS-DOS com Windows envolvido pode resultar em um sistema GPT que não inicializa.

Como sabemos, a MBR reside na trilha 0 e no setor 0. A trilha 0 não faz parte do espaço destinado para dados. Assim, temos 63 setores não utilizados na trilha 0 que podem alojar a tabela GPT. Todos os discos modernos utilizam 63 setores por trilha. Os discos com 32 setores são muito antigos - Esteja atento se este é o seu caso, pois talvez GPT não é viável em discos antigos.

Se está interessado em GPT, recomendo a leitura do meu artigo sobre GPT aqui no VOL, antes de continuar:
O tamanho da tabela GPT é de LBA-0 até LBA-34 (não considerando o backup da GPT). Então, a trilha 0 dos discos modernos pode abrigar a estrutura de GPT sem necessidade de formatação. A estrutura de GPT também utiliza o fim do disco como uma área de backup para o cabeçalho e para a tabela de partições. Isso demanda uma reserva de 34 setores (LBA) para criar essa área de segurança no final do disco.

Na maioria dos particionamentos isso não é um problema, pois por questões de alinhamento, sempre sobram setores que não são utilizados para partições. Mas, algumas vezes, discos que são alinhados com 1 MiB entre partições podem impedir a conversão. Se esse é o seu caso, será necessário reduzir o tamanho da última partição liberando espaço para o backup da GPT. Existem vários artigos aqui no VOL que tratam de como reduzir o tamanho de uma partição e não vou entrar neste assunto aqui no artigo.

A construção da GPT a partir da MBR é um processo de extração de dados e construção de novas estruturas, então, fica evidente que uma MBR danificada ou errada (é, isso existe!) resultará em um desastre GPT ou uma GPT inválida. Os valores CHS são ignorados por GPT que utiliza apenas valores LBA.

Se seu computador é movido a carvão e seu disco ainda usa exclusivamente valores CHS para definir a geometria, isso significa que você não pode converter ou pode acabar com um desastre GPT. Discos menores que 8 GiB não podem ser convertidos, pois sempre utilizam o esquema CHS.

Se seu disco está corretamente configurado, então suas partições Linux de dados são do tipo 0x83 e suas partições de SWAP são do tipo 0x82. Se você tem sistemas operacionais como Solaris, FreeBSD ou Windows com partições reservadas, ocultas ou de recuperação, aviso que não será possível converter com segurança e você pode acabar com um GPT desastre. Não me pergunte o que fazer neste caso, eu nem imagino algo melhor que formatar tudo.

A conversão de tipos de partição deve ser revista e ajustada manualmente antes de tentar inicializar seu sistema. Particionamentos que tenham tipos de partição como 0xA5 para FreeBSD e 0xA9 para NetBSD, são quase impossíveis de serem convertidos e dão muito trabalho.

* Para o caso de Solaris e outros Unix, a conversão não é recomendada, a menos que saiba o que está fazendo.

A conversão pode adicionar pequenos espaços (talvez eles já existam!) entre as partições chamados de gaps. Não tente recuperar esses pequenos espaços, além do esforço inútil para poucos kilobytes de espaço em disco isso provavelmente irá danificar o particionamento GPT.

O processo de conversão tentará converter suas partições mantendo o número original da partição em relação a sua nova localização. Por exemplo, se você tem um particionamento com as partições primárias 1 e 3, além de duas lógicas numeradas como 5 e 6, quando terminar a conversão você terá o mesmo número de partições (4 partições) utilizando os números correspondentes agora em formato GPT.

Isso é perfeitamente legal dentro da especificação, entretanto, alguns utilitários (muito espertos!) tentarão modificar sua estrutura GPT, eliminando os gaps entre os números. Se isso acontecer talvez seja necessário o ajuste de /etc/fstab e no seu bootloader (LILO ou GRUB) antes de reiniciar. Então, se não saca nada de LILO ou GRUB dê uma lida antes de se aventurar a converter MBR para GPT.

Algumas pessoas podem se aventurar aqui, pensando: "Ei, se algo der errado eu vi que posso converter uma GPT para MBR novamente".

Sim, é verdade, mas também é verdade que a GPT deve ser válida e funcional, não dá para converter um desastre GPT em MBR. Mas, calma, ainda há esperança! Pois é possível fazer um backup de sua MBR antes de converter e se algo der errado basta copiar os dados de volta como se nada tivesse acontecido. O comando a seguir faz um backup que você deve retirar do disco rígido com um pendrive antes de iniciar o processo (não faz sentido deixar o arquivo no disco!):

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

O comando dd faz uma cópia bit-a-bit do primeiro setor do disco e armazena no arquivo "backup.mbr" que pode ser salvo em um pendrive. Não troque as bolas com os parâmetros "if=" e "of=", ou inutilizará seu sistema de arquivos.

O comando acima, obviamente, só funciona para discos que tem o tamanho físico do setor em 512 bytes. Não me pergunte sobre outros tamanhos de setores físicos como 4.096, pois não tenho discos assim.

Aproveito para dizer que não podemos fazer backup de GPT com o comando dd. Para isso, utilize a opção própria do utilitário gdisk ou outro de seu preferência.

Um backup de dd para uma GPT gera um desastre GPT. Uma GPT também não pode ser apagada com dd, a menos que apague o backup no final do disco também. Esse é um erro comum, o usuário dá um dd para destruir uma GPT e quando reinicia o backup é automaticamente recuperado ou pior o sistema fica com uma MBR válida e um backup de GPT levando a uma situação de erro, onde a pessoa pensa que o disco está danificado, pois não consegue formatar com nenhum sistema operacional.

    Próxima página

Páginas do artigo
   1. Conceitos básicos
   2. A conversão na prática
Outros artigos deste autor

CentOS 5.5 - Instalação enxuta utilizando netinstall

É possível ganhar dinheiro com Software Livre?

expr - Definição e uso do comando

Software Livre - Migração concluída

Instalando o kernel 2.6.13 pré-compilado no Slackware 10.2

Leitura recomendada

Como tornar o Linux mais comercial em pequenas e médias empresas

Porque abandonar o Slackware e usar o Ubuntu

A Microsoft morreu

Insigne GNU/Linux Momentum 5.0 - A distribuição do computador para todos

Ansible, Puppet e Chef

  
Comentários
[1] Comentário enviado por izaias em 20/02/2015 - 20:54h

Artigasso!!!

Não conhecia sequer esse comando "parted" (mostro minhas partições de forma que nunca tinha visto).
VLW Kyetoy !

* Favoritado :)

[2] Comentário enviado por mcnd2 em 24/02/2015 - 23:17h


Ótimo artigo.

Nunca usei partições em GPT.
Até ontem, de quase não resolver o problema que estava no boot do FreeBSD na sdb2 compartilhando o hdd com o Windows Server (que já estava com a tabela de partição como msdos/MBR) na sda, ia me aventurar em criar a tabela de partição em GPT ao padrão freebsd., logo, consegui resolver o problema e não fui a esse 'mundo' para me aventurar, rs!

10 !!!


[3] Comentário enviado por nicolo em 02/03/2015 - 11:40h

Muito bom. Assim eu me animo em comprar discos de 3Tb sem ter que trocar a minha placa mãe.
Artigaço.

[4] Comentário enviado por Michel Noronha em 26/03/2016 - 00:08h

Infelizmente eu cometi esse erro e meu HD esta no formato GPT e agora consigo formatar mais meu HD
Gostaria saber se alguém pode me ajudar a recuperar meu HD.

[5] Comentário enviado por TedKaczynski em 27/11/2016 - 01:35h

" Um backup de dd para uma GPT gera um desastre GPT. Uma GPT também não pode ser apagada com dd, a menos que apague o backup no final do disco também. Esse é um erro comum, o usuário dá um dd para destruir uma GPT e quando reinicia o backup é automaticamente recuperado ou pior o sistema fica com uma MBR válida e um backup de GPT levando a uma situação de erro, onde a pessoa pensa que o disco está danificado, pois não consegue formatar com nenhum sistema operacional."
Curiosamente isso ja aconteceu comigo ... ao instalar e reinstalar o ubuntu no meu notebook com UEFI ..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts