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.