Particionado: fdisk, gdisk, parted, MBR vs GPT

Introducción

Particionar un disco consiste en dividirlo en regiones independientes, cada una con su propio sistema de archivos. La tabla de particiones puede ser MBR (legado, hasta 2 TB, máximo 4 primarias) o GPT (moderna, hasta 8 ZB, hasta 128 particiones). Para discos nuevos usar siempre GPT.

MBR vs GPT


# MBR (Master Boot Record)
# - Tabla de particiones en los primeros 512 bytes del disco
# - Máximo 4 particiones primarias (o 3 primarias + 1 extendida con lógicas)
# - Tamaño máximo de disco: 2 TB
# - Compatible con BIOS legacy
# - Herramienta: fdisk

# GPT (GUID Partition Table)
# - Tabla de particiones al inicio y al final del disco (backup)
# - Hasta 128 particiones (sin distinción primaria/extendida)
# - Tamaño máximo: 8 ZiB (prácticamente ilimitado)
# - Requiere UEFI (aunque funciona en BIOS con BIOS boot partition)
# - Herramienta: gdisk o parted
          

fdisk — Particionado MBR (y GPT básico)

fdisk es interactivo. Los cambios no se escriben al disco hasta pulsar w. Pulsar q descarta todos los cambios.


# Abrir fdisk en un disco (requiere root)
fdisk /dev/sdb

# Comandos dentro de fdisk:
# m  → mostrar ayuda
# p  → mostrar tabla de particiones actual
# n  → nueva partición
# d  → eliminar partición
# t  → cambiar tipo de partición
# l  → listar tipos de partición
# w  → escribir cambios y salir
# q  → salir SIN guardar cambios
# g  → crear tabla GPT (borra todo)
# o  → crear tabla MBR (borra todo)

# Ejemplo: crear una partición que ocupe todo el disco
# fdisk /dev/sdb
# > g       (GPT)
# > n       (nueva)
# > 1       (número)
# > Enter   (primer sector por defecto)
# > Enter   (último sector por defecto = todo el disco)
# > w       (guardar)

# Ver el resultado
fdisk -l /dev/sdb
          

gdisk — Particionado GPT

gdisk es el equivalente a fdisk pero optimizado para GPT. Su interfaz es casi idéntica.


# Abrir gdisk
gdisk /dev/sdb

# Comandos principales (misma lógica que fdisk):
# ?  → ayuda
# p  → mostrar tabla
# n  → nueva partición
# d  → eliminar partición
# t  → cambiar tipo (código GUID)
# l  → listar tipos
# w  → escribir y salir
# q  → salir sin guardar

# Tipos de partición comunes en GPT:
# 8300  → Linux filesystem (por defecto)
# 8200  → Linux swap
# 8e00  → Linux LVM
# fd00  → Linux RAID
# ef00  → EFI System Partition
# 8301  → Linux reserved

# sgdisk — versión no interactiva de gdisk (útil en scripts)
# Crear tabla GPT y una partición de todo el disco
sgdisk -Z /dev/sdb                           # borrar tabla existente
sgdisk -n 1:0:0 -t 1:8300 /dev/sdb         # partición tipo Linux
sgdisk -p /dev/sdb                           # mostrar resultado
          

parted — Particionado interactivo y scriptable

parted soporta MBR y GPT, y puede usarse de forma interactiva o directamente desde la línea de comandos (sin menú). Los cambios son inmediatos (no hay paso de confirmación como en fdisk).


# Ver particiones de todos los discos
parted -l

# Modo interactivo
parted /dev/sdb
# (parted) help
# (parted) print
# (parted) mklabel gpt
# (parted) mkpart primary ext4 0% 100%
# (parted) quit

# Modo no interactivo (directo desde shell)
# Crear tabla GPT
parted /dev/sdb mklabel gpt

# Crear partición que ocupe todo el disco
parted /dev/sdb mkpart primary ext4 0% 100%

# Crear partición de tamaño específico (por ejemplo 10 GiB)
parted /dev/sdb mkpart primary ext4 1MiB 10GiB

# Crear segunda partición con el espacio restante
parted /dev/sdb mkpart primary ext4 10GiB 100%

# Activar flag de boot (para partición EFI)
parted /dev/sdb set 1 esp on

# Eliminar partición número 2
parted /dev/sdb rm 2

# Ver resultado
parted /dev/sdb print
          

Actualizar la tabla de particiones en el kernel


# Después de modificar particiones en un disco en uso,
# informar al kernel de los cambios sin necesidad de reiniciar

partprobe /dev/sdb
# o
blockdev --rereadpt /dev/sdb

# Verificar que el kernel reconoce las nuevas particiones
cat /proc/partitions
lsblk /dev/sdb
          

Tipos de partición habituales

  • Linux filesystem (83 en MBR / 8300 en GPT) → partición de datos general
  • Linux swap (82 / 8200) → área de swap
  • Linux LVM (8e / 8e00) → volumen físico LVM
  • Linux RAID (fd / fd00) → miembro de array RAID
  • EFI System Partition (ef00) → arranque UEFI, formato FAT32
  • BIOS boot (ef02) → necesaria en GPT con GRUB en BIOS legacy

Para discos nuevos usar siempre GPT con gdisk o parted. Recordar que parted aplica cambios inmediatamente; con fdisk/gdisk hay un paso de confirmación con w.

Formateo: mkfs.ext4, mkfs.xfs, mkfs.btrfs, mkswap

Índice de la sección

Índice del curso