Aproveitar ao Máximo Unidades Grandes com GPT e Linux

Preparando para futuro armazenamento de disco com a Tabela de Partição de GUID

Antes um problema distante, uma barreira importante no armazenamento de disco está se tornando rapidamente uma realidade: o respeitável esquema de particionamento de master boot record (MBR) não pode lidar totalmente com discos maiores que 2TB. Com discos rígidos de 1TB agora comuns e discos de 2TB se tornando disponíveis, indivíduos inovadores estão pensando em alternativas para o esquema de particionamento de MBR. O herdeiro aparente é o GUID Partition Table (GPT). Saiba como se certificar de que seu sistema Linux® esteja totalmente preparado para o futuro do armazenamento de disco.

Roderick W. Smith, Consultant and author

Rod SmithRoderick W. Smith é consultor e autor de mais de dezenas de livros sobre o UNIX e Linux, incluindo o The Definitive Guide to Samba 3, Linux in a Windows World e Linux Professional Institute Certification Study Guide. No momento ele mora em Woonsocket, Rhode Island.



28/Jul/2009

Antes de se envolver em uma busca para substituir seu esquema de particionamento de de disco, é útil revisar as limitações que estão prestes a forçar esta mudança. Entender estes limites—e as ferramentas propostas para superá-los—possibilitará que você julgue com que rapidez você deve abandonar o barco do MBR para o GPT. Isto é particularmente verdadeiro se estiver considerando adotar o GPT antes que seja pressionado por novas aquisições de disco. O GPT oferece vantagens sobre o MBR mesmo em discos menores, mas você deve ponderar essas vantagens em relação às dificuldades de uma mudança.

Entendendo os limites do MBR

O sistema de particionamento de MBR é uma miscelânea de correções de estrutura e dados aplicadas para superar limites antigos. O próprio MBR reside inteiramente no primeiro setor (512 bytes) de um disco rígido. Os primeiros 440 bytes do MBR são dedicados a código: o loader de boot. O BIOS lê este código e o executa quando o computador faz boot.

Seguindo a área de código, o MBR armazena dados em quatro partições, conhecidas como partições primárias. Cada partição é descrita de duas maneiras: usando a notação cylinder/head/sector (CHS) e usando a notação logical block addressing (LBA). A notação CHS é quase uma nota de rodapé histórica atualmente, porque é um número de 24 bits. Isto significa que está limitada a descrever áreas de disco de 8 GB. Os valores LBA de 32 bits permitem tamanhos de 2TB. Esta cobertura de 2TB não é facilmente superada; simplesmente não há nenhum campo não alocado deixado no MBR que possa ser usado para incluir mais bits nos endereços de LBA.

Além do problema de 2TB que aparece indistintamente, o MBR apresenta outras dificuldades. A maior delas é a limitação de quatro partições primárias. Para contornar esta limitação, é possível reservar uma partição primária como um sinalizador substituto (conhecida como uma partição estendida) para manter um número arbitrário de partições adicionais, conhecidas como partições lógicas. Esta é, no entanto, uma solução alternativa ruim que cria seus próprios problemas, tais como dificuldades ao instalar vários sistemas operacionais quando muitos deles requerem muitas partições primárias para si mesmos.

O MBR tem problemas de integridade de dados também. É uma estrutura de dados única que é vulnerável a danos por descuido ou falha de hardware. Além disso, como partições lógicas estão definidas em uma estrutura de lista com links, o dano a uma delas pode bloquear o acesso às partições lógicas restantes. Nenhuma dessas estruturas de dados inclui qualquer forma de capacidade de detecção de erros, portanto, o erro pode ser difícil de se descobrir.


Solução do GPT

A Intel® criou a definição do GPT como parte de sua especificação de Extensible Firmware Interface (EFI) para uma substituição do BIOS (consulte Recursos para obter links para mais informações). Apesar do fato de que o GPT é parte de um padrão que foi feito para substituir o legado BIOS encontrado na maioria dos computadores hoje, é possível usar o GPT mesmo em sistemas baseados em BIOS. Se seu computador já usa EFI, no entanto, este fato é outro adicional à adoção do GPT. Se seu computador usa um legado BIOS ou um EFI ou não, o GPT corrige muitas das limitações de MBR:

  • O GPT usa exclusivamente LBA, portanto, as dores de cabeça com CHS acabaram.
  • Ponteiros de disco têm 64 bits de tamanho, significando que podem manipular discos de até 9.4 x 10^21 bytes (9.4 zettabytes ou 9.4 bilhões de TB) de tamanho.
  • Estruturas de dados críticas do GPT são armazenadas duas vezes no disco: uma vez no começo e de novo no fim. Este comportamento melhora as particularidades da recuperação bem-sucedida em caso de dano de um acidente ou um setor ruim.
  • Valores de cyclic redundancy check (CRC) são computados para estruturas de dados críticas, melhorando as particularidades da detecção de corrupção de dados.
  • O GPT armazena todas as partições em uma única tabela de partição (com backup), então, não há necessidade de partições estendidas ou lógicas. Por padrão, 128 partições são suportadas, embora seja possível alterar o tamanho da tabela de partição se o software de particionamento suportar tais alterações.
  • Considerando que o MBR fornece um código de tipo de partição de 1 byte, o GPT usa um valor de GUID (Globally unique identifier) de 16 bytes para identificar tipos de partição. Em teoria, isto torna os conflitos de tipo de partição menos prováveis; no entanto, na prática, esta rosa já tem alguns espinhos, conforme descreve-se brevemente.
  • O GPT inclui um campo para armazenar um nome de partição legível. É possível usar este campo para nomear seu Linux /home, /usr, /var e outras partições para identificação mais fácil no software de particionamento.

O primeiro setor de disco é reservado para um MBR protetor, que é uma estrutura de dados de MBR legal que define uma única partição do tipo 0xEE (EFI GPT). Em discos de sub-2TB, esta partição deve abranger todo o disco; em discos maiores, ela deve ter 2TB de tamanho. A ideia é proteger o disco do GPT contra dano por utilitários de disco GPT-unaware. Se tais ferramentas olharem para o disco, elas encontrarão um disco do MBR sem espaço livre. (Alguns utilitários de disco podem criar um MBR híbrido, que define até três partições de MBR além da partição do GPT EFI. A ideia é possibilitar um sistema operacional GPT-unaware, tal como a maioria das versões do Windows®, para coexistir em um disco junto das partições do GPT. Esta configuração, no entanto, decididamente não segue o padrão e é muito confusa.)

Como o GPT incorpora um MBR protetor, um computador baseado em BIOS pode fazer boot de um disco do GPT usando um loader de boot armazenado na área de código do MBR protetor, mas o loader de boot e o sistema operacional devem ambos ser GPT-aware. O EFI inclui seu próprio loader de boot, então você pode fazer boot de um disco do GPT em um sistema baseado em EFI.

O problema principal com o GPT é o da compatibilidade: utilitários de disco de nível baixo e sistemas operacionais devem todos suportar GPT. Tal suporte é regularmente comum para o Linux, embora você possa precisar se ater a alguns desses detalhes e alterar algumas das ferramentas que usa para manutenção de disco de nível baixo. Se fizer vários boots em um computador, terá de procurar por suporte do GPT para todos os seus sistemas operacionais.

Benefícios extras da adoção do GPT

O único benefício maior do GPT é, claramente, seu rompimento da barreira de 2TB. Mesmo que não tenha de lidar com discos de 2TB, no entanto, talvez você queira considerar a adoção do GPT. Os CRCs e as estruturas de dados de backup são discutivelmente os benefícios mais importantes de alterar para o GPT em discos sub-2TB. Perder a distinção lógica-primária pode ser importante para alguns usuários também. Infelizmente, muitos dos sistemas operacionais que requerem partições primárias são incapazes de fazer boot a partir de discos do GPT.

Se você administra muitos sistemas Linux ou se espera incluir um disco over-2TB em um futuro não muito distante, talvez queira considerar fazer a instalação de teste com o GPT. Fazer isto antes de ser forçado a fazer, dará a você uma experiência em primeira mão com recursos do GPT bem como com as idiossincrasias de alguns dos utilitários Linux GPT-aware.


Usando o GPT

Se quiser (ou precisar) arriscar-se com o GPT, você deve se preparar. Todas as três classes principais de software requerem suporte de GPT: o kernel, o loader de boot e os utilitários de disco de nível baixo. Se estiver usando o GPT porque está configurando uma RAID array muito grande, também pode precisar procurar no suporte do sistema de arquivo para discos extra-grandes.

Observação: Se estiver instalando o Linux do início e quiser usar o GPT, seu instalador deve fornecer suporte do GPT em todas as três categorias. Se não fornecer, você precisará usar o MBR para pelo menos o disco do boot do sistema ou converter para GPT após instalar o MBR (uma proposição arriscada e tediosa em potencial).

Suporte de Kernel

O kernel Linux deve ser capaz de analisar estruturas de dados do GPT a fim de fornecer acesso às partições que o disco contém. Felizmente, este suporte tem estado presente no Linux. Se compilar seu próprio kernel, certifique-se de verificar o item EFI GUID Partition Support na área Partition Types da configuração dos File Systems , conforme mostrado na Figura 1.

Figura 1. O kernel Linux fornece suporte do GPT, mas ele deve ser ativado quando se compila um novo kernel
Configuração Kernel: Selecione Sistemas de Arquivos, Tipos de Partição, Suporte de partição EFI GUID

Se não você compila seu próprio kernel, fica à mercê de seu provedor de distribuição para ativar este suporte. Felizmente, a maioria faz assim, mas você deveria verificar este detalhe. Se estiver em dúvida, pode usar uma ferramenta de particionamento do GPT-aware para configurar partições do GPT em um disco rígido sobressalente ou um disco removível pequeno, tal como uma unidade flash USB. Se o Linux reconhecer as partições, seu kernel estará configurado adequadamente.

Suporte de loader de boot

O loader de boot é talvez o link mais fraco na cadeia do GPT do Linux. Sistemas Linux geralmente usam o Linux Loader (LILO) ou o Grand Unified Bootloader (GRUB) para fazer boot do kernel. LILO não é GPT-aware, portanto, se seu sistema usa LILO, você terá de alternar para GRUB—e a história com o GRUB é variável.

A versão oficial recente do GRUB tradicional é 0.97. Esta versão do GRUB não é GPT-aware; no entanto, atualizações desta versão com suporte do GPT são comuns, então se instalar o GRUB versão 0.97, talvez seja possível, ou talvez não, fazer boot a partir de discos do GPT. Um arquitetura totalmente nova do GRUB, conhecida como GRUB2, agora está disponível, mas considerada experimental. O GRUB2 inclui suporte do GPT.

Contudo, se quiser usar o GPT, sua melhor aposta é instalar seu GRUB 0.97 de distribuição e esperar que ele inclua as atualizações do GPT. Se não incluir, nem tudo está perdido. É possível fazer boot do Linux SystemRescueCd e reinstalar o GRUB a partir dele. Isto fará com que seu sistema faça boot, presumindo que todo o resto esteja configurado corretamente.

Suporte de utilitários

A terceira área do suporte do GPT são utilitários do sistema. O Linux fornece uma ampla variedade de ferramentas para particionamento de discos de MBR, inclusive fdisk, cfdisk, sfdisk, GNU Parted, o GNOME Partition Editor (GParted) e mais. Muitas dessas ferramentas são GPT-unaware, portanto, se quiser usar o GPT, você terá que usar aquelas que podem manipular a tarefa.

Das ferramentas comuns, apenas aquelas baseadas em libparted—, tal como o GNU Parted ou o GUI GParted de modo de texto—podem manipular o GPT. O programa fdisk e suas variações mostrarão os dados protetores de MBR, possivelmente com um aviso que os dados do GPT foram detectados. Se quiser criar partições do GPT novas em um disco usando GNU Parted, você deve ativar o programa, depois, usar seu mklabel :

Lista 1. Usando Parted para criar partições de disco do GPT
# parted /dev/sdc
GNU Parted 1.7.1
Usando /dev/sdc
Bem-vindo ao GNU Parted! Digite 'help' para visualizar uma lista de comandos.
(parted) mklabel
Tipo novo de rótulo de disco? gpt
(parted)

Neste ponto, você pode começar a criar partições usando os comandos mkpart ou mkpartfs do GNU Parted ou então manipular partições e arquivos de sistema. Quando estiver pronto, poderá usar as ferramentas de gerenciamento de sistema de arquivo do Linux, tal como mkfs, para criar sistemas de arquivo em seu disco. Também é possível criar configurações de logical volume management (LVM) e de RAID o quanto quiser em discos MBR.

Se preferir uma ferramenta de GUI, o GParted fará o serviço. Clique em Device > Set Disklabel para criar uma nova estrutura de dados do GPT. Clique em Advanced, selecione então gpt na lista Select new labeltype , conforme mostrado na Figura 2. Clique em Create para criar suas novas estruturas de dados do GPT. É possível, então, criar novas partições da mesma forma que criaria se fosse manipular um disco de MBR.

Figura 2. Você deve explicitamente configurar o tipo de rótulo do GPT para criar partições do GPT no GNOME Partition Editor
Caixa de diálogo de criação do rótulo GParted

As ferramentas de criação do GPT de ambos o GNU Parted e o GParted são inerentemente destrutivas— se você tiver um disco do MBR, a única maneira de torná-lo um disco do GPT com essas ferramentas é destruir suas partições do MBR existentes. Se quiser converter um disco do MBR no lugar, seria possível procurar no disco do GPT, o qual é uma ferramenta como ofdiskpara manipular partições do GPT. GPT fdisk é muito nova e imatura, entretanto, então você deve usá-la com cuidado.

Poucas particularidades de GNU Parted, GParted e de outras ferramentas de uso libpartedmerecem ser mencionadas. Mais importante, essas ferramentas geralmente criam MBRs protetores sempre que manipulam as estruturas de dados do GPT. Isto significa que elas destroem o loader de boot, então talvez precise reinstalar o GRUB após fazer alterações de partição. Códigos de tipo de partição são manipulados de forma meio estranha; alguns deles são referenciados como sinalizadores. Mais notável, se quiser configurar uma partição para uso em uma configuração LVM ou RAID, precisará fazer isto usando ferramentas de manipulação de sinalizador. Um desses sinalizadores, Microsoft Reserved (msftres), está configurado incorretamente em todas as partições FAT, o que torna a partição inacessível a partir do Windows ou Mac OS X. (GPT fdisk permite corrigir este problema.)

Como você provavelmente está ciente, o Linux emprega uma porção de códigos de tipo de partição de MBR, tais como 0x82 e 0x83, para identificar suas partições de MBR. Códigos GUID similares existem para identificar partições do GPT do Linux. Um aviso importante é que o Linux e o Windows usam a mesma GUID para suas partições de dados. Assim, é impossível diferenciar sistemas de arquivo do Linux e sistemas NTFS ou FAT de suas GUIDs de tabela de partição sozinhos. GNU Parted e GParted procuram por si mesmos no sistema de arquivos para identificar o sistema de arquivos, mas nem todas as ferramentas fazem isso (GPT fdisk não faz, por exemplo). Você deve estar ciente deste fato e talvez usar o campo do nome da partição do GPT para ajudar a diferenciar partições.

Suporte de sistemas de arquivos grandes

Se estiver alternando para o GPT porque está usando uma configuração do RAID muito grande, talvez precise investigar o suporte para tamanhos grandes de sistema de arquivos nos sistemas de arquivos que implementar. A Tabela 1 resume esses limites. (Note que alguns valores variam com opções de particionamento.) Alguns desses valores são bastante grandes e usam sufixos que podem não ser familiares. Um terabyte é de 1024GB; 1 petabyte (PB) é de 1024TB; 1 exabyte (EB) é de 1024 PB e 1 zettabyte (ZB) é de 1024PB.

Tabela 1. Volume do sistema de arquivos e limites de tamanho
Sistema de arquivosTamanho máximo do volumeTamanho máximo do arquivo
Segundo sistema de arquivos estendido (ext2) e terceiro sistema de arquivos estendido (ext3) 16TB2TB
Quarto sistema de arquivos estendido (ext4)1EB16TB
ReiserFS16TB8TB
Journaled file system (JFS)32PB4PB
XFS16EB8EB
Btrfs (em desenvolvimento)16EB16EB

Além do arquivo- e limites de tamanho de volume, há diferenças de desempenho de sistema de arquivos. Este tópico é extremamente complexo, portanto, talvez precise consultar outros que executem instalações similares àquela que está planejando.


Conselho de particionamento do GPT

Algumas preocupações especiais surgem do particionamento de GPT, particularmente se seu computador usa EFI ou se você executa em um ambiente de multi-inicialização:

  • EFI requer que uma partição conhecida como uma EFI System Partition (ESP) esteja presente. O GNU Parted identifica a ESP como se tivesse um sinalizador de boot configurado. A ESP é por volta de 200MB de tamanho normalmente e é formatada para FAT-32. Ela retém drivers que a EFI pode usar durante o processo de boot. Esta partição não é necessária se seu computador usa o BIOS para fazer boot.
  • Muitas ferramentas de particionamento de GPT criam brechas de aproximadamente 128MB após cada partição (a ESP é uma exceção a esta regra). A intenção é que os utilitários do disco possam usar este espaço para ajuda com suas tarefas.
  • Em sistemas Mac OS X, as partições são criadas em tamanhos que são múltiplos de 4KB (normalmente, 8 setores). Este recurso se relaciona a limitações do sistema de arquivos HFS Plus que é usado pelos Macs mais modernos.

É possível seguir estas regras de particionamento ou ignorá-las caso ache necessário. O Linux é suficientemente flexível, de forma que não será incomodado por uma desconsideração dessas regras, a menos que seu computador exija uma ESP para fazer boot.

É possível executar um sistema com uma configuração mesclada MBR-GPT—isto é, é possível ter um disco particionado com MBR e outro particionado com GPT. Assim, se incluir um novo disco acima de 2TB em seu sistema, não precisará mexer em suas partições do disco sub-2TB originais. De fato, provavelmente é mais seguro se não mexer.


Conclusão

GPT é poised para se tornar o padrão para particionamento de disco rígido das limitações de tamanho do MBR. Felizmente, o Linux é bem preparado para esta transação. Embora os usuários do Linux possam ter de desistir de certas ferramentas (LILO e fdisk, por exemplo), outras ferramentas estão disponíveis para substituí-las (versões atualizadas de GRUB e GNU Parted, por exemplo). Entender os requisitos o ajudará a fazer a transição facilmente quando chegar a hora de fazê-la. Você precisará se ater a sua configuração de kernel, sua configuração de loader e os utilitários que usa para criar e gerenciar partições.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

  • Envolva-se com a comunidade My developerWorks; com seu perfil pessoal e página inicial customizada, é possível padronizar o developerWorks para seus interesses e interagir com outros usuários do developerWorks.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=422921
ArticleTitle=Aproveitar ao Máximo Unidades Grandes com GPT e Linux
publish-date=07282009