Saltar para o conteúdo
101 · LPIC-1 (parte 1)

104.1 Criar partições e sistemas de arquivos

TópicoT18ObjetivoCriar e gerenciar partições e sistemas de arquivos em discos rígidosPeso2PáginasLPIC-1 (101) - Version 5.0

Resumo Conciso

Tabelas de Partição

CaracterísticaMBRGPT
Tamanho máximo do disco2 TBSem limite prático
Máximo de partições4 primárias128 (limitado pelo SO)
Tipo de BIOSBIOS (legada)UEFI
Ferramenta principalfdiskgdisk
Código de tipo Linux838300
Código de swap828200

Comandos de Particionamento

ComandoFunção
fdisk /dev/sdaGerenciar partições MBR
gdisk /dev/sdaGerenciar partições GPT
parted /dev/sdaGerenciar partições (MBR e GPT)

Comandos fdisk

ComandoFunção
pImprimir tabela de partição
nCriar nova partição
dRemover partição
FVerificar espaço não alocado
tMudar tipo da partição
lListar códigos de tipo
wGravar alterações no disco e sair
qSair sem salvar

Comandos gdisk

ComandoFunção
pImprimir tabela de partição
nCriar partição
dRemover partição
sReordenar partições
rMenu de recuperação

Comandos parted

ComandoFunção
printObter informações
print devicesListar dispositivos
print freeVer espaço livre
select /dev/sdbMudar de disco
mklabel msdosCriar tabela MBR
mklabel gptCriar Tabela GPT
mkpart PARTTYPE FSTYPE START ENDCriar partição
rm NRemover partição
rescue START ENDRecuperar partição
resizepart N ENDRedimensionar partição

Sistemas de Arquivos

FerramentaSistema de ArquivosNotas
mkfs.ext2/ext3/ext4ext2, ext3, ext4Links para mke2fs
mkfs.xfsXFSAlto desempenho, pacote xfsprogs
mkfs.fat / mkfs.vfatFAT16/FAT32, VFATVFAT = FAT16 + nomes longos
mkfs.exfatexFATAté 16 EB por arquivo
mkfs.btrfsBtrfsCopy-on-write, snapshots, RAID

Parâmetros mke2fs

ParâmetroFunção
-b SIZETamanho do bloco (1024, 2048 ou 4096)
-cVerificar blocos defeituosos (dobro = verificação detalhada)
-d DIRECTORYCopiar conteúdo para raiz do novo FS
-FForçar criação (perigoso; -F -F para dispositivos montados)
-L VOLUME_LABELDefinir rótulo (máx 16 caracteres)
-nSimular criação (teste)
-qModo silencioso
-U IDDefinir UUID (formato 8-4-4-4-12)
-VMostrar versão e sair

Parâmetros mkfs.xfs

ParâmetroFunção
-b size=VALUETamanho do bloco (padrão 4096, mín 512, máx 65536)
-m crc=VALUEHabilitar/desabilitar CRC32c (padrão: habilitado)
-m uuid=VALUEDefinir UUID
-fForçar criação
-l logdev=DEVICELog em dispositivo externo
-l size=VALUETamanho da seção de log
-qModo silencioso
-L LABELRótulo (máx 12 caracteres)

Parâmetros mkfs.fat

ParâmetroFunção
-cVerificar blocos defeituosos
-C FILENAME BLOCK_COUNTCriar imagem de disco
-F SIZETamanho do FAT (12, 16 ou 32)
-n NAMERótulo (máx 11 caracteres)
-vModo detalhado

Parâmetros mkfs.exfat

ParâmetroFunção
-i VOL_IDID do Volume (hex 32 bits)
-n NAMERótulo (máx 15 caracteres)
-p SECTORPrimeiro setor da partição
-s SECTORSSetores físicos por cluster

Btrfs

Para manutenção e verificação de sistemas de arquivos, ver T19 — Manutenção da integridade de sistemas de arquivos.

Comando/FunçãoDescrição
mkfs.btrfsCriar sistema de arquivos
-d single -m singleConcatenação (como RAID0)
-m raid1Espelhamento (RAID1)
btrfs subvolume createCriar subvolume
btrfs subvolume showVerificar subvolume
btrfs subvolume snapshotCriar snapshot
btrfs subvolume snapshot -rSnapshot somente leitura
CompressãoZLIB (padrão), LZO (mais rápido), ZSTD

Partições de Troca

ComandoFunção
mkswap DEVICEConfigurar partição como swap
swapon DEVICEHabilitar troca
swapoff DEVICEDesabilitar troca
dd if=/dev/zero of=myswap bs=1M count=1024Criar arquivo de troca

Permissões recomendadas para swap: 0600, proprietário e grupo root.

Partições Primárias e Estendidas (MBR)

  • Máximo de 4 partições primárias
  • Partição estendida = contêiner para partições lógicas
  • Partição primária necessária para inicialização
  • Linux trata primárias e estendidas da mesma forma

Exercícios Exploratórios

Exercício Exploratório 1 — Lacunas em partições MBR

Enunciado: Considere um disco de 2 GB com uma tabela de partição MBR e o seguinte layout:

bash
Device     Boot   Start     End Sectors  Size Id Type/dev/sdb1          2048 1050623 1048576  512M 83 Linux/dev/sdb3       2099200 3147775 1048576  512M 83 Linux

É possível criar uma partição de 600 MB nele? Por quê?

Não, pois não há espaço contíguo suficiente. A primeira pista de que tem algo "errado" é a lista de dispositivos: temos /dev/sdb1 e /dev/sdb3, mas não /dev/sdb2. Então, algo está faltando. Em seguida, precisamos ver onde uma partição termina e onde a outra começa. A partição um termina no setor 1050623, e a partição 2 no 2099200. Há uma "lacuna" de 1048577 setores. Como cada setor tem 512 bytes, o total seriam 536.871.424 bytes. Dividindo por 1024, obtemos 524.288 Kilobytes. Dividimos por 1024 novamente e obtemos… 512 MB. Esse é o tamanho da "lacuna".

Se o disco tem 2 GB, resta então um máximo de 512 MB após a partição 3. Mesmo que no total haja cerca de 1 GB não-alocado, o maior bloco contíguo tem 512 MB. Portanto, não há espaço para uma partição de 600 MB.

Exercício Exploratório 2 — Reduzir partição com parted

Enunciado: Em um disco em /dev/sdc, temos uma primeira partição de 1 GB contendo cerca de 256 MB de arquivos. Usando parted, como podemos reduzi-la para que tenha somente espaço suficiente para os arquivos?

Essa operação teria várias etapas. Primeiro, encolhemos o sistema de arquivos usando resize2fs. Ao invés de especificar o novo tamanho diretamente, podemos usar o parâmetro -M para que ele fique "grande o bastante":

bash
resize2fs -M /dev/sdc1

Em seguida, redimensionamos a própria partição com o parted usando resizepart. Como se trata da primeira partição, podemos pressupor que ela começa em zero e termina em 241 MB:

bash
parted) resizepart 1 241M

Exercício Exploratório 3 — Erro ao criar swap

Enunciado: Imagine que você tem um disco em /dev/sdb e deseja criar uma partição swap de 1 GB no início dele. Assim, usando parted, você cria a partição com mkpart primary linux-swap 0 1024M. A seguir, você habilita o swap (troca) nesta partição com swapon /dev/sdb1, mas obtém a seguinte mensagem de erro: swapon: /dev/sdb1: read swap header failed. O que deu errado?

Você criou uma partição do tipo correto (linux-swap), mas lembre-se de que o mkpart não cria um sistema de arquivos. Você esqueceu de configurar a partição como espaço de troca com mkswap antes de usá-la.

Exercício Exploratório 4 — Recuperar partição excluída

Enunciado: Ao longo desta lição, você experimentou alguns comandos no parted mas, por engano, excluiu a 3ª partição do seu disco rígido. Você sabe que ela vinha depois de uma partição UEFI de 250 MB e de uma partição de troca de 4 GB, e tinha 10 GB de tamanho. Qual comando você pode usar para recuperá-la?

Não entre em pânico, você tem todas as informações necessárias para recuperar a partição. Basta usar rescue e fazer as contas. Você tinha 250 MB + 4096 MB (41024) antes, então o ponto inicial deve ser em torno de 4346 MB. Juntando com 10.240 MB (101024) de tamanho, ela deve terminar em 14.586 MB:

bash
parted) rescue 4346m 14586m

Pode ser preciso dar um pouco de "folga" ao rescue, começando um pouco antes e terminando um pouco depois, dependendo da geometria do seu disco.

Exercício Exploratório 5 — Transformar partição em swap com fdisk

Enunciado: Imagine que você tenha uma partição não utilizada de 4 GB em /dev/sda3. Usando fdisk, qual seria a sequência de operações para transformá-lo em uma partição swap ativa?

Primeiro, altere o tipo de partição para "Linux Swap" (82), grave suas alterações no disco e saia. Depois, use mkswap para configurar a partição como área de troca. Em seguida, use swapon para habilitá-la.