Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
El estándar de jerarquía de archivos ―conocido como FHS por sus siglas en inglés de Filesystem Hierarchy Standard― define los directorios principales y sus contenidos en sistemas GNU/Linux y otros sistemas operativos similares a Unix. Este estándar es fundamental para mantener el orden, la compatibilidad y la predictibilidad en dónde se encuentran los archivos esenciales del sistema, las configuraciones, las bibliotecas y los datos de usuario.
La historia del FHS se remonta a agosto de 1993, cuando se inició un esfuerzo para estandarizar la estructura de archivos en Linux. El primer estándar, llamado FSSTND (Filesystem Standard), se publicó el 14 de febrero de 1994. A principios de 1996, el proyecto evolucionó para abarcar también otros sistemas Unix, cambiando su nombre a FHS. Hoy en día, el FHS es mantenido por la organización sin fines de lucro Linux Foundation, y su adopción es amplia en la gran mayoría de las distribuciones de Linux, aunque a menudo con extensiones o ligeras variaciones propias de cada distribución.
La versión 3.0 del FHS, publicada el 5 de junio de 2015, es el estándar de facto utilizado por las distribuciones modernas basadas en el ecosistema de Red Hat, como AlmaLinux, Rocky Linux, Red Hat Enterprise Linux 8/9/10 y Fedora, así como por ALDOS. Comprender esta jerarquía es el primer paso para administrar un sistema de manera eficiente y solucionar problemas.
En un sistema Linux, todos los archivos y directorios residen bajo el directorio raíz, representado por una sola barra diagonal (/). Esta estructura unificada existe incluso si los datos están almacenados en varios dispositivos físicos diferentes, gracias al proceso de montaje. La siguiente tabla describe la función de los directorios esenciales definidos por el FHS v3.0.
| Directorio | Descripción |
|---|---|
/bin |
Contiene programas binarios esenciales para todos los usuarios. Son mandatos necesarios incluso en modo de un solo usuario, como ls, cp, mv, rm, cat y mkdir. En sistemas modernos, suele ser un enlace simbólico a /usr/bin. |
/boot |
Alberga los archivos estáticos del cargador de arranque y el kernel de Linux. Es crítico para el inicio del sistema y a menudo se coloca en una partición separada. |
/dev |
Contiene archivos especiales de dispositivo que representan todo el sustento físico (hardware) o dispositivos virtuales del sistema (discos, terminales, puertos, etc.). |
/etc |
Directorio central para los archivos de configuración específicos del anfitrión. Contiene configuraciones de sistema y aplicaciones, scripts de inicio (en sistemas con SysVinit) y archivos como /etc/passwd o /etc/fstab. |
/home |
(Opcional, pero universal). Contiene los directorios de inicio de los usuarios locales. Cada usuario tiene un subdirectorio aquí (ej: /home/darkshram) para almacenar sus archivos personales y configuraciones. |
/lib y /lib64 |
Albergan las bibliotecas compartidas esenciales necesarias para los binarios en /bin y /sbin, y los módulos del kernel en /lib/modules. /lib64 existe en sistemas de 64 bits para bibliotecas de esa arquitectura. |
/media |
Punto de montaje automático para medios extraíbles, como memorias USB, discos externos o DVDs. |
/mnt |
Punto de montaje temporal para sistemas de archivos donde el administrador puede montar unidades manualmente. |
/opt |
Destinado a la instalación de paquetes de aplicaciones de terceros autocontenidos. Cada aplicación suele residir en su propio subdirectorio (ej: /opt/google/chrome). |
/proc |
Un sistema de archivos virtual que documenta el estado del kernel y los procesos en tiempo real. Sus "archivos" (como /proc/cpuinfo) son ventanas a la información del sistema. |
/root |
Directorio de inicio del usuario root (superusuario). Distinto de /home/root por razones de recuperación del sistema. |
/run |
Alberga datos volátiles de procesos en ejecución desde el último arranque. Contiene identificadores de proceso (PID), información de usuarios logueados y sockets. En sistemas modernos, /var/run es un enlace a este directorio. |
/sbin |
Contiene binarios de administración del sistema esenciales, destinados principalmente al usuario root. Mandatos como fdisk, fsck, ifconfig e init residen aquí. |
/srv |
Datos servidos por el sistema. Puede contener los directorios raíz para servicios como HTTP (/srv/www/) o FTP (/srv/ftp/). Su uso varía según la distribución. |
/tmp |
Directorio para archivos temporales. Su contenido puede borrarse entre reinicios. Algunos sistemas lo montan en memoria (tmpfs) para mayor rendimiento. |
/usr |
Jerarquía secundaria de datos de solo lectura compartibles entre hosts. Contiene la mayoría de las aplicaciones de usuario, bibliotecas y documentación. Es el directorio más grande después de /home. |
/var |
Directorio para archivos variables. Almacena datos que crecen con el tiempo, como registros (/var/log), colas de impresión y correo (/var/spool), y cachés (/var/cache). |
/usr y /varDentro de las jerarquías de /usr y /var existen subdirectorios clave con propósitos bien definidos.
| Directorio | Descripción |
|---|---|
/usr/bin |
La ubicación primaria para ejecutables de aplicaciones de usuario no esenciales. Contiene la inmensa mayoría de los mandatos que utilizará un usuario común. |
/usr/lib |
Bibliotecas compartidas para las aplicaciones ubicadas en /usr/bin y /usr/sbin. |
/usr/lib64 |
En distribuciones de arquitectura 64-bit como ALDOS, Fedora, RHEL y sus derivados, este directorio alberga las bibliotecas compartidas para programas de 64 bits. En otras familias de distribuciones, estas bibliotecas pueden residir directamente en /usr/lib. |
/usr/local |
Jerarquía terciaria para software compilado localmente por el administrador del sistema. Sigue la misma estructura que /usr (tiene sus propios bin, lib, share, etc.). Esto evita conflictos con el software gestionado por el gestor de paquetes (yum o dnf). |
/usr/share |
Contiene datos independientes de la arquitectura, como documentación, iconos, fuentes y archivos de sonido, compartidos entre diferentes aplicaciones. |
/var/log |
Registros del sistema y de aplicaciones. Archivos esenciales para la supervisión y solución de problemas (ej: messages, secure, boot.log). |
/var/lib |
Almacena datos de estado variables de aplicaciones. Aquí residen bases de datos (MySQL, PostgreSQL), metadatos del gestor de paquetes (yum, dnf) y configuraciones dinámicas. |
/var/cache |
Datos en caché de aplicaciones. Su contenido puede regenerarse, pero suele preservarse entre reinicios para mejorar el rendimiento. |
/var/spool |
Colas de datos para trabajos pendientes, como colas de impresión (/var/spool/cups) o buzones de correo no leídos (en algunos sistemas). |
🔍 Nota sobre /usr/lib64: La presencia de
/usr/lib64es una convención distintiva de las distribuciones basadas en Red Hat y sus ecosistemas ―como ALDOS, Fedora, CentOS Stream, AlmaLinux y Rocky Linux―, donde concentra la gran mayoría de las bibliotecas compartidas para aplicaciones de 64 bits. Distribuciones de otras familias, como las derivadas de Debian (Ubuntu, etc.), suelen alojar todas las bibliotecas en/usr/lib, haciendo de/usr/lib64un directorio inexistente. Esta es una diferencia de empaquetado y organización, mas no de funcionalidad.
El diseño del esquema de particiones es un paso crucial durante la instalación de cualquier distribución Linux. Un diseño adecuado mejora la seguridad, facilita las copias de seguridad y puede optimizar el rendimiento. Las recomendaciones han evolucionado desde las versiones históricas del manual.
Si las limitaciones del sistema imponen un número mínimo de particiones, es imprescindible crear al menos dos:
/ (raíz): Contendrá todo el sistema de archivos.Para una estación de trabajo o servidor moderno, un esquema básico y robusto incluye particiones separadas para /, /home y swap. Esto aísla los datos del usuario del sistema operativo, facilitando reinstalaciones o actualizaciones sin perder información personal.
Las siguientes recomendaciones son aplicables a distribuciones modernas como AlmaLinux 8/9/10, Rocky Linux 8/9/10, Red Hat Enterprise Linux 8/9/10, Fedora y ALDOS.
| Directorio/Particción | Tamaño Mínimo Recomendado | Tamaño Recomendado para Uso General | Comentarios y Consideraciones |
|---|---|---|---|
/boot |
512 MiB | 1 GiB | Espacio suficiente para múltiples kernels. Usar ext4 por su robustez. A menudo es partición obligatoria en sistemas UEFI (como /boot/efi). |
/ (raíz) |
15 GiB | 30-50 GiB | Debe albergar /usr, /var, /opt, etc., si no tienen partición propia. Considere el equipamiento lógico base y futuro. Tanto ext4 como Xfs son excelentes opciones. |
/home |
Variable | El resto del espacio disponible | Priorice espacio aquí para datos de usuario. El tamaño depende completamente de las necesidades. |
/var |
5 GiB | 10-20 GiB (Servidores: >50 GiB) | En servidores, crece con los registros y datos. En ALDOS o estaciones de trabajo, puede residir en /. |
/tmp |
1 GiB | 2-5 GiB | Si la carga de trabajo lo requiere (ej: edición de video), puede ser mayor. Algunos sistemas lo montan como tmpfs en RAM. |
| Memoria Swap | Fórmula variable | Igual al tamaño de la RAM | Para sistemas con ≤ 2 GiB de RAM: use el doble de la RAM. Para sistemas con > 2 GiB de RAM: un valor igual al tamaño de la RAM suele ser suficiente. Para hibernación: debe ser mayor que la RAM instalada. |
/ para garantizar la operación del sistema, especialmente durante el arranque: /bin, /dev, /etc, /lib, /lib64, /proc, /root, /run, /sbin, /sys./usr: En sistemas con SystemD (la mayoría de distribuciones modernas), /usr puede ser una partición independiente, ya que el sistema se encarga de montarla en las etapas iniciales del arranque. En sistemas que utilizan SysVinit (como ALDOS), se recomienda que /usr permanezca dentro de la partición raíz (/) para evitar complicaciones durante el inicio./run. Por compatibilidad, se mantienen enlaces simbólicos:
/var/run -> /run /var/lock -> /run/lock
En sistemas con SysVinit, estas rutas (/var/run, /var/lock) suelen ser directorios reales.
💡 Nota para fines educativos: Se recomienda experimentar con el mandato
findpara explorar estos directorios y comprender su contenido. Por ejemplo, ejecutefind /etc -type f -name "*.conf" | head -20para listar algunos archivos de configuración y ver dónde residen.