A veces interesa consultar varios directorios desde una sola ruta, por ejemplo, combinar una base de solo lectura con una capa de cambios. Linux ofrece OverlayFS en el kernel y proyectos FUSE como UnionFS-FUSE para crear esa vista unificada. Aunque resuelven problemas parecidos, organizan las capas y gestionan las escrituras de forma diferente [1][2].
Importante: estos montajes crean una vista común de los directorios; no convierten los datos originales en una copia de seguridad. Prueba las rutas con datos prescindibles y desmonta la vista antes de manipular directamente sus capas.
Elegir la herramienta
| Característica | OverlayFS | UnionFS-FUSE |
|---|---|---|
| Implementación | Sistema de archivos del kernel Linux. | Sistema de archivos en espacio de usuario que utiliza FUSE. |
| Organización | Una o varias capas inferiores y, opcionalmente, una capa superior escribible. | Varias ramas que se declaran como escribibles (RW) o de solo lectura (RO). |
| Escritura sobre un archivo inferior | Copia el archivo a la capa superior antes de modificarlo. | La opción cow habilita el comportamiento de copia en escritura documentado por el proyecto. |
| Consideraciones | La capa upperdir debe admitir atributos extendidos y workdir debe estar en el mismo sistema de archivos que upperdir. | Requiere FUSE y las opciones disponibles dependen de la versión instalada. El proyecto advierte que FUSE introduce cambios de contexto frente a una implementación en el kernel. |
OverlayFS suele ser la opción directa cuando se necesita una capa inferior estable y una capa superior donde guardar cambios. UnionFS-FUSE puede resultar útil si se necesita configurar varias ramas mediante FUSE. Revisa la documentación de la versión instalada antes de decidir, especialmente si la aplicación depende de permisos, atributos extendidos o semántica concreta de escritura [1][2][3].
Crear una vista con OverlayFS
En este ejemplo, /srv/media/base contiene la capa inferior, /srv/overlay/upper guardará los cambios y /srv/overlay/work será el directorio de trabajo interno. Ajusta todas las rutas antes de ejecutar el montaje:
sudo mkdir -p /srv/overlay/upper /srv/overlay/work /mnt/media-unida
sudo mount -t overlay overlay \
-o lowerdir=/srv/media/base,upperdir=/srv/overlay/upper,workdir=/srv/overlay/work \
/mnt/media-unida
workdir debe estar en el mismo sistema de archivos que upperdir. La capa superior también necesita las capacidades requeridas por OverlayFS, como atributos extendidos; no todos los sistemas de archivos montables sirven como capa superior [1].
Para exponer varias capas inferiores de solo lectura, separa sus rutas con dos puntos. Si falta upperdir y workdir, el montaje resultante es de solo lectura:
sudo mount -t overlay overlay \
-o lowerdir=/srv/media/base-2:/srv/media/base-1 \
/mnt/media-unida
En un montaje de escritura, si un archivo de una capa inferior se modifica, OverlayFS lo copia primero a la capa superior. Si se borra desde la vista un archivo que solo existía en una capa inferior, registra que debe quedar oculto sin eliminarlo de esa capa [1].
Crear una vista con UnionFS-FUSE
UnionFS-FUSE permite declarar ramas escribibles y de solo lectura. Este ejemplo usa cow para habilitar la copia en escritura y deja los cambios en una rama separada:
mkdir -p /srv/union/cambios /mnt/media-unida
unionfs-fuse -o cow \
/srv/union/cambios=RW:/srv/media/base=RO \
/mnt/media-unida
Comprueba el nombre del ejecutable y las opciones con la documentación del paquete instalado: algunas distribuciones pueden exponer el programa como unionfs. No añadas opciones como allow_other salvo que necesites que otros usuarios locales accedan al montaje y hayas revisado la configuración y los permisos de FUSE [2][3].
Comprobar y desmontar
Comprueba que la ruta está montada y que puedes leer los archivos de prueba:
findmnt --target /mnt/media-unida
ls -la /mnt/media-unida
Antes de desmontar, cierra las aplicaciones que utilicen esa ruta. Después, ejecuta el comando correspondiente al montaje:
sudo umount /mnt/media-unida
Verifica de nuevo con findmnt que la ruta ya no aparece como punto de montaje. No borres ni muevas las capas mientras la vista siga montada.
En resumen
- Usa OverlayFS para combinar capas inferiores con una capa superior de cambios cuando sus requisitos de sistema de archivos encajen.
- Considera UnionFS-FUSE si necesitas ramas configurables a través de FUSE y la versión disponible satisface tu caso.
- Prueba primero con directorios desechables, verifica qué capa recibe cada cambio y desmonta antes de alterar las capas originales.
📚 Fuentes consultadas
- Overlay Filesystem — documentación del kernel Linux
- unionfs-fuse — repositorio y documentación del proyecto
- unionfs-fuse(8) — manual de Debian Sources