104.1 Crear particiones y sistemas de archivos - Teoria

1. Dispositivos de bloque en Linux

En Linux, los discos y particiones se representan como archivos especiales de dispositivo en /dev/.

Nomenclatura de dispositivos

DispositivoDescripcion
/dev/sdaPrimer disco SATA/SCSI/USB
/dev/sdbSegundo disco SATA/SCSI/USB
/dev/sda1Primera particion del primer disco
/dev/sda2Segunda particion del primer disco
/dev/nvme0n1Primer disco NVMe
/dev/nvme0n1p1Primera particion del primer disco NVMe
/dev/vdaPrimer disco virtual (KVM/virtio)
/dev/hdaDisco IDE legacy (obsoleto)

Nota para el examen: Los discos SATA usan la nomenclatura sd*, los NVMe usan nvme*n*p*. Las particiones se numeran con sufijos numericos.


2. Esquemas de particionado: MBR vs GPT

2.1 MBR (Master Boot Record)

El MBR se encuentra en los primeros 512 bytes del disco. Es el esquema tradicional.

Caracteristicas:

  • Maximo 4 particiones primarias
  • O bien 3 primarias + 1 extendida (que contiene particiones logicas)
  • Tamano maximo de disco: 2 TB
  • Las particiones logicas empiezan desde el numero 5 (ej: /dev/sda5)

Tipos de particiones MBR:

TipoDescripcion
PrimariaHasta 4 por disco, directamente en la tabla MBR
ExtendidaContenedor para particiones logicas. Solo puede haber 1.
LogicaDentro de la extendida. Numeradas a partir de 5.

Codigos de tipo de particion importantes:

Codigo hexTipo
83Linux (ext2/ext3/ext4, etc.)
82Linux swap
8eLinux LVM
fdLinux RAID autodetect
05Extendida
07NTFS/HPFS
0b / 0cFAT32

2.2 GPT (GUID Partition Table)

GPT es el esquema moderno asociado a UEFI.

Caracteristicas:

  • Hasta 128 particiones (por defecto, ampliable)
  • Sin distincion entre primaria/extendida/logica
  • Tamano maximo de disco: 9.4 ZB (zettabytes)
  • Cada particion tiene un GUID unico
  • Incluye CRC32 para deteccion de errores
  • Mantiene una copia de respaldo de la tabla al final del disco
  • Requiere UEFI para arrancar (aunque puede usarse con BIOS mediante protective MBR)

Dato clave para el examen: GPT no tiene el concepto de particiones extendidas ni logicas. Todas las particiones son iguales.


3. Herramientas de particionado

3.1 fdisk (para MBR, tambien GPT en versiones modernas)

fdisk es la herramienta clasica e interactiva para gestionar particiones MBR.

# Abrir disco para editar
fdisk /dev/sda
 
# Listar particiones de todos los discos
fdisk -l
 
# Listar particiones de un disco especifico
fdisk -l /dev/sda

Comandos internos de fdisk:

ComandoAccion
mMostrar ayuda
pImprimir tabla de particiones
nCrear nueva particion
dEliminar particion
tCambiar tipo de particion
lListar tipos de particion conocidos
wEscribir cambios y salir
qSalir sin guardar
aCambiar flag de arranque (bootable)

Importante: Los cambios NO se aplican hasta que se usa w. Se puede salir sin guardar con q.

3.2 gdisk (para GPT)

gdisk es el equivalente de fdisk para tablas de particiones GPT.

# Abrir disco GPT para editar
gdisk /dev/sda
 
# Listar particiones
gdisk -l /dev/sda

Comandos internos de gdisk:

ComandoAccion
pImprimir tabla de particiones
nCrear nueva particion
dEliminar particion
tCambiar tipo de particion
lListar tipos de particion
wEscribir cambios y salir
qSalir sin guardar
iInformacion detallada de una particion
oCrear nueva tabla GPT vacia

3.3 parted (MBR y GPT)

parted es una herramienta mas avanzada que soporta tanto MBR como GPT. A diferencia de fdisk/gdisk, los cambios se aplican inmediatamente.

# Modo interactivo
parted /dev/sda
 
# Listar particiones
parted /dev/sda print
 
# Crear tabla de particiones GPT
parted /dev/sda mklabel gpt
 
# Crear tabla de particiones MBR
parted /dev/sda mklabel msdos
 
# Crear particion
parted /dev/sda mkpart primary ext4 1MiB 500MiB
 
# Eliminar particion
parted /dev/sda rm 1

Advertencia para el examen: parted aplica cambios de forma inmediata (no espera a un “write”). Esto es una diferencia clave respecto a fdisk y gdisk.


4. Crear sistemas de archivos (mkfs)

4.1 Sintaxis general

mkfs -t tipo /dev/sdXN
# Equivalente a:
mkfs.tipo /dev/sdXN

4.2 mke2fs - Crear sistemas de archivos ext

mke2fs es el comando subyacente que se ejecuta cuando se usa mkfs.ext2, mkfs.ext3 o mkfs.ext4. Permite mayor control sobre los parametros de creacion del sistema de archivos.

# Equivalentes:
mke2fs /dev/sda1                            # Crea ext2 por defecto
mke2fs -t ext4 /dev/sda1                    # Crea ext4 (equivale a mkfs.ext4)
mke2fs -t ext3 /dev/sda1                    # Crea ext3 (equivale a mkfs.ext3)

Opciones principales de mke2fs:

OpcionDescripcion
-t tipoTipo de sistema de archivos (ext2, ext3, ext4)
-nDry-run: muestra lo que haria sin crear el FS (util para planificar)
-b tamanoTamano de bloque en bytes (1024, 2048 o 4096)
-L etiquetaAsignar una etiqueta (label) al sistema de archivos
-N numEstablecer el numero de inodos
-m porcentajePorcentaje de bloques reservados para root (default 5%)
-jCrear con journal (convierte a ext3)
-i bytesRatio bytes/inodo (controla cuantos inodos se crean)
-cVerificar bloques defectuosos antes de crear el FS
-ccVerificacion exhaustiva de bloques defectuosos (lectura/escritura)
# Crear ext4 con etiqueta y bloques de 4096 bytes
mke2fs -t ext4 -b 4096 -L "datos" /dev/sda1
 
# Simular la creacion sin aplicar cambios (dry-run)
mke2fs -n -t ext4 /dev/sda1
 
# Crear ext4 con solo 1% reservado para root (util en discos de datos)
mke2fs -t ext4 -m 1 /dev/sda1
 
# Crear ext4 verificando bloques defectuosos
mke2fs -t ext4 -c /dev/sda1

Para el examen: mke2fs es equivalente a mkfs.ext2/ext3/ext4. La opcion -n (dry-run) es importante para verificar parametros antes de crear el FS. La opcion -b para el tamano de bloque y -L para la etiqueta son las mas preguntadas.

4.3 Sistemas de archivos Linux

ext2

  • Sin journaling
  • Adecuado para particiones pequenas como /boot
  • Rapido en lecturas
mkfs.ext2 /dev/sda1
mkfs -t ext2 /dev/sda1

ext3

  • ext2 + journaling
  • Compatible hacia atras con ext2
  • Mejora la recuperacion tras fallos
mkfs.ext3 /dev/sda2

ext4

  • Sistema de archivos Linux por defecto en muchas distribuciones
  • Soporta volumenes de hasta 1 EB (exabyte)
  • Archivos de hasta 16 TB
  • Extents (mejora el rendimiento con archivos grandes)
  • Journaling mejorado
mkfs.ext4 /dev/sda3
mkfs -t ext4 /dev/sda3

XFS

  • Alto rendimiento, especialmente con archivos grandes
  • No se puede reducir (solo ampliar)
  • Usado por defecto en RHEL/CentOS 7+
  • Excelente journaling
mkfs.xfs /dev/sda4

Btrfs

  • Sistema de archivos moderno con funciones avanzadas
  • Soporta snapshots, compresion, RAID integrado
  • Puede abarcar multiples dispositivos
  • Subvolumenes
mkfs.btrfs /dev/sda5
 
# Crear Btrfs con multiples dispositivos
mkfs.btrfs /dev/sdb /dev/sdc

VFAT (FAT32)

  • Compatible con Windows, macOS, Linux
  • Usado en particiones EFI System Partition (ESP)
  • Limite de archivo: 4 GB
mkfs.vfat /dev/sda6
mkfs -t vfat /dev/sda6
 
# Especificar FAT32 explicitamente
mkfs.vfat -F 32 /dev/sda6

exFAT

  • Version mejorada de FAT sin limite de 4 GB
  • Ideal para medios extraibles grandes
mkfs.exfat /dev/sda7

4.4 Tabla resumen de sistemas de archivos

FSJournalingTamano max volumenTamano max archivoNotas
ext2No32 TB2 TBSin journal, bueno para /boot
ext3Si32 TB2 TBext2 + journal
ext4Si1 EB16 TBDefault en muchas distros
XFSSi8 EB8 EBNo se puede reducir
BtrfsSi (CoW)16 EB16 EBSnapshots, multi-dispositivo
VFATNo2 TB4 GBCompatibilidad universal
exFATNo128 PB16 EBMedios extraibles grandes

5. Gestion del espacio swap

El swap es espacio en disco usado como extension de la RAM cuando esta se agota.

5.1 Crear particion swap

# 1. Crear la particion con fdisk (tipo 82)
fdisk /dev/sda
# -> n (nueva), seleccionar tamano
# -> t (tipo), codigo 82
 
# 2. Formatear como swap
mkswap /dev/sda2
 
# 3. Activar
swapon /dev/sda2
 
# 4. Verificar
swapon --show
# o
cat /proc/swaps
free -h

5.2 Crear archivo swap

# 1. Crear archivo de tamano fijo (ej: 1 GB)
dd if=/dev/zero of=/swapfile bs=1M count=1024
 
# O con fallocate (mas rapido, pero no siempre soportado para swap)
fallocate -l 1G /swapfile
 
# 2. Establecer permisos seguros
chmod 600 /swapfile
 
# 3. Formatear como swap
mkswap /swapfile
 
# 4. Activar
swapon /swapfile

5.3 Hacer swap permanente

Para que el swap persista tras reiniciar, se agrega a /etc/fstab:

/dev/sda2   swap   swap   defaults   0   0
# O con UUID:
UUID=xxxx   swap   swap   defaults   0   0
# O para archivo:
/swapfile   swap   swap   defaults   0   0

5.4 Desactivar swap

# Desactivar una particion/archivo swap especifico
swapoff /dev/sda2
swapoff /swapfile
 
# Desactivar todo el swap
swapoff -a

5.5 Prioridad del swap

Se puede establecer la prioridad del swap (mayor numero = mayor prioridad):

swapon -p 10 /dev/sda2

En /etc/fstab:

/dev/sda2   swap   swap   defaults,pri=10   0   0

6. Puntos clave para el examen

  1. MBR vs GPT: MBR soporta hasta 4 particiones primarias y discos de hasta 2 TB. GPT soporta 128+ particiones y discos enormes.

  2. Codigos de tipo MBR: 82 = swap, 83 = Linux, 8e = LVM.

  3. parted aplica cambios inmediatamente, fdisk y gdisk no (hasta que se ejecuta w).

  4. Nomenclatura de dispositivos: sd* para SATA/SCSI/USB, nvme*n*p* para NVMe, vd* para virtio.

  5. ext4 es el FS por defecto en la mayoria de distribuciones Linux. XFS es el default en RHEL/CentOS 7+.

  6. XFS no se puede reducir, solo ampliar.

  7. Btrfs soporta multiples dispositivos y snapshots nativos.

  8. mkswap formatea, swapon activa, swapoff desactiva.

  9. VFAT/FAT32 se usa para la particion EFI (ESP).

  10. Las particiones logicas siempre empiezan en 5 (sda5, sda6…) independientemente de cuantas primarias haya.


Trampas del examen

Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:

  • parted aplica cambios inmediatamente; fdisk/gdisk no — En fdisk y gdisk, los cambios solo se escriben al ejecutar w. En parted, cada operacion se ejecuta al instante sin confirmacion. El examen puede preguntar cual herramienta requiere precaucion extra.
  • Particiones logicas SIEMPRE empiezan en 5 — Aunque solo haya 1 primaria y 1 extendida, la primera logica es sda5. Las numeros 1-4 estan reservados para primarias/extendida. El examen puede ofrecer sda2 como primera logica.
  • mkfs formatea; NO particionamkfs.ext4 /dev/sda1 crea el sistema de archivos en una particion existente. NO crea la particion. Para particionar se usa fdisk, gdisk o parted. El examen puede confundir ambos pasos.
  • ext2 vs ext3 vs ext4: la diferencia principal es el journaling — ext2 NO tiene journaling; ext3 anade journaling; ext4 anade extents y tamanos mas grandes. tune2fs -j convierte ext2 a ext3. El examen puede preguntar que diferencia ext2 de ext3.
  • XFS no se puede reducir, solo ampliar — A diferencia de ext4, un filesystem XFS no puede reducirse una vez creado. Solo se puede ampliar con xfs_growfs. El examen puede preguntar que limitacion tiene XFS.
  • Codigos de tipo MBR: 82 = swap, 83 = Linux, 8e = LVM — Estos codigos identifican el proposito de la particion. fdisk usa t para cambiar el tipo. El examen puede pedir identificar o asignar estos codigos.
  • /dev/nvme0n1p1 vs /dev/sda1 — Los discos NVMe usan nomenclatura diferente: nvme0 es el controlador, n1 es el primer disco, p1 es la primera particion. El examen puede preguntar la nomenclatura correcta para discos NVMe.
  • La ESP (EFI System Partition) DEBE ser FAT32 — Usar mkfs.vfat o mkfs.fat -F 32. Otros sistemas de archivos no son validos para la ESP. El examen puede ofrecer ext4 como opcion para la ESP.