Esistono molte implementazioni di Unionfs, in kernel space e in user space.
L'implementazione di www.filesystems.org, si tratta di un modulo kernel che tuttavia non è incluso nel kernel ufficiale. È disponibile per kernel recenti (anche l'ultimo 2.6.32) ed è alla sua seconda versione. Debian lo ha incluso fino alla versione 4 Etch con il pacchetto unionfs-modules-*, il relativo unionfs-tools e unionfs-source. Il pacchetto è stato abbandonato in favore di aufs con il bug #484842.
L'implementazione aufs.sourceforge.net, anch'essa alla versione 2, è nata come fork di unionfs versione 1. Debian 5 Lenny include i pacchetti aufs-modules-*, aufs-tools e aufs-source. Anche in questo caso Linus ha rifiutato l'inclusione nel kernel ufficiale.
unionfs-fuse implementazione di unionfs in user-space tramite fuse.
Supponiamo che esistano le directory /opt/data_ro
e /opt/data_rw
che vogliamo montare in /media/union
, la componente data_ro
sarà montata in sola lettura, tutte le modifiche andranno in data_rw
.
Ecco il comando da eseguire:
mount -t unionfs -o dirs=/opt/data_rw=rw:/opt/data_ro=ro unionfs /media/union
oppure la corrispondente riga da aggiungere in /etc/fstab
:
none /media/union unionfs rw,dirs=/opt/data_rw=rw:/opt/data_ro=ro 0 0
Nella componente read/write montata più in alto nella pila unionfs si possono trovare diversi file nascosti il cui nome inizia per .wh.
, si tratta di flag che indicano se un file deve essere whited out (nascosto), oppure indica se una directory deve essere opaca (.wh.__dir_opaque
) cioè nascondere altri oggetti sottostanti.
Unionfs On Disk Format (ODF) è una versione migliorata; le meta-informazioni sui file eliminati ecc. vengono memorizzate in una partizione separata, senza inquinare i filesystem sottostanti. Altri dettagli in ODF: On Disk Format for Unionfs 2.x.
Non è consigliabile modificare il contenuto delle directory componenti mentre l'unionfs è montato, sia che si tratti di componenti ro che componenti rw. Vale la semantica dello unionfs, compresi i file nascosti .wh.
, ma potrebbero capitare casi indesiderati (unionfs ha in cache informazioni non più consistenti).
Per gestire questi problemi il filesystem aufs ha l'opzione di montaggio udba
(User's Direct Branch Access) con vari gradi di affidabilità e performance inversamente proporzionali. Vedere man mount.aufs(8)
.