Un sistema de archivos (FS, por sus siglas en inglés) es un conjunto organizado de datos y métodos que se utiliza para almacenar, recuperar y gestionar información en un dispositivo de almacenamiento. En informática, es la estructura y la lógica que define cómo se nombran, almacenan, organizan y consultan los archivos desde el sistema operativo y las aplicaciones.
Esta guía ofrece una visión general completa de los sistemas de archivos de Linux, sus tipos, estructuras e importancia dentro del sistema operativo Linux, para que entiendas los conceptos fundamentales y puedas gestionar y operar tus sistemas con más criterio.
Mira la versión en vídeo del artículo «Guía completa: visión general de los sistemas de archivos de Linux»
Gestiona, parchea y da soporte a tus endpoints Linux desde un único panel de control.
Por qué son tan importantes los sistemas de archivos en un sistema operativo
Los sistemas de archivos son la base del funcionamiento de cualquier equipo informático. Son el medio por el que el sistema operativo organiza y aísla los datos, de modo que la información se almacene de forma eficiente y segura. Ese aislamiento permite que distintos procesos se ejecuten a la vez sin interferir en los datos de los demás.
Para los administradores de sistemas y los usuarios de Linux, dominar los sistemas de archivos es imprescindible. Estos son los motivos:
- Ajuste del rendimiento: conocer los sistemas de archivos ayuda a optimizar el rendimiento del sistema, porque permite elegir el tipo adecuado para cada necesidad.
- Gestión de la seguridad: saber cómo funcionan es clave para administrar los permisos y proteger los datos.
- Recuperación del sistema: ante un fallo del sistema, entender bien los sistemas de archivos facilita los procesos de recuperación de datos.
- Gestión eficiente del almacenamiento: los administradores pueden tomar decisiones fundamentadas sobre cómo particionar, mantener y escalar el almacenamiento del sistema.
Principales sistemas de archivos de Linux y sus características
| FS | Características | Ventajas | Inconvenientes |
| ext4 | Son las siglas de «fourth extended filesystem» (cuarto sistema de archivos extendido). Muy utilizado por su robustez y por su función de journaling, que evita la corrupción de datos tras una caída del sistema. | Maduro, gran integridad de datos y buen soporte para archivos grandes. | Limitado por el tamaño total del volumen. |
| XFS | Conocido por su alto rendimiento y escalabilidad, sobre todo con archivos y volúmenes grandes; destaca en E/S en paralelo. | Rendimiento excelente con archivos grandes y gran escalabilidad. | Más complejo de gestionar; rendimiento pobre con archivos pequeños. |
| Btrfs | Incluye instantáneas, asignación dinámica de inodos y gestión integrada de dispositivos; admite compresión transparente. | Funciones avanzadas como la detección de errores y una gestión de volúmenes flexible. | Más reciente y con menos soporte generalizado que ext4. |
| ZFS en Linux | Diseñado en su origen para Solaris, admite grandes capacidades de almacenamiento e integra la gestión del sistema de archivos y de los volúmenes; incluye una sólida verificación de la integridad de los datos. | Gran integridad de datos y soporte para grandes capacidades de almacenamiento. | Necesita más memoria para rendir al máximo. |
| exFAT y ntfs-fuse | Permiten usar sistemas de archivos de Windows en Linux, con operaciones de lectura y escritura en particiones formateadas para Windows; están optimizados para memoria flash y gestionan NTFS mediante controladores en espacio de usuario. | Permiten trabajar con archivos de Windows en Linux sin fricciones. | El rendimiento puede variar y pueden darse problemas de compatibilidad. |
Visión general del árbol de directorios de Linux
Lo más llamativo del sistema de archivos de Linux es, probablemente, que se estructura como un único árbol unificado: todos los sistemas de archivos que montas aparecen simplemente como directorios dentro de ese árbol. Su punto de partida es el directorio raíz (/), el directorio de nivel superior del sistema, desde el que arrancan todos los archivos y directorios; cada sistema de archivos montado se integra en este árbol.
El Filesystem Hierarchy Standard (FHS) estandariza la disposición de los directorios en las distintas distribuciones de Linux, lo que favorece la compatibilidad del software y los procesos de copia de seguridad del sistema. Entre los directorios clave están /bin, para los binarios ejecutables; /etc, para los archivos de configuración; /home, para los directorios de usuario; y /var, para datos variables, como los directorios de datos de servicios tipo servidores web, de bases de datos o de correo. Moverse por el árbol de directorios de Linux consiste en aprovechar estas estructuras estandarizadas y los comandos adecuados para gestionar los archivos con eficacia y mantener la integridad del sistema.
Cómo interactuar con el sistema de archivos
- Obtener ayuda: la mayoría de los comandos disponibles tienen un manual al que accedes ejecutando man [comando], por ejemplo man cp.
- Navegación y manipulación: comandos como cd, para cambiar de directorio, ls, para listar el contenido de un directorio, y operaciones de archivos como touch, cp, mv y rm, que gestionan los archivos directamente.
- Montaje y desmontaje: los dispositivos de almacenamiento externos se montan en el árbol de directorios en puntos concretos (por ejemplo, el dispositivo de bloques /dev/sdb1 —la primera partición del segundo disco duro— se monta en /media/user/VolumeName), lo que permite acceder a los archivos sin preocuparse del medio de almacenamiento. El montaje transparente de almacenamiento remoto o en el cloud es posible gracias a FUSE (Filesystem in UserSpacE).
- Seguridad, propiedad y permisos: a cada archivo y directorio se le asignan permisos que determinan los derechos de acceso del propietario, de los grupos de usuarios asignados y del resto. Los administradores de sistemas pueden ajustar esos permisos con chmod y chown para controlar el acceso a los archivos y mantener la seguridad del sistema. Los permisos se pueden definir con gran granularidad: lectura, escritura y ejecución se configuran por separado para cada usuario, grupo de usuarios u otros criterios.
Montaje y gestión de sistemas de archivos
- Montar sistemas de archivos en Linux:
-
-
- Con el comando mount: montar un sistema de archivos consiste en asociarlo a un directorio concreto (punto de montaje) de la estructura de directorios existente. Normalmente se hace con el comando mount, indicando el tipo de sistema de archivos y las opciones necesarias (aunque la mayoría de los sistemas de archivos se detectan automáticamente):
- mount [-t fstype] [-o options] /path/to/device /path/to/mountpoint
- Con el archivo /etc/fstab (tabla de sistemas de archivos): puedes montar un sistema de archivos automáticamente añadiendo la línea correspondiente al archivo /etc/fstab, como en el ejemplo. El montaje automático se producirá al arrancar, al conectar una unidad externa o al ejecutar el comando mount -a. Analizar este método a fondo queda fuera del alcance de este artículo, pero encontrarás más información aquí o con el comando man fstab. (Los campos dump y PassNo tienen que ver con la comprobación de errores de disco; infórmate antes de modificarlos).
- sudo nano /etc/fstab
y después añade una línea al final del archivo: - #<device> <mountpoint> <FS type> <mount opts> <dump><PassNo>
/dev/sdb1 /media/user ext4 defaults 0 2
- sudo nano /etc/fstab
- Con el comando mount: montar un sistema de archivos consiste en asociarlo a un directorio concreto (punto de montaje) de la estructura de directorios existente. Normalmente se hace con el comando mount, indicando el tipo de sistema de archivos y las opciones necesarias (aunque la mayoría de los sistemas de archivos se detectan automáticamente):
-
- Desmontar sistemas de archivos: para desmontar un sistema de archivos se usa el comando umount /path/to/mountpoint. Separa el sistema de archivos de su punto de montaje y garantiza que todos los datos se escriban en el disco, evitando así pérdidas de información.
- Revisar los sistemas de archivos montados:
-
- df: muestra el espacio de disco usado y disponible en todos los sistemas de archivos montados en ese momento.
- mount: ejecutado sin argumentos, muestra todos los sistemas de archivos montados e indica dónde y cómo está montado cada uno.
Monitoriza tus endpoints Linux en tiempo real. Solicita tu prueba gratuita de 14 días.
Operaciones y comandos del sistema de archivos
Operaciones y comandos habituales
- Crear archivos: touch filename crea un archivo vacío llamado filename.
- Eliminar archivos: rm filename borra archivos.
- Copiar y mover: cp y mv permiten copiar o mover archivos entre directorios.
- cp sourcefile [/path/to/]filecopy # copia sourcefile en filecopy.
- cp -vR sourcedir [/path/to/]targetdir # copia de forma recursiva el directorio sourcedir y su contenido en targetdir.
- Gestión de directorios: mkdir y rmdir se usan para crear y eliminar directorios.
Administración de permisos y propiedad
- chmod: cambia los permisos de un archivo o directorio. Por ejemplo:
- chmod 0644 filename # define los permisos de forma numérica
- chmod +w filename* # hace escribible el patrón indicado
- chown: cambia la propiedad de un archivo o directorio al usuario o grupo indicado. Por ejemplo:
- chown username filename # username pasa a ser el propietario de filename
- chown -R username[:groupname] directory # cambia de forma recursiva la propiedad de un directorio y de su contenido a username (y, opcionalmente, a groupname).
El futuro de los sistemas de archivos de Linux
Esta guía ha repasado los aspectos esenciales de los sistemas de archivos de Linux, desde sus tipos y estructuras hasta su gestión y sus operaciones. Entender estos componentes es vital para una administración de sistemas eficaz y segura, tanto si administras Linux como si lo usas a diario: conocer a fondo los sistemas de archivos mejora tu capacidad de gestión y favorece entornos informáticos más robustos y seguros. Sigue aprendiendo y practicando con los sistemas de archivos de Linux para dominar los detalles de la administración de sistemas y optimizar el rendimiento general.