Unir directorios en Linux con OverlayFS y UnionFS-FUSE

·4 min de lectura·

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ísticaOverlayFSUnionFS-FUSE
ImplementaciónSistema de archivos del kernel Linux.Sistema de archivos en espacio de usuario que utiliza FUSE.
OrganizaciónUna 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 inferiorCopia el archivo a la capa superior antes de modificarlo.La opción cow habilita el comportamiento de copia en escritura documentado por el proyecto.
ConsideracionesLa 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

  1. Overlay Filesystem — documentación del kernel Linux
  2. unionfs-fuse — repositorio y documentación del proyecto
  3. unionfs-fuse(8) — manual de Debian Sources

Imagen

Unión de directorios en Linux con OverlayFS y UnionFS-FUSE

¿Te ha resultado útil?

Compártelo con tu red de contactos profesionales.

Comentarios (0)

Sé el primero en comentar.