Particionado de dispositivos de almacenamiento, formateo de sistemas de archivos y configuración de particiones swap

Aprender Certificado Fundación Linux en España contenido Técnicos desde Cero en CiberED

Antes de que Linux pueda almacenar archivos en un disco, ese disco debe ser particionado (dividido en secciones lógicas) y cada partición debe ser formateada con un sistema de archivos.

Además, el espacio de swap proporciona memoria virtual al sistema. Dominar estas tres operaciones es esencial para cualquier administrador de sistemas y un pilar del examen LFCS.

4.1. Introducción: preparar el terreno para los datos

En este capítulo recorreremos todo el proceso: desde la identificación del disco hasta el montaje automático pasando por las herramientas de particionado (MBR y GPT) los sistemas de archivos más comunes y la configuración del swap.

4.2. Conceptos fundamentales

4.2.1. Nomenclatura de discos en Linux

Los discos y sus particiones se representan como archivos de dispositivo en /dev/:

  • Discos SATA/SCSI/SAS/USB: sda, sdb, sdc
  • Discos NVMe: nvme0n1, nvme1n1
  • Discos virtuales (Xen/KVM): vda, vdb… o xvda

Las particiones se numeran:

  • sda1 (primera partición del disco sda), sda2, etc.
  • Para NVMe: nvme0n1p1, nvme0n1p2
  • En discos MBR, las particiones 1-4 son primarias/extendidas; las lógicas empiezan en 5.

4.2.2. Esquemas de particionado: MBR vs GPT

MBR (Master Boot Record):

  • Esquema clásico de 32 bits.
  • Límite de 2 TB de tamaño de disco.
  • Máximo 4 particiones primarias. Si se necesitan más, una debe ser extendida y dentro de ella se crean particiones lógicas.
  • La tabla de particiones y el cargador de arranque ocupan el primer sector (512 bytes).

GPT (GUID Partition Table):

  • Parte del estándar UEFI.
  • Soporta discos de hasta 9.4 ZB.
  • Hasta 128 particiones sin necesidad de extendidas/lógicas.
  • Almacena una tabla de particiones de respaldo al final del disco.
  • Incluye CRC para detección de errores.
  • Identifica las particiones por GUIDs únicos además de por etiquetas.

Recomendación: Siempre que sea posible, usa GPT, especialmente en discos >2 TB o sistemas UEFI.

4.2.3. Herramientas de visualización previas

Antes de particionar, hay que identificar el disco correcto con precisión quirúrgica. Un error aquí puede destruir datos.

lsblk                     # vista en árbol de discos y particiones
lsblk -f                  # incluye sistemas de archivos y UUIDs
fdisk -l                  # lista todos los discos y particiones (MBR/GPT)
parted -l                 # igual pero con más detalle en GPT
blkid                     # muestra UUIDs, labels y tipos de FS
cat /proc/partitions      # visión directa del kernel

Atención: comprueba tres veces el dispositivo antes de escribir cambios.

4.3. Particionado con fdisk (MBR y GPT básico)

fdisk es la herramienta clásica para manipular tablas de particiones. Soporta MBR y GPT (desde util-linux moderno).

4.3.1. Iniciar y explorar

fdisk /dev/sdb

Comandos dentro de fdisk:

  • m : ayuda
  • p : imprimir tabla de particiones actual
  • g : crear nueva tabla GPT
  • o : crear nueva tabla MBR (DOS)
  • n : nueva partición
  • d : eliminar partición
  • t : cambiar tipo de partición
  • w : escribir cambios y salir
  • q : salir sin guardar

4.3.2. Crear una tabla MBR con particiones

Ejemplo: disco /dev/sdb, 20 GB, partición primaria de 10 GB y swap de 2 GB.

sudo fdisk /dev/sdb
  1. o (crear tabla DOS vacía)
  2. np (primaria) → 1[Enter] (primer sector por defecto) → +10G
  3. np2[Enter]+2G
  4. t282 (Linux swap)
  5. p para revisar
  6. w para escribir

Después, el kernel debe releer la tabla. Normalmente fdisk lo solicita. Si no, ejecuta partprobe o kpartx -a /dev/sdb.

4.3.3. Crear particiones lógicas (MBR)

Si se necesitan más de 4 particiones en MBR:

  • Crear una partición extendida que ocupe el espacio restante.
  • Dentro de ella, crear particiones lógicas (empezarán en 5).
n → e → [número] → [inicio] → [fin]
n → [lógico] → [tamaño]

4.3.4. Uso de GPT con fdisk

Al usar g en lugar de o, se crea tabla GPT. Las particiones se crean de forma similar pero sin límite de 4 primarias. El tipo de partición se selecciona entre una larga lista de GUIDs (ej. 20 para Linux filesystem, 19 para swap).

4.3.5. Cambiar tipo de partición

En fdisk, t permite cambiar el tipo. Los más frecuentes:

  • 83 : Linux filesystem
  • 82 : Linux swap
  • 8e : Linux LVM
  • fd : Linux RAID auto
  • ef : EFI System (para GPT)

4.4. Particionado con gdisk (GPT avanzado)

gdisk es la alternativa para GPT, similar en funcionamiento a fdisk pero específico para GUIDs.

gdisk /dev/sdc

Comandos análogos:

  • n : nueva partición
  • d : eliminar
  • t : cambiar tipo (usa códigos hexadecimales, ej. 8300 Linux FS, 8200 swap, ef00 EFI)
  • p : mostrar tabla
  • w : escribir

gdisk también puede convertir tablas MBR a GPT sin pérdida de datos (gdisk lo ofrece automáticamente si detecta MBR).

4.5. Particionado con parted (herramienta universal)

parted soporta tanto MBR como GPT y se puede usar de forma interactiva o con comandos directos.

4.5.1. Modo interactivo

parted /dev/sdd
  • print : mostrar tabla actual
  • mklabel gpt o mklabel msdos : crear tabla
  • mkpart primary ext4 1MiB 10GiB : crear partición
  • rm 1 : eliminar partición 1
  • quit

4.5.2. Modo scriptable (no interactivo)

Muy útil para automatización:

parted /dev/sdd mklabel gpt
parted /dev/sdd mkpart primary ext4 1MiB 10GiB
parted /dev/sdd mkpart primary linux-swap 10GiB 12GiB
parted /dev/sdd set 2 swap on

4.5.3. Alineación de particiones

parted alinea por defecto a 1 MiB (recomendado para discos modernos con sectores 4K). Se puede forzar con --align optimal. En fdisk, la alineación también es automática al primer sector sugerido.

4.6. Formateo de sistemas de archivos

Una vez creada la partición, se le debe dar formato con un sistema de archivos. Los más importantes en Linux actual:

  • ext4: estándar en muchas distribuciones, robusto, journaling, soporte hasta 1 EiB.
  • XFS: alto rendimiento con archivos grandes, usado en RHEL/CentOS/Fedora por defecto.
  • Btrfs y ZFS: avanzados (copy-on-write, snapshots) pero pueden no estar en LFCS.

4.6.1. Crear sistema de archivos ext4

mkfs.ext4 /dev/sdb1
# o bien
mke2fs -t ext4 /dev/sdb1

Opciones comunes:

  • -L "etiqueta": asignar etiqueta (label).
  • -m 1: porcentaje de espacio reservado a root (por defecto 5%, se puede bajar en discos grandes).
  • -b 4096: tamaño de bloque.
  • -E lazy_itable_init=1: inicializar tablas de inodos en segundo plano (más rápido).

Ejemplo con etiqueta y reserva mínima:

mkfs.ext4 -L DATOS -m 1 /dev/sdb1

4.6.2. Crear sistema de archivos XFS

mkfs.xfs /dev/sdb1

Opciones:

  • -L etiqueta
  • -f: forzar si ya tenía sistema de archivos previo.
  • -i size=512: tamaño de inodo (ajustar si se esperan millones de archivos pequeños).
  • -d su=64k,sw=4: para configurar stripe en RAID.

4.6.3. Otros sistemas de archivos

  • btrfs: mkfs.btrfs /dev/sdb1
  • FAT32 (para EFI o USB): mkfs.fat -F32 /dev/sdb1
  • NTFS: mkfs.ntfs /dev/sdb1 (requiere ntfs-3g/ntfsprogs)
  • exFAT: mkfs.exfat /dev/sdb1

4.6.4. Ajuste y verificación posterior

  • tune2fs -l /dev/sdb1: muestra información detallada de un FS ext2/3/4.
  • tune2fs -L NUEVA_ETIQUETA /dev/sdb1: cambiar etiqueta.
  • tune2fs -c 20 /dev/sdb1: forzar chequeo cada 20 montajes (ext).
  • xfs_admin -L ETIQUETA /dev/sdb1: cambiar etiqueta en XFS.
  • xfs_info /montaje: ver información de un FS XFS montado.

4.7. El espacio de intercambio (swap)

El swap extiende la memoria RAM física usando parte del disco. Puede ser una partición o un archivo swap. En Linux se recomienda tener al menos algo de swap (el tamaño depende del uso, pero entre 2 GB y el doble de la RAM es una referencia para hibernación).

4.7.1. Crear una partición swap

  1. Crear la partición y cambiar su tipo a 82 (Linux swap) con fdisk o 8200 con gdisk.
  2. Formatear como swap:
    mkswap /dev/sdb2
    
  3. Activar:
    swapon /dev/sdb2
    
  4. Ver el swap activo:
    swapon --show
    free -h
    cat /proc/swaps
    

4.7.2. Crear un archivo swap

Alternativa flexible, especialmente en entornos virtuales o cuando no se puede reparticionar.

dd if=/dev/zero of=/swapfile bs=1M count=2048    # 2 GB
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

4.7.3. Desactivar swap

Para quitar una zona swap (útil antes de eliminar particiones):

swapoff /dev/sdb2
swapoff /swapfile

4.7.4. Prioridades de swap

Si hay varios espacios swap, se les puede asignar prioridad con -p (0 a 32767, mayor es preferente). Ej:

swapon -p 10 /dev/sdb2   # alta prioridad
swapon -p 5 /swapfile     # menor prioridad

Se puede especificar en fstab con la opción pri=.

4.8. Montaje de sistemas de archivos

Formatear no monta automáticamente; hay que asociar la partición a un punto de montaje (directorio).

4.8.1. Montaje manual con mount

mount /dev/sdb1 /mnt/datos

Si el punto de montaje no existe, créalo antes con mkdir -p.

Opciones útiles:

  • -t ext4 : tipo de sistema de archivos (normalmente automático).
  • -o ro : solo lectura.
  • -o noexec : no permite ejecutar binarios.
  • -o nosuid : ignora bits SUID/SGID.
  • -o defaults : opciones por defecto (rw, suid, dev, exec, auto, nouser, async).

Para desmontar: umount /mnt/datos o umount /dev/sdb1. Si está ocupado, usar lsof /mnt/datos para ver qué procesos lo usan. fuser -km /mnt/datos para forzar (cuidado).

4.8.2. Montaje automático en /etc/fstab

El archivo /etc/fstab define montajes permanentes. Cada línea tiene 6 campos:

<dispositivo>  <punto_montaje>  <tipo>  <opciones>  <dump>  <pass>
  • dispositivo: puede ser /dev/sdb1, UUID (UUID=...) o etiqueta (LABEL=DATOS). Se recomienda UUID, que se obtiene con blkid.
  • punto_montaje: el directorio donde se monta.
  • tipo: ext4, xfs, swap, etc.
  • opciones: defaults o lista separada por comas (ro, noatime, etc.).
  • dump: 1 para incluir en backups con dump, 0 no.
  • pass: orden de chequeo con fsck. 1 para la raíz, 2 para el resto, 0 no chequear.

Ejemplo de entradas:

UUID=abc123-...  /           ext4  defaults  0  1
UUID=def456-...  /home       xfs   defaults  0  2
UUID=123abc-...  swap        swap  defaults  0  0
/swapfile        none        swap  sw        0  0

Para swap, el tipo es swap, punto de montaje none, y opciones típicamente sw.

Después de editar /etc/fstab, prueba el montaje con:

mount -a               # monta todo lo de fstab
systemctl daemon-reload # si se modificaron unidades .mount generadas

Si hay errores, el sistema podría no arrancar. Prueba con findmnt --verify o simula con mount -fav (simulación, no monta realmente).

4.8.3. Opciones de montaje comunes

  • defaults = rw,suid,dev,exec,auto,nouser,async
  • noatime : no actualizar tiempo de acceso (mejora rendimiento).
  • relatime : actualizar atime solo si es anterior a mtime/ctime o si ha pasado más de 24h (equilibrio).
  • user : permite a un usuario normal montar (y desmontar solo él).
  • users : cualquier usuario puede montar y desmontar.
  • nofail : no generar error si el dispositivo no existe (útil para discos extraíbles).
  • _netdev : esperar a que la red esté disponible (para montajes NFS, iSCSI).

4.9. Verificación de integridad del sistema de archivos

Antes de montar, el sistema puede chequear la integridad con fsck. No se debe ejecutar sobre sistemas de archivos montados.

fsck /dev/sdb1
fsck -t ext4 /dev/sdb1

Para XFS, fsck.xfs no hace nada (por diseño); se usa xfs_repair en caso de corrupción.

En /etc/fstab, el último campo (pass) controla el orden de chequeo al arranque.

4.10. Ejercicios prácticos

  1. Identifica discos: Conecta un disco extra (virtual o USB) y enumera todas las particiones actuales con lsblk, fdisk -l y blkid. Identifica cuál es el nuevo.
  2. Crea tabla GPT y particiones: Usando gdisk o parted, crea una tabla GPT en el nuevo disco. Crea una partición de 100 MB tipo EFI (ef00), dos particiones de 500 MB tipo Linux filesystem, y una de 256 MB tipo swap.
  3. Formatea: Da formato ext4 (con etiqueta PRUEBA1) a la primera partición Linux, XFS (etiqueta PRUEBA2) a la segunda, y configura la partición swap.
  4. Monta manualmente: Crea puntos de montaje /mnt/prueba1 y /mnt/prueba2. Monta las particiones correspondientes. Crea archivos dentro, desmonta y comprueba que ya no son visibles hasta volver a montar.
  5. Configura fstab: Añade entradas en /etc/fstab para las dos particiones de datos (usando UUID) y para la swap. Configura noatime y nofail en las de datos. Ejecuta mount -a y verifica con df -h y swapon --show.
  6. Swapfile: Desactiva la partición swap, elimínala de fstab. Crea un archivo swap de 512 MB en /swapfile2, actívalo con prioridad 10 y añádelo a fstab con la opción pri=10.
  7. Simulación de error: Introduce una entrada incorrecta en fstab (UUID falso). Usa mount -fav para simular y detecta el error. Corrígelo.
  8. Recuperación de tabla GPT: Con gdisk, entra en un disco y explora la opción de recuperar tabla de respaldo (rc o d). No la ejecutes si no es un disco de pruebas.

4.11. Resumen y claves para el examen LFCS

  • Saber identificar discos y particiones es el paso previo obligatorio.
  • Domina tanto fdisk como parted; en el examen pueden aparecer ambos. parted es más fácil de usar en scripts.
  • Conoce los códigos de tipo de partición importantes y los GUIDs equivalentes.
  • Los comandos mkfs.ext4, mkfs.xfs, mkswap y swapon son esenciales.
  • El archivo /etc/fstab debe estar perfectamente comprendido: sus campos y cómo usar UUID/LABEL.
  • La gestión del swap incluye particiones y archivos, así como prioridades.
  • Verifica siempre con mount -a antes de reiniciar, para evitar un sistema que no arranca.
  • Comprende las opciones de montaje que afectan al rendimiento y seguridad (noatime, noexec, nosuid).

Con esto cierras el bloque de almacenamiento básico. En el próximo capítulo nos adentraremos en los sistemas de archivos compartidos en red con Samba y NFS, ampliando la conectividad y colaboración entre sistemas.

Vistas: 0

Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Scroll al inicio