
Suíte de particionamento de disco para discos GPT e MBR, oferecendo ferramentas interativas e scriptáveis para criar, modificar e reparar tabelas de partição, incluindo correção de estruturas MBR corrompidas.
GPT fdisk (aka gdisk, cgdisk, and sgdisk) e FixParts por Roderick W. Smith, [email protected]
Este pacote inclui o código-fonte de quatro programas relacionados ao particionamento de discos:
gdisk — Este programa é inspirado no Linux fdisk, mas opera em discos com Tabela de Partição GUID (GPT) em vez dos discos MBR (Master Boot Record) que o fdisk modifica. Como tal, o gdisk é uma ferramenta interativa em modo texto para manipular partições, mas não faz nada com o conteúdo dessas partições (geralmente sistemas de arquivos, mas às vezes espaço de swap ou outros dados).
cgdisk — Este programa é inspirado no Linux cfdisk, mas opera em discos GPT em vez dos discos MBR que o cfdisk modifica. Sendo assim, o cgdisk é uma ferramenta em modo texto baseada em curses para manipular partições, ou seja, usa uma interface que depende de teclas de seta e uma exibição dinâmica em vez de letras de comando e exibição rolante como o gdisk.
sgdisk — Este programa é conceitualmente semelhante ao Linux sfdisk e ao FreeBSD gpt, mas seus detalhes operacionais diferem. Permite a manipulação de discos GPT usando opções de linha de comando, sendo adequado para uso em scripts ou por especialistas para executar tarefas específicas que exigiriam vários comandos no gdisk.
fixparts — Este programa, diferentemente dos três anteriores, opera em discos MBR. Ele se destina a corrigir certos problemas que podem ser criados por vários utilitários. Especificamente, pode corrigir partições estendidas com tamanho incorreto e partições primárias localizadas no meio de partições estendidas. Também permite alterar o status de partição primária vs. lógica (dentro dos limites legais no esquema MBR) e fazer algumas outras alterações menores. Não suporta a criação de novas partições; para isso, use fdisk, parted ou outra ferramenta.
Mais detalhes sobre as capacidades dessas ferramentas são fornecidos a seguir.
Todos os quatro programas dependem do mesmo conjunto de código subjacente; diferem apenas em suas interfaces de controle (definidas em gdisk.cc, cgdisk.cc, sgdisk.cc e fixparts.cc, respectivamente) e em qual código de suporte utilizam.
O programa gdisk foi projetado como um programa semelhante ao fdisk (até certo ponto) para discos particionados com GPT, o cgdisk é similarmente um semelhante ao cfdisk, e o sgdisk fornece a maior parte da funcionalidade do gdisk em um programa mais amigável para scripts. Embora o libparted e os programas que o utilizam (GNU Parted, gparted, etc.) ofereçam a capacidade de lidar com discos GPT, eles têm certas limitações que o gdisk supera. Vantagens específicas do gdisk, cgdisk e sgdisk incluem:
A capacidade de converter discos particionados com MBR in-place para o formato GPT, sem perda de dados
A capacidade de converter disklabels BSD in-place para criar partições GPT, sem perda de dados
A capacidade de converter do formato GPT para MBR sem perda de dados (apenas gdisk e sgdisk)
Especificação mais flexível dos GUIDs de código de tipo de sistema de arquivos, que o GNU Parted tende a corromper
Identificação clara do número de setores não alocados em um disco
Uma interface de usuário familiar para usuários antigos do Linux fdisk e cfdisk (apenas gdisk e cgdisk)
O código do boot loader MBR é deixado intacto
A capacidade de criar um MBR híbrido, que permite que sistemas operacionais que não conhecem GPT acessem até três partições GPT no disco (apenas gdisk e sgdisk)
É claro que o GPT fdisk não está isento de limitações. Principalmente, falta-lhe o conhecimento de sistemas de arquivos e os recursos relacionados a sistemas de arquivos do GParted. Não é possível redimensionar o sistema de arquivos de uma partição ou criar uma partição com um sistema de arquivos já existente com o gdisk, por exemplo. Não existe uma versão GUI do gdisk.
O pacote GPT fdisk fornece três arquivos de programa: o gdisk interativo em modo texto, o cgdisk interativo baseado em curses e o sgdisk orientado por linha de comando. Os dois primeiros destinam-se ao uso em particionamento manual de discos ou alteração de detalhes de particionamento; o sgdisk destina-se ao uso em scripts para ajudar a automatizar tarefas como clonagem de disco ou preparação de vários discos para instalação do Linux.
A criação deste programa foi motivada por pedidos de ajuda que vi em fóruns online de usuários que encontraram suas tabelas de partição corrompidas por várias ferramentas de particionamento defeituosas. Embora a maioria dos sistemas operacionais consiga lidar bem com os discos afetados, as ferramentas baseadas em libparted (GParted, parted, a maioria dos instaladores Linux, etc.) tendem a apresentar falhas ao serem apresentadas a esses discos. Normalmente, o sintoma é um disco que parece não conter partições; no entanto, às vezes a ferramenta libparted apresenta partições diferentes daquelas que o sistema operacional vê.
Observei quatro causas desses sintomas, três das quais o FixParts pode corrigir:
Dados GPT antigos — Se um disco é usado como disco GPT e depois reutilizado como disco MBR, os dados GPT podem ser apagados de forma incompleta. Isso acontece se o disco for particionado novamente com fdisk ou o instalador do Microsoft Windows, por exemplo. (Ferramentas baseadas em libparted removem corretamente os dados GPT antigos ao converter do formato GPT para MBR.) O FixParts verifica esse problema quando inicia e oferece a correção. Se você optar por apagar os dados GPT, essa remoção ocorre imediatamente, ao contrário de outras alterações que o programa faz.
Partições estendidas com tamanho incorreto — Algumas ferramentas criam uma partição estendida muito grande, geralmente terminando após o último setor do disco. O FixParts corrige automaticamente esse problema (se você usar a opção 'w' para salvar a tabela de partição).
Partições primárias dentro de uma partição estendida — Alguns utilitários criam ou movem partições primárias para dentro do intervalo coberto pela partição estendida. O FixParts geralmente pode corrigir esse problema transformando a partição primária em uma partição lógica ou alterando uma ou mais partições lógicas em primárias. Essas correções nem sempre são possíveis, pelo menos não sem excluir ou redimensionar outras partições.
Dados RAID residuais — Se um disco é usado em um array RAID e depois reutilizado como disco não RAID, alguns utilitários podem ficar confusos e não conseguir enxergar o disco. O FixParts não pode corrigir esse problema. Você deve destruir os dados RAID antigos ou, possivelmente, remover o pacote dmraid do sistema para corrigir esse problema.
Quando executado, o FixParts apresenta uma interface semelhante ao fdisk, permitindo ajustar tipos de partição (primária, lógica ou omitida), alterar códigos de tipo, alterar o sinalizador de boot e assim por diante. Embora você possa excluir uma partição (omitindo-a), não pode criar novas partições com o programa. Se você está acostumado a particionar discos, especialmente com o Linux fdisk, dois recursos incomuns do FixParts exigem elaboração: