Particionamento GPT do HD com o gdisk

GPT gdisk, Globally Unique Identifier (GUID) Partition Table (GPT), é um programa para particionar discos duros de qualquer tamanho e absolutamente necessário para discos que excedem 2TB em tamanho. As partições criadas emm SSDs (ou em discos rígidos que não têm setores de 512 bytes) com gdisk são sempre correctamente alinhadas .

Uma das vantagens principais do particionamento com GPT é não haver necessidade de partições primárias ou lógicas ( específicas e necessárias quando se usa MBR) e não haver qualquer limite no número de partições num disco ( embora gdisk reserve para o efeito apenas espaço para 128 partições).

Contudo o uso de GPT em discos ou pen USB/SSD de pequeneo tamanho ( por exemplo 8GB ) não é recomendado, em especial, se vão ser utilizados frequentemente para transferir ficheiros entre sistemas operativos diferentes.

Notas importantes

Os termps UEFI (Unified Extensible Firmware Interface) e EFI (Extensible Firmware Interface) vão ser utilizados aleatóriamente mas possuem ambos o mesmo significado.

GPT discos para data

Alguns sistemas operativos não suportam discos GPT para data. Por favor consulte a respectiva documentação.

GPT discos para data são possíveis para sistemas de linux em 32 e em 64 bits.

Arranque de disco GPT

Discos com duplo e triplo arranque (boot) com Linux, BSD e Apple são suportados usando o modo EFI em 64 bit.

O arranque dual usando discos com GPT com Linux e MS Windows é possível desde que o MS Windows OS possa fazer o arranque de um disco particionado com GPT usando o modo UEFI em 64 bit,.

Ferramentas de particionamento gráfico com suport de GPT

Além do gdisk (baseado na consola) também 'gparted' e 'partitionmanager' fornecem uma interface gráfica com suport para o particionamento GPT. Contudo gdisk é preferível para evitar anomalias indesejáveis causadas pelos programas gráficos. Apesar de tudo 'Gparted - gparted' e 'KDE Partition Manager - partitionmanager', (entre outros), são excelentes ferramentas para fornecer uma representação gráfica do particionamente efectuado.

Leitura altamente recomendada:

Como particionar um HD usando o gdisk para uso num sistema Linux

Aprender os comandos básicos do gdisk como m para regressar ao menu principal, d , n , p e t , entre outros, os principais commandos necessários quando se usa o gdisk para particionar um disco pelo que vale a pena "treinar" numd disco de "teste".
IMPORTANTE quando usar o commando "n":

Ao usar o commando n, é necessário pressionar <Enter> para definir o número da partição e depois novamente <Enter> para aceitar o sector de começo antes de entrar o tamanho que deseja para a partição. Por exemplo:

Command (? for help):  n  
Partition number (2-128, default 2):  2 
First sector (34-15728606, default = 411648) or {+-}size{KMGTP}: 
Last sector (411648-15728606, default = 15728606) or {+-}size{KMGTP}: +6144M

Exemplos de particionamento usando GPT

Adapte conforme as suas necessidades:

  1. Criação de uma partição de arranque, (presupondo que o disco não vai ser sómente data e que necessita de ter poder iniciar o sistema)
  2. Criação de uma partição para swap, (presupondo que o disco não vai ser sómente data e que necessita de ter poder iniciar o sistema)
  3. Criação de partições para o linux
  4. Criação de partições para data

Nota: O próximo exemplo usa uma pen USB para efeitos de demonstração dos passos necessários e como tal não é exaustivo.

os passos

Se necessitar de saber o nome do disco, use fdisk para o determinar: (são necessários privilégios de root para todas as actividades relacionadas com o particionamento e formatação das partições):

fdisk -l

fdisk mostrar-lhe-á todos os discos e possívelmente incluirá a lista das partições existentes, mas nós só vamos necessitar do nome do disco qualquer que sejam as partições existentes nele. Supondo, por exemplo que se trata de sdb então vamos lançar gdisk com:

gdisk /dev/sdb

A primeira mensagem é uma chamada de atenção se o disco não usa GPT ou se se tratar de um disco novo sem uma tabela de partições:

GPT fdisk (gdisk) version 0.7.2
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):

Se o gdisk encontrou um disco com uma tabela de partições MBR sem GPT, então uma mensagem de chamada de atenção é mostrada. Isto é propositado para assustar o utilizador no caso de ter utilizado um disco errado e impedir que acidentalmete outros discos de arranque MBR sejam destruidos.

Entrando ? vai-lhe mostrar a lista dos comandos, (os comandos coloridos são os comandos de ajuda e documentação):

Command (? for help):  ? 
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Para verificar que está a utilizar o disco desejado verifique a lista actual de partições entrando para isso p .

Command (? for help):  p 
Disk /dev/sdb: 16547840 sectors, 7.9 GiB This example is using an 8GB stck
Logical sector size: 512 bytes
Disk identifier (GUID): 0267952D-9B06-4B10-A648-B83684786910
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 16547806
Partitions will be aligned on 2048-sector boundaries
Total free space is 16547773 sectors (7.9 GiB)
Number  Start (sector)    End (sector)  Size       Code  Name

A coluna Code mostra o tipo da partição e a coluna Name contém uma designação da partição que pode ser modificada livremente.

Removendo a tabela de partiçóes

Caso o disco já possua uma tabela de partições você vai precisar de a remover para definir a nova tabela (GPT) de partições:

command (? for help):  d 

Para o arranque usando GPT-EFI ou GPT-BIOS

Should booting a GPT disk be a requirement, there are 2 options to format the boot sector of a GPT disk.

The options are:

ou

arranque utilizando EFI

A BIOS precisa de oferecer a opção EFI, esta estar ativada como capay de arranque.

Neste caso você vai precisar de uma primeira partição formatada com o sistema FAT como Partição "EFI System Partition" (tipo EF00 ). Esta partição vai ser utilizada para conter os "botlaoders" dos diferentes sistemas. Ao instalar o "aptosid" ignore esta partição nas escolhas do instalador. M "bootloader" para o arranque do aptosid será instaldo na partição do sistema EFI e pode ser encontrada em /efi/aptosid . Esta partição vai ser montada em /boot/efi se você deixar a opção "montar todas as partições" ativada.

Criar a partição EFI

Type n para addicionar uma partição nova e utilize para ela um espaçp equivalente a +200M .

Command (? for help):  n 
Partition number (1-128, default 1):  1 
First sector (34-16547806, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-16547806, default = 16547806) or {+-}size{KMGTP}:  +200M 
Current type is 'Linux filesystem'

Entre L para obter a lista dos códigos das partições:

Hex code or GUID (L to show codes, Enter = 8300):  L 
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8300 Linux filesystem      8301 Linux reserved      
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a800 Apple UFS             a901 NetBSD swap         
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated 
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot          
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline  
af03 Apple label           af04 AppleTV recovery      be00 Solaris boot        
bf00 Solaris root          bf01 Solaris /usr & Mac Z  bf02 Solaris swap        
bf03 Solaris backup        bf04 Solaris /var          bf05 Solaris /home       
bf06 Solaris alternate se  bf07 Solaris Reserved 1    bf08 Solaris Reserved 2  
bf09 Solaris Reserved 3    bf0a Solaris Reserved 4    bf0b Solaris Reserved 5  
c001 HP-UX data            c002 HP-UX service         ef00 EFI System          
ef01 MBR partition scheme  ef02 BIOS boot partition   fd00 Linux RAID

user ef00 para criar a partição UEFI:

Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed system type of partition to 'EFI System'

Partição de arranque BIOS

Criando uma partição de arranque de BIOS

Se o seu sistema não suporta UEFI, você pode utilizar uma partição de arranque de BIOS (escolha typo EF02) não formatada. Ao instalar aptosid instale o grub no MBR. Grub reconhecerá esta partição e vai utilizá-la para o bootloader

Type n to add a new partition and +200M to give the bootloader a size. (The reason to make it +200M,compared with conventional thinking of +32M, is to have in place an EFI sized partition should you ever need to change the disk to EFI booting).

Use n para adicionar uma partição nova e atribua-lhe um tamanho de +200M . (A única razão para usar este tamanho é para não ter problemas na eventualidade de mais tarde querer utilizar o disco para fazer o arranque do system em modo UEFI ( com outra placa mãe ou depois de um BIOS upgrade.).

Command (? for help):  n 
Partition number (1-128, default 1):  1 
First sector (34-16547806, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-16547806, default = 16547806) or {+-}size{KMGTP}:  +200M 
Current type is 'Linux filesystem'

Escolha ef02 para criar uma partição de arranque para a BIOS:

Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed system type of partition to 'BIOS boot'

Importante: A partição para arranque por BIOS não deve ser formatada

Criando uma partição de swap

A reserva e criação de uma partição para o swap não deve ser menosprezada em especial no caso de máquinas portáveis (laptop ou netbook) pois a sua existência pode ser vital em especial se o utilizador vai querer usar a possibiladate de "suspende para disco". O tamanho do swap deverá ser no minimo igual á memória (RAM) presente no sistema.

Type n to add a new partition and +2G, (or, +2048M) to give the swap partition a size witha type code of 8200 . An example of this would look like this:

Use n para adicionar uma partição nova, e use +2G, (ou, +2048M) para criar uma partição com 2GB de tamanho ( depende da quantidadae de memória existente no seu sistema) e usando para o tipo da partição o codigo 8200 . Por exemplo:

Command (? for help):  n  
Partition number (2-128, default 2):  2 
First sector (34-15728606, default = 411648) or {+-}size{KMGTP}: 
Last sector (411648-15728606, default = 15728606) or {+-}size{KMGTP}: +2048M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):  8200 
Changed type of partition to 'Linux swap

Criação de uma partição para data

Use n para adicionar uma partição nova con o tamanho que deseja XXXG. Para tipo da partição use 8300 . Por exemplo +4G:

Partition number (3-128, default 3):  3 
First sector (34-15728606, default = 4605952) or {+-}size{KMGTP}: 
Last sector (4605952-15728606, default = 15728606) or {+-}size{KMGTP}: +4G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem

Repita o processo o número de vezes que desejar para criar as partições que pretende.

As this example is a stick it may be wise to make an Any OS Data partition, witha type code of 0700, otherwise give it the code for a Linux filesystem (8300):

Neste exemplo utilizando uma USB pen é aconselhável utilizar uma partição do tipo Any OS Data , usando 0700, ou então utilize o tipo de uma partição para o Linux 8300):

Command (? for help):  n 
Partition number (4-128, default 4):  4 
First sector (34-15728606, default = 12994560) or {+-}size{KMGTP}: 
Last sector (12994560-15728606, default = 15728606) or {+-}size{KMGTP}: +1300M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):  0700 
Changed type of partition to 'Microsoft basic data'

Para examinar as partições criadas:

Command (? for help):  p 
Disk /dev/sdx: 15728640 sectors, 7.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F409CFD3-6DDC-4551-BBC5-85DC218C1352
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15728606
Partitions will be aligned on 2048-sector boundaries
Total free space is 73661 sectors (36.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          411647   200.0 MiB   EF00  Boot
   2          411648         4605951   2.0 GiB     8200  Swap
   3         4605952        12994559   4.0 GiB     8300  Linux File System
   4        12994560        15656959   1.3 GiB     0700  Any OS Data

Se desejar pode atribuir a cada partição uma descrição usando o commando c . Por exemplo:

Command (? for help):  c 
Partition number (1-4):  4 
Enter name:  Descriptive name of your choosing

O commando w vai escrever todas as mudanças efectuadas enquanto que o commando q fechará o gdisk sem as salvaguardar:

Command (? for help):  w 

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N):  y 
OK; writing new GUID partition table (GPT).
The operation has completed successfully.

Formatando as partições

"gdisk" cria apenas partições pelo que vai ser sempre (quase sempre) necessário formatá-las, por isso tome nota do número das diferentes partições (se for necessário pode usar o comando p para recordar as partições). Usando no nosso exemplo /dev/sdb

gdisk /dev/sdb
Command (? for help):  p 

Utilize q para fechar gdisk e regressar à linha de comando # poderemos então formatar as partições.

Se criou uma partição ef02 BIOS boot partition não a formate, se a primeira partição for ef00 EFI System então formate-a com VFAT:

 mkfs -t vfat /dev/sdb1

Para as partições do Linux por exemplo /dev/sda3:

 mkfs -t ext4 /dev/sdb3

Para as partições do tipo 'Any OS Partition', (possívelmente so necessárias para pen USB utilizadas em mais de um sistema operativo):

 mkfs -t vfat /dev/sdb4

formatar a partição do swap:

mkswap /dev/sdb2

ativar o swap use:

swapon /dev/sdb2

Verifique que o swap é reconhecido, usando o comando:

swapon -s

Estes commandos funcionam da mesma maneira como com uma tabela de partições no MBR.

è absolutamente necessário reiniciar o sistema para que as partições e o sistema de ficheiros seja reconhecido e registado no kernel.

Depoir do re-início você está pronto para efetuar a instalação do aptosid ou utilizar o seu disco com a tabela de partições GPT.

Comandos avançados do gdisk

Antes de salvaguardar as sua mudanças, pode verificar que não há problemas flagrantes na tabela de partições. Para isso utilize o comando v:

Command (? for help):  v 
No problems found. 0 free sectors (0 bytes) available in 0
segments, the largest of which is 0 sectors (0 bytes) in size

Neste exemplo, o disco está completamente alocado a uma partição e não há problemas latentes. No caso de existir espaço livre, existirem partições sobreadjacentes ou qualquer problema com a tabela principal de partições ou um backup deta o "gdisk" daria notícia do mesmo. A principal utilização do comando v é ajudar a identificar problemas provenientes de corrupção de data.

Se foram detectados alguns problemas, você pode corrigi-los com a ajuda das mais variadas opções que o "gdisk" oferece, por exemplo no recovery & transformation menu , ao qual pode aceder usando r :

Command (? for help):  r 

recovery/transformation command (? for help): ?
b	use backup GPT header (rebuilding main)
c	load backup partition table from disk (rebuilding main)
d	use main GPT header (rebuilding backup)
e	load main partition table from disk (rebuilding backup)
f	load MBR and build fresh GPT from it
g	convert GPT into MBR and exit
h	make hybrid MBR
i	show detailed information on a partition
l	load partition data from a backup file
m	return to main menu
o	print protective MBR data
p	print the partition table
q	quit without saving changes
t	transform BSD disklabel partition
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Um terceiro menu , experts menu , pode ser ativado por meio do comando x em qualquer dos menu main menu ou recovery & transformation menu.

recovery/transformation command (? for help): x

Expert command (? for help): ?
a       set attributes
c       change partition GUID
d       display the sector alignment value
e       relocate backup data structures to the end of the disk
g       change disk GUID
i       show detailed information on a partition
l       set the sector alignment value
m       return to main menu
n       create a new protective MBR
o       print protective MBR data
p       print the partition table
q       quit without saving changes
r       recovery and transformation options (experts only)
s       resize partition table
v       verify disk
w       write table to disk and exit
z       zap (destroy) GPT data structures and exit
?       print this menu

A maior parte destes comandos têm que ser utilizados cuidadosamente. O uso incorrecto pode "confundir" algumas ferramentas de particionar discos. Por exemplo, o comando z detroi todas as struturas GPT o que deverá ser efetuado se vocẽ quer utilizar um disco inicialmente particionado usando GPT utilizando um outro esquema de particionamento.

Falando de um modo geral as opções no menu recovery & transformation e no menu experts só deverão ser usados depois de ler atentamente a documentação do "gdisk". Se você tiver necessidade de utilizar estes menus é aconselhável efectuar um backup da tabela de partições num ficheiro externo utilizando o comando b antes de efectuar quaisquer modificações. Deste modo é sempre possível reconstruir a tabela de partições original a partir do backup.

Fontes de informação:

GPT fdisk Tutorial by Roderick W. Smith

Windows Hardware Developer Center

Content last revised 15/08/2011 1155 UTC