Partitioning (Português)
O particionamento de disco rígido é uma divisão de seu espaço disponível em seções que possam ser acessadas de maneira independente. Um disco rígido inteiro pode ser alocado em uma única partição, ou múltiplas podem ser feitas para casos como em dual-booting, manter uma partição exclusiva para swap ou para separar dados de maneira lógica como arquivos de áudio e vídeo.
As informações necessárias são gravadas em um esquema de tabela de partição que pode ser MBR ou GPT.
Tabelas de partições são criadas e modificadas usando uma de diversas ferramentas, a qual deve ser compatível com o esquema da tabela de partição escolhido. Ferramentas disponíveis estão listadas na seção #Ferramentas de particionamento.
Uma vez criada, uma partição deve ser formatada com um sistema de arquivos apropriado antes que arquivos possam ser gravados nela.
Tabela de partição
parted /dev/sda print
ou fdisk -l /dev/sda
, onde /dev/sda
é um nome de dispositivo de bloco.Há dois principais tipos de tabelas de partição disponíveis. Eles são descritos abaixo nas seções #Master Boot Record (MBR) e #Tabela de Partição GUID (GPT) juntos com uma discussão sobre como escolher um deles. Uma terceira alternativa, a menos comum, é usar um disco sem nenhuma partição, a qual também está discutida.
Master Boot Record
O Master Boot Record (MBR) são os primeiros 512 bytes de um dispositivo de armazenamento. Contém um gerenciador de boot de sistema operacional e a tabela de partições do dispositivo de armazenamento. Desempenha um papel fundamental no processo de inicialização em sistemas BIOS. Veja Wikipedia:Master boot record#Disk partitioning para conhecer a estrutura do MBR.
- O MBR não fica localizado dentro de uma partição; mas sim no primeiro setor do dispositivo (fisicamente a trilha 0), antes da primeira partição.
- O setor de boot presente em um dispositivo sem partição ou com uma partição individual é chamado de volume boot record (VBR), ao invés de MBR.
Master Boot Record (código de inicialização)
Os primeiros 440 bytes do MBR são a área do código de inicialização. Em sistemas BIOS, ela usualmente contém o primeiro estágio do carregador de inicialização. Este código pode ser armazenado em backup, restaurado ou apagado usando dd.
Master Boot Record (tabela de partição)
Na tabela de partição MBR (também conhecida como tabela de partição MS-DOS) há três tipos de partições:
- Partição primária
- Partição estendida
- Unidade lógica
Partições primárias podem ser inicializadas e são limitadas a quatro por disco ou volume RAID. Se a tabela de partição MBR requerer mais do que quatro partições, então uma das partições primárias deve ser substituída por uma partição estendida contendo uma unidade lógica ou mais dentro dela.
Partições estendidas podem ser pensadas como contêineres para unidades lógicas. Um disco rígido não pode conter mais do que uma partição estendida. A partição estendida também é contada como uma partição primária, então se um disco possuir uma partição estendida, somente outras três partições primárias serão possíveis (isto é, três partições primárias e uma partição estendida). O número de unidades lógicas residentes dentro de uma partição estendida é ilimitado. Um sistema executado em dual-boot com Windows irá necessitar que o Windows esteja dentro de uma partição primária.
Um esquema bem comum é criar partições primárias de sda1 até sda3 seguidas por uma partição estendida sda4. As unidades lógicas em sda4 são numeradas como sda5, sda6, etc.
Tabela de Partição GUID
Tabela de Partição GUID (GPT) é um esquema de particionamento que é parte da especificação Unified Extensible Firmware Interface; utiliza Identificadores Únicos Globalis (GUIDs), ou UUIDs no universo Linux, para definir partições e tipos de partição. Foi desenvolvido para suceder o esquema de particionamento Master Boot Record.
No início de uma tabela de partição GPT no disco, há um Master Boot record protetivo (PMBR) que protege a GPT de softwares maliciosos. Este MBR protetivo, assim como um MBR comum, possui uma área de código de inicialização a qual pode ser usada para inicializar sistemas usando esquemas BIOS/GPT em bootloaders que suportarem.
Escolhendo entre MBR e GPT
Tabela de Partição GUID (GPT) é uma alternativa moderna de método de particionamento criada para substituir o antigo Master Boot Record (MBR). GPT possui algumas vantagens sobre o MBR, o qual data de tempos do MS-DOS. Com os recentes desenvolvimentos de ferramentas de formatação, é fácil obter performance e confiabilidade iguais tanto para GPT como para MBR.
Alguns pontos a serem considerar na escolha:
- Para dual-boot com Windows (ambos 32-bit e 64-bit) usando um sistema BIOS, será necessário escolher o esquema MBR.
- Para dual-boot com Windows 64-bit usando o modo UEFI ao invés de BIOS, será necessário usar o esquema GPT.
- Se estiver instalando em hardware antigo, especialmente em laptops antigos, considere escolher MBR seu BIOS pode não suportar (mas veja abaixo como contornar isso).
- Se estiver particionando um disco de 2 TiB ou mais, será necessário usar o esquema GPT.
- É recomendável sempre usar GPT para inicializar sistemas UEFI, já que algumas implementações UEFI não suportam inicializar MBR.
- Se nenhuma das condições acima se aplicarem, será possível escolher livremente entre GPT e MBR. Uma vez que GPT é mais moderno, é recomendável usá-lo neste caso.
Algumas vantagens do GPT sobre o MBR são:
- Fornece GUID de disco e GUID de partição (PARTUUID) exclusivos para cada partição - uma boa prática de referenciar partições e discos para o sistema de arquivos.
- Fornece um nome de partição independente do sistema de arquivos (PARTLABEL).
- Número arbitrário de partições - depende do espaço alocado para a tabela de partições - Não necessita de partições estendidas e unidades lógicas. Por padrão, a tabela de partições GPT contém espaço para definir até 128 partições. Entretanto, se for desejável definir mais partições, é possível alocar mais espaço para a tabela de partições (atualmente apenas gdisk é reconhecido por suportar esse recurso).
- Utiliza LBA de 64-bits para armazenar números de setores - permite endereçar discos de até 2 ZiB. O MBR é limitado a endereçar até 2 TiB de espaço por dispositivo.
- Armazena um cabeçalho de backup e uma tabela de partição no fim do disco que auxiliam na recuperação no caso destas serem danificadas.
- Recurso de somas de verificação CRC32 para detectar erros e corrompimento do cabeçalho e da tabela de partições.
A seção de #Ferramentas de particionamento contém uma tabela indicando quais ferramentas estão disponíveis para criar e modificar tabelas GPT e MBR.
Disco sem partição
Um disco sem partição, também conhecido como superfloppy refere-se a um dispositivo de armazenamento sem uma tabela de partição, tendo um sistema de arquivos ocupando o dispositivo de armazenamento inteiro. O setor de boot presente em um disco sem partição é chamado de volume boot record (VBR).
Particionamento Btrfs
Btrfs pode ocupar um dispositivo de armazenamento inteiro e substituir os esquemas de particionamento MBR ou GPT. Veja as instruções em Btrfs#File system on a single device para detalhes.
Esquema de partição
Não há regras estritas para particionar um disco rígido, embora o guia geral a seguir possa ser seguido. Um esquema de particionamento de disco é determinado por vários razões como flexibilidade desejada, velocidade, segurança, bem como limitações impostas pelo espaço em disco disponível. É essencialmente uma preferência pessoal. Se pretende fazer dual-boot com Arch Linux e um sistema operacional Windows, veja Dual boot com Windows.
- Sistemas UEFI requerem uma ESP, ou partição de sistema EFI.
- Sistemas BIOS que são particionados com GPT requerem uma partição de inicialização BIOS se GRUB for o gerenciador de boot usado.
Partição raiz simples
Este esquema é o mais simples e deve ser suficiente para a maioria dos casos. Um arquivo swap pode ser criado e facilmente redimensionado conforme necessário. Isto usualmente faz sentido de ser feito considerando uma partição /
simples e posteriormente se desejar separar outras em casos específicos como RAID, encriptação, uma partição de mídia compartilhada, etc.
Partições discretas
Separar um diretório como uma partição permite selecionar diferentes sistemas de arquivos e opções de montagem. Em casos como o de partições de mídia, elas também podem ser compartilhados entre sistemas operacionais.
A seguir, há alguns exemplos de esquemas que podem ser usados ao fazer um particionamento, e as subseções seguintes detalham um pouco diretórios os quais podem ter sua própria partição separada e seu ponto de montagem relativo a /
. Veja file-hierarchy(7) para uma descrição completa do conteúdo destes diretórios.
/
O diretório raiz é o topo da hierarquia, o ponto onde o principal sistema de arquivos é montado e de cada outro sistema de arquivos reside. Todos os arquivos e diretórios aparecem sob o diretório raiz /
, mesmo se estiverem armazenados em outros dispositivos físicos. O conteúdo do sistema de arquivos raiz deve ser adequado para inicializar, restaurar, recuperar e/ou reparar o sistema. Portanto, alguns diretórios sob /
não são candidatos para partições separadas.
A partição /
ou partição raiz é necessária e também a mais importante. As demais partições podem ser substituídas por ela.
/boot
) devem estar na mesma partição de /
ou montados no mesmo espaço de usuário inicial da initramfs. Estes diretórios essenciais são: /etc
e /usr
[1]./
tradicionalmente contém o diretório /usr
, o qual pode crescer significativamente à medida em que novo software for instalado. 15–20 GiB devem ser suficientes para a maioria dos usuários com modernos discos rígidos. Se planejar armazenar um arquivo de swap aqui, precisará de um tamanho de partição maior.
/boot
O diretório /boot
contém as imagens do kernel e ramdisk, bem como o arquivo de configuração do gerenciador de boot. Também armazena os dados que são usados antes mesmo de o kernel começar a executar programas no espaço de usuário. /boot
não é necessário na execução normal do sistema, apenas durante o processo de inicialização e durante atualização do kernel (quando as imagens do ramdisk precisam ser recriadas).
- Uma partição
/boot
separada é somente necessária se o seu gerenciador de boot não for capaz de acessar o diretório/boot
que reside dentro de/
. Por exemplo, se o gerenciador de boot não suportar o sistema de arquivos ou se seu diretório/
estiver em um dispositivo de bloco empilhado (por exemplo, RAID via software, um volume criptografado ou um LVM) e se o gerenciador de boot não tiver drivers que suportem. Veja Processo de inicialização do Arch#Gerenciador de boot para mais informações sobre pré-requisitos e capacidades de gerenciadores de boot. - Se estiver inicializando um gerenciador de boot UEFI que não possuir drivers para outros sistemas de arquivos, é recomendável montar a partição de sistema EFI em
/boot
. Veja Partição de sistema EFI#Montar a partição para mais informações.
Um tamanho sugerido para /boot
é 200 MiB a menos que esteja usando uma partição de sistema EFI como /boot
, neste caso, no mímimo 260 MiB são recomendados.
/home
O diretório /home
contém arquivos de configuração, caches, dados de aplicativos e arquivos de mídia específicos do usuário.
Separar /home
permite que /
seja reparticionada separadamente, mas note que será possível reinstalar Arch com /home
intocada mesmo se não estiver separada - basta que os diretórios de outros níveis sejam removidos, e então pacstrap poderá ser executado.
Não se deve compartilhar diretórios de usuários entre diferentes distribuições, porque elas usam versões de software incompatíveis entre si. Invés disso, considere compartilhar uma partição de mídia ou ao menos usar diferentes diretórios dentro da partição /home
. O tamanho desta artição varia.
/var
O diretório /var
armazena dados de spool em diretórios e arquivos, dados administrativos e de acesso, cache do pacman, etc. É usada, por exemplo, para cache e registro,
e portanto é frequentemente alvo de operações de leitura e escrita. Mantendo-a em uma partição separada evita esgotar o espaço disponível devido a logs enormes.
Ela existe para que seja possível montar /usr
como somente-leitura. Tudo que, historicamente, foi gravado dentro de /usr
e que é escrito durante a operação do sistema (com exceção de instalação e manutenção de software) deve residir em /var
.
/var
contém muitos arquivos pequenos. A escolha de um tipo de sistema de arquivos deve considerar isso se uma partição exclusiva for usada./var
irá conter, entre outros dados, o cache do pacman. Manter estes pacotes é útil no caso de alguma atualização causar instabilidade, exigindo um downgrade para um pacote mais antigo arquivado. O cache do pacman irá aumentar à medida em que o sistema crescer e for atualizado, mas pode seguramente ser limpo se espaço se tornar um problema. 8–12 GiB em um sistema desktop deve ser suficiente para /var
, dependendo da quantidade de software instalado.
/data
Pode-se considerar montar uma partição /data
para armazenar diversos dados compartilhados entre usuários. Usar a partição /home
para este propósito também é válido. O tamanho desta partição pode variar.
Swap
Uma partição swap fornece uma memória que pode ser usada como memória RAM virtual. Um arquivo swap deve ser uma opção considerada também, como eles não tem nenhuma sobrecarga de performance em relação a manter uma partição separada com este propósito, mas são muito mais fáceis de redimensionar. Uma partição swap pode potencialmente ser compartilhada entre sistemas operacionais, desde que a hibernação não seja utilizada.
Historicamente, a regra geral para o tamanho da partição swap era alocar duas vezes a quantidade de memória física (RAM) instalada. Como os computadores tem ganhado cada vez maiores capacidades de memória, esta regra está defasada. Por exemplo, um desktop médio com até 512 MiB de RAM, a regra de 2× é usualmente adequada; se uma quantidade de memória RAM suficiente (mais de 1024 MiB) está disponível, é possível ter uma partição ou arquivo swap de menor tamanho.
Para usar hibernação (também referida como suspensão ao disco) é recomendado que seja criada uma partição ou arquivo swap com o tamanho da RAM. Apesar do kernel tentar compactar a imagem de suspensão ao discopara preencher o tamanho do espaço reservado para swap, não há garantia de que será bem-sucedido caso o espaço de swap for significativamente menor do que o tamanho da RAM. Veja Power management/Suspend and hibernate#Hibernation para mais informações.
Exemplos de leiaute
Os exemplos a seguir usam /dev/sda
como exemplo de disco com /dev/sda1
como sua primeira partição. O esquema de nomeamento do dispositivo de bloco poderá ser diferente se estiver particionando um disco NVMe (por exemplo, /dev/nvme0n1
com partições iniciando em /dev/nvme0n1p1
), um catão SD ou disco eMMC (por exemplo /dev/mmcblk0
com partições começando em /dev/mmcblk0p1
). Veja Arquivo de dispositivo#Nomes de dispositivos de bloco para mais informações.
Leiaute de exemplo UEFI/GPT
Ponto de montagem no sistema instalado | Partição | GUID e tipo de partição | Atributos da partição | Tamanho sugerido |
---|---|---|---|---|
/boot ou /efi
|
/dev/sda1
|
C12A7328-F81F-11D2-BA4B-00A0C93EC93B : Partição de sistema EFI
|
260 MiB | |
/
|
/dev/sda2
|
4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 : Linux x86-64 root (/)
|
23–32 GiB | |
[SWAP]
|
/dev/sda3
|
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F : Linux swap
|
Mais de 512 MiB | |
/home
|
/dev/sda4
|
933AC7E1-2EB4-4F13-B844-0E14E2AEF915 : Linux /home
|
Restante do dispositivo |
Leiaute de exemplo BIOS/MBR
Ponto de montagem no sistema instalado | Partição | ID e tipo de partição | Sinalizador de inicialização | Tamanho sugerido |
---|---|---|---|---|
/
|
/dev/sda1
|
83 : Linux
|
Sim | 23–32 GiB |
[SWAP]
|
/dev/sda2
|
82 : Linux swap
|
Não | Mais de 512 MiB |
/home
|
/dev/sda3
|
83 : Linux
|
Não | Restante do dispositivo |
Leiaute de exemplo BIOS/GPT
Ponto de montagem no sistema instalado | Partição | GUID e tipo de partição | Atributos da partição | Tamanho sugerido |
---|---|---|---|---|
Nenhum |
/dev/sda1
|
21686148-6449-6E6F-744E-656564454649 : Partição de inicialização BIOS1
|
1 MiB | |
/
|
/dev/sda2
|
4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 : Linux x86-64 root (/)
|
2 : BIOS inicializável
|
23–32 GiB |
[SWAP]
|
/dev/sda3
|
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F : Linux swap
|
Mais de 512 MiB | |
/home
|
/dev/sda4
|
933AC7E1-2EB4-4F13-B844-0E14E2AEF915 : Linux /home
|
Restante do dispositivo |
- Uma partição de inicialização BIOS somente é necessária ao usar GRUB para inicializar um disco GPT em um sistema BIOS. Esta partição não tem qualquer relação com
/boot
, e sequer deve ser formatada com um sistema de arquivos, nem mesmo montada.
Ferramentas
Ferramentas de particionamento
Os programas a seguir são usados para criar e/ou manipular tabelas de partições de dispositivos e partições. Veja os artigos nos links para os comandos exatos a serem usados.
Esta tabela irá ser útil para escolher o utilitário de sua necessidade:
MBR | GPT | |
---|---|---|
Scripts de diálogo | fdisk parted |
fdisk gdisk parted |
Modo texto interativo | cfdisk | cfdisk cgdisk |
Não interativo | sfdisk parted |
sfdisk sgdisk parted |
Gráfico | GParted gnome-disk-utility partitionmanager |
GParted gnome-disk-utility partitionmanager |
fdisk
fdisk e seus utilitários estão descritos no artigo fdisk.
GPT fdisk
gdisk e seus utilitários estão descritos no artigo gdisk.
-
GPT fdisk (gptfdisk)
- gdisk(8) – Manipulador de Tabela de partições GUID (GPT) interativo.
- cgdisk(8) – Variante do gdisk baseada na biblioteca Curses.
- sgdisk(8) – Variante do gdisk.
GNU Parted
Este grupo de ferramentas está descrito no artigo GNU Parted.
- GNU Parted — Ferramenta de particionamento via terminal.
- GNOME Disks — Utilitário de gerenciamento de discos para GNOME.
- GParted — Editor de partições GTK para gerenciar graficamente suas partições de disco.
- KDE Partition Manager — Programa utilitário do KDE para gerenciar dispositivos de disco, partições e sistemas de arquivos.
Backup
- fdisk pode criar um backup da tabela de partições. Veja fdisk#Backup and restore partition table.
- GPT fdisk pode criar um backup binário contendo o MBR protetivo, o cabeçalho principal da GPT e uma cópia da tabela de partições. Veja GPT fdisk#Backup and restore partition table.
Recuperação
- gpart — Um utilitário que descobre o conteúdo de uma tabela de partições MBR destruída. Sua utilização está explicada no manual do gpart(8).
- GPT fdisk — Uma ferramenta de particionamento que pode restaurar o cabeçalho primário da GPT (localizada no início do disco) a partir do cabeçalho secundário da GPT (localizado no fim do disco) ou vice-versa.
- TestDisk — Um utilitário que suporta recuperação de partições perdidas em ambos MBR e GPT.
Alinhamento de partição
fdisk, gdisk e parted lidam com alinhamento automaticamente. Veja GNU Parted#Check alignment caso deseje verificar o alinhamento após o particionamento.
Para certas unidades, o formato avançado pode ser capaz de fornecer melhor desempenho de alinhamento.
Suporte à GPT do kernel
A opção CONFIG_EFI_PARTITION
na configuração do kernel ativa o suporte a GPT (apesar do nome, EFI PARTITION). Esta opção deve ser compilada no kernel e não compilada como um módulo carregável. É necessária mesmo em discos GPT que são utilizados para armazenamento de dados e não para inicialização do sistema. É ativada por padrão em todos kernel oficialmente suportados pelo Arch. No caso de um kernel personalizado, ative esta opção com o parâmetro CONFIG_EFI_PARTITION=y
.
Truque para BIOS antigos inicializarem a partir de GPT
Alguns sistemas baseados em BIOS antigos (produzidos antes de 2010) tentam processar o setor de inicialização e recusam-no se ele não contiver uma partição inicializável MBR. Isto é um problema se for necessário usar GPT neste disco, porque do ponto de vista do BIOS, ele contém somente uma partição MBR não inicializável do tipo ee
(isto é, uma partição MBR protetiva). É possível marcar a partição protetiva MBR como inicializável usando fdisk -t mbr /dev/sda
, e isto irá funcionar em alguns sitemas BIOS. Entretanto, a especificação UEFI proíbe a partição protetiva MBR de ser inicializável, e sistemas baseados em UEFI irão interferir nisso, mesmo quando configuradas no modo legado de inicialização. Então, isso importa caso deseje criar um flash drive USB baseado em GPT que deveria inicializar tanto em sistemas UEFI como sistemas BIOS antigos que insistem em procurar uma partição MBR inicializável. Não é possível solucionar este problema usando ferramentas como fdisk ou gdisk, mas é possível criar uma partição MBR falsa com uma adequada entrada para ambos os tipos de BIOS manualmente, com uma sequência correta de bytes.
O comando a seguir irá sobrepor a segunda partição MBR e adicionar uma partição inicializável do tipo 0 (isto é, como espaço não utilizado), cobrindo somente o primeiro setor do dispositivo. Isto não vai interferir com a GPT ou com a primeira entrada partição MBR que normalmente contém uma partição MBR protetiva.
# printf '\200\0\0\0\0\0\0\0\0\0\0\0\001\0\0\0' | dd of=/dev/sda bs=1 seek=462
O resultado final será algo como:
# fdisk -t mbr -l /dev/sda
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors Disk model: ST3250820AS Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/sda1 1 488397167 488397167 232.9G ee GPT /dev/sda2 * 0 0 1 512B 0 Empty Partition table entries are not in disk order.
Veja também
- Wikipedia:pt:Particionamento de disco
- Wikipedia:pt:Prefixo binário
- Understanding Disk Drive Terminology
- What is a Master Boot Record (MBR)?
- Página de Rod Smith sobre What's a GPT? e Booting OSes from GPT
- Make the most of large drives with GPT and Linux - IBM Developer
- Windows and GPT FAQ da Microsoft
- Partition Alignment (com exemplos)