Ext4: el sistema de archivos por defecto en Linux

Ext4: el sistema de archivos por defecto en Linux

Qué es Ext4 y para qué sirve

Ext4 (Fourth Extended File System) es la cuarta versión del sistema de archivos extendido utilizado por defecto en la mayoría de distribuciones Linux modernas. Fue lanzado oficialmente en 2008 como la evolución natural de Ext3, y desde entonces se ha convertido en el estándar de facto para sistemas Linux gracias a su equilibrio entre rendimiento, estabilidad y compatibilidad. Al igual que NTFS lo es para Windows o APFS para macOS, Ext4 es el sistema que organiza cómo se almacenan, recuperan y gestionan los archivos en discos duros y SSD de equipos con Linux.

La principal función de Ext4 es gestionar el espacio en disco de forma eficiente, permitiendo crear, leer, modificar y eliminar archivos con rapidez y fiabilidad. A diferencia de sistemas de archivos más simples como FAT32, Ext4 incluye journaling (registro por diario), una característica que registra los cambios antes de aplicarlos al disco. Esto significa que si ocurre un corte de energía o el sistema se bloquea inesperadamente, el sistema de archivos puede recuperarse rápidamente sin perder datos ni corromperse.

Además, Ext4 resuelve limitaciones importantes de sus predecesores. Mientras que Ext3 tenía un límite de 32,000 subdirectorios por carpeta, Ext4 elimina esta restricción por completo. También permite crear archivos de hasta 16 terabytes y volúmenes de hasta 1 exabyte (un millón de terabytes), lo que lo hace adecuado tanto para ordenadores personales como para servidores de grandes dimensiones. ¿Quieres conocer en detalle cómo funciona Ext4, cómo crear un sistema de archivos Ext4 y optimizarlo para tu equipo? A continuación encontrarás toda la información necesaria para dominar este sistema de archivos.

Qué necesitas saber antes de empezar

Antes de trabajar con Ext4, hay varios conceptos y requisitos que conviene tener claros. En primer lugar, necesitarás permisos de root (administrador) para crear, formatear o modificar particiones con Ext4, ya que estas operaciones afectan a la estructura del disco y al sistema operativo. Si estás utilizando una distribución Linux estándar como Ubuntu, Debian, Fedora o Arch Linux, podrás ejecutar los comandos con sudo. También es fundamental identificar correctamente el dispositivo que vas a formatear (/dev/sda1, /dev/nvme0n1p2, etc.), ya que usar el dispositivo equivocado podría borrar todos tus datos.

Es importante entender que Ext4 no es la única opción disponible en Linux. Existen alternativas como XFS, Btrfs y ZFS, cada una con ventajas específicas. XFS destaca por su rendimiento con archivos muy grandes y su capacidad de operaciones paralelas, lo que lo hace ideal para servidores multimedia o estaciones de trabajo de edición de vídeo. Btrfs ofrece funcionalidades avanzadas como instantáneas (snapshots) y autocomprobación de datos, aunque con cierta sobrecarga de rendimiento. Sin embargo, Ext4 sigue siendo la recomendación para la mayoría de usuarios porque combina fiabilidad probada durante más de una década con un rendimiento excelente para tareas cotidianas.

Las diferencias entre versiones de Ext4 son mínimas para el usuario final, ya que las mejoras se implementan a nivel del kernel de Linux. Las distribuciones modernas como Ubuntu 24.04, Fedora 40 o Debian 12 incluyen soporte completo para todas las características de Ext4, incluyendo extents (asignación eficiente de espacio en disco), asignación diferida (delayed allocation) y comprobación de suma de verificación del diario (journal checksum), que mejora la fiabilidad ante fallos. En versiones muy antiguas de Linux (anteriores a 2008), algunas funcionalidades de Ext4 pueden no estar disponibles, pero hoy en día cualquier distribución actual soporta Ext4 completamente.

Cómo crear y formatear una partición Ext4 en Linux

El proceso para crear un sistema de archivos Ext4 es sencillo y se realiza desde la terminal con comandos estándar. A continuación te explicamos paso a paso cómo hacerlo.

  1. Abre una terminal en tu sistema Linux. Puedes hacerlo desde el menú de aplicaciones o pulsando Ctrl + Alt + T.
  2. Lista las particiones disponibles para identificar el dispositivo que quieres formatear. Ejecuta lsblk o fdisk -l. La salida mostrará algo como:
   NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
   sda      8:0    0 238.5G  0 disk
   ├─sda1   8:1    0   512M  0 part /boot/efi
   └─sda2   8:2    0 238.0G  0 part /

En este ejemplo, el dispositivo principal es sda y sus particiones son sda1 y sda2.

  1. Si la partición que vas a formatear está montada, desmóntala con el comando umount. Por ejemplo: sudo umount /dev/sdb1. Esto es necesario porque no se puede formatear una partición en uso.
  2. Ejecuta el comando de formateo. La sintaxis básica es:
   sudo mkfs.ext4 /dev/dispositivo

Reemplaza /dev/dispositivo con la partición que quieras formatear (por ejemplo, /dev/sdb1). Advertencia: este comando borrará todos los datos existentes en esa partición de forma irreversible.

  1. Si deseas personalizar la creación del sistema de archivos, puedes añadir opciones adicionales. Por ejemplo:
   sudo mkfs.ext4 -L "mis_datos" /dev/sdb1

La opción -L asigna una etiqueta legible al volumen.

  1. Una vez finalizado el formateo (el proceso suele tardar solo unos segundos), puedes montar la nueva partición. Crea un punto de montaje si no existe:
   sudo mkdir /mnt/mi_disco
   sudo mount /dev/sdb1 /mnt/mi_disco
  1. Para que la partición se monte automáticamente al iniciar el sistema, añade una entrada en el archivo /etc/fstab. Puedes obtener el UUID de la partición con:
   sudo blkid /dev/sdb1

Luego edita /etc/fstab como root y añade una línea similar a:

   UUID=tu-uuid-aqui /mnt/mi_disco ext4 defaults 0 2

Una vez completados estos pasos, la partición estará lista para usarse con el sistema de archivos Ext4. Para verificar que todo ha funcionado correctamente, ejecuta df -h y deberías ver tu nueva partición montada en el punto que especificaste, con el espacio total disponible y el sistema de archivos indicado como ext4.

Problemas frecuentes y soluciones

No puedo desmontar la partición porque está en uso

Este problema ocurre cuando hay procesos activos accediendo a la partición que intentas desmontar. Para identificar qué procesos están usando la partición, ejecuta lsof | grep /punto/de/montaje o fuser -v /punto/de/montaje. Una vez identificados, puedes cerrar las aplicaciones que los usan o, si es necesario, forzar el desmontaje con sudo umount -l /punto/de/montaje (desmontaje diferido, seguro). También puedes reiniciar el sistema para asegurarte de que ninguna aplicación tenga archivos abiertos en esa partición.

El comando mkfs.ext4 devuelve «device is busy»

Este mensaje indica que la partición está montada o que algún proceso la está utilizando. Asegúrate de haberla desmontado con sudo umount /dev/dispositivo. Si sigue apareciendo el error, puede que la partición esté marcada como «swap» o que el sistema la tenga reservada. Ejecuta sudo swapoff /dev/dispositivo si es una partición de intercambio, o reinicia el sistema para liberar cualquier bloqueo.

La partición Ext4 no se monta automáticamente tras reiniciar

Si has añadido la entrada en /etc/fstab pero la partición no aparece después de reiniciar, puede haber un error en la sintaxis o el UUID. Comprueba la entrada con sudo mount -a, que intenta montar todas las particiones definidas en fstab. Si hay errores, el comando mostrará el problema específico. También verifica que el punto de montaje exista (/mnt/mi_disco en el ejemplo) y que el UUID sea correcto ejecutando sudo blkid. Si el sistema no puede montar la partición, arrancará igualmente pero tendrás que montarla manualmente.

Consejos para sacar más partido a Ext4

Una vez que domines la creación básica de sistemas de archivos Ext4, puedes ajustar parámetros avanzados para optimizar el rendimiento según tu caso de uso. Uno de los más importantes es la proporción de bytes por inodo (bytes-per-inode ratio). Los inodos son estructuras que almacenan metadatos de cada archivo (propietario, permisos, fechas, etc.). Por defecto, mkfs.ext4 crea un inodo cada 16 KB, lo que funciona bien para la mayoría de sistemas. Sin embargo, si vas a almacenar principalmente archivos muy grandes (como vídeos o discos de máquinas virtuales), puedes reducir drásticamente la cantidad de inodos y ahorrar espacio en disco usando la opción -T largefile4:

sudo mkfs.ext4 -T largefile4 /dev/dispositivo

Esto crea un inodo cada 4 MB, liberando espacio que de otro modo quedaría desperdiciado. Por el contrario, si vas a almacenar millones de archivos pequeños (como correos electrónicos o miniaturas), usa -T news para crear un inodo cada 4 KB.

Otro ajuste muy útil es modificar el porcentaje de bloques reservados para root. Por defecto, Ext4 reserva el 5% del espacio en disco para el usuario root y procesos del sistema. En discos grandes de varios terabytes, esto puede suponer decenas de gigabytes desperdiciados. Para particiones de datos personales o de almacenamiento (no del sistema), puedes reducir este porcentaje al 1% o incluso al 0% con:

sudo tune2fs -m 1 /dev/dispositivo

Este cambio se aplica en caliente, incluso si la partición está montada. Para comprobar el porcentaje actual, usa sudo tune2fs -l /dev/dispositivo | grep "Reserved block count".

Compatibilidad con diferentes sistemas operativos

Ext4 es el sistema de archivos nativo de Linux, por lo que funciona a la perfección en todas las distribuciones actuales. En Ubuntu 24.04, Debian 12, Fedora 40, Arch Linux y openSUSE Tumbleweed, el soporte es completo y viene activado por defecto. Las versiones del kernel Linux desde la 2.6.28 (lanzada en 2008) incluyen soporte estable para Ext4, por lo que cualquier distribución lanzada después de esa fecha podrá leer y escribir particiones Ext4 sin problemas.

En cuanto a otros sistemas operativos, la compatibilidad es limitada pero posible. En Windows, no hay soporte nativo para Ext4, pero existen controladores de terceros como Ext2Fsd o Linux Reader que permiten montar particiones Ext4 con acceso de solo lectura o escritura limitada. Herramientas como EaseUS Partition Master también ofrecen funcionalidades para gestionar particiones Ext4 desde Windows. En macOS, se puede acceder a discos Ext4 mediante software adicional como FUSE para macOS junto con ext4fuse, aunque generalmente con permisos de solo lectura y sin soporte completo de todas las características.

Para dispositivos de almacenamiento externo que vayas a usar con diferentes sistemas operativos, Ext4 no es la opción más recomendable. En su lugar, considera exFAT, que es compatible con Windows, macOS y Linux sin necesidad de controladores adicionales. Si trabajas exclusivamente en entornos Linux, Ext4 sigue siendo la opción más fiable y con mejor soporte.

Preguntas frecuentes

¿Ext4 es compatible con Windows 10 y Windows 11?

No, Windows no incluye soporte nativo para leer o escribir particiones Ext4. Sin embargo, puedes utilizar controladores de terceros como Ext2Fsd (gratuito) o Paragon ExtFS for Windows (comercial) para acceder a discos formateados en Ext4 desde el Explorador de archivos de Windows. También existen herramientas de recuperación y gestión de particiones como EaseUS Partition Master que permiten formatear discos en Ext4, crear particiones y copiar archivos, aunque con limitaciones en comparación con el uso nativo en Linux.

¿Necesito permisos de administrador para crear una partición Ext4?

Sí, necesitas permisos de root (administrador) para ejecutar comandos como mkfs.ext4, fdisk o mount. Sin estos privilegios, el sistema te denegará el acceso a los dispositivos de bloque. En la mayoría de distribuciones Linux, esto significa que debes anteponer sudo a los comandos o iniciar sesión como usuario root. Una vez que la partición está montada, los permisos de lectura y escritura sobre los archivos dependen de los permisos estándar de Linux, no del formateo en sí.

¿Qué hago si pierdo datos en una partición Ext4 por error?

Si has formateado accidentalmente una partición Ext4 o has borrado archivos importantes, deja de escribir inmediatamente en ese disco para evitar sobrescribir los datos. Existen herramientas de recuperación como TestDisk (para recuperar particiones borradas) y PhotoRec (para recuperar archivos por tipo de firma). Ambas son gratuitas y están disponibles en los repositorios de la mayoría de distribuciones Linux (sudo apt install testdisk en Ubuntu/Debian). También puedes usar extundelete, una herramienta específica para particiones Ext3/Ext4 que intenta restaurar archivos eliminados siempre que los inodos no hayan sido reutilizados.

¿Puedo convertir una partición Ext3 a Ext4 sin perder datos?

Sí, es posible migrar una partición Ext3 a Ext4 sin formatear ni perder información, aunque el proceso es irreversible. Los pasos básicos son: 1) Desmontar la partición, 2) Ejecutar tune2fs -O extent,uninit_bg,dir_index /dev/dispositivo, 3) Ejecutar fsck -f /dev/dispositivo para reparar inconsistencias, y 4) Cambiar el tipo en /etc/fstab de ext3 a ext4. Después de estos pasos, la partición se montará como Ext4, aunque los archivos existentes no aprovecharán todas las ventajas hasta que se reescriban (puedes usar e4defrag para optimizarlos).

¿Existe alguna alternativa a Ext4 con más funcionalidades?

Sí, Btrfs (B-tree file system) es la alternativa más prometedora incluida en el kernel de Linux. Ofrece instantáneas (snapshots), compresión transparente de archivos, sumas de verificación para detectar corrupción de datos y la posibilidad de crear subvolúmenes independientes. Sin embargo, Btrfs tiene una sobrecarga de rendimiento mayor y su fiabilidad en escenarios extremos es objeto de debate. Otra alternativa es XFS, ideal para archivos muy grandes y operaciones de servidor, pero que no permite reducir el tamaño de una partición una vez creada. Para la mayoría de usuarios domésticos, Ext4 sigue siendo la opción más sensata por su madurez, rendimiento equilibrado y facilidad de recuperación ante fallos.