Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
UnionFS
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|A filesystem service for Linux}} {{Use dmy dates|date=November 2021}} {{Infobox filesystem | name = Unionfs | full_name = Unification File System | developer = [[Open source community]] | introduction_os = | introduction_date = | partition_id = | directory_struct = | file_struct = | bad_blocks_struct = | max_filename_size = | max_files_no = | max_volume_size = | max_file_size = | filename_character_set = | dates_recorded = | date_range = | date_resolution = | forks_streams = | attributes = | file_system_permissions = [[POSIX]] | compression = No | encryption = No (but can be provided at the block device level) | OS = [[Linux]], [[FreeBSD]] and [[NetBSD]] | website = [https://unionfs.filesystems.org/ unionfs.filesystems.org] }} '''Unionfs''' is a filesystem service for [[Linux]], [[FreeBSD]] and [[NetBSD]] which implements a [[union mount]] for other [[file systems]]. It allows files and directories of separate file systems, known as branches, to be transparently overlaid, forming a single coherent file system. Contents of directories which have the same path within the merged branches will be seen together in a single merged directory, within the new, virtual filesystem. When mounting branches, the priority of one branch over the other is specified. So when both branches contain a file with the same name, one gets priority over the other. The different branches may be either ''read-only'' or ''read/write'' file systems, so that writes to the virtual, merged copy are directed to a specific real file system. This allows a file system to appear as writable, but without actually allowing writes to change the file system, also known as [[copy-on-write]]. This may be desirable when the media is physically read-only, such as in the case of [[Live CD]]s. Unionfs was originally developed by Erez Zadok and his team at [[Stony Brook University]].<ref>{{Cite journal | title = Kernel Korner: Unionfs: Bringing Filesystems Together | url = https://dl.acm.org/citation.cfm?id=1044970.1044978 | journal = Linux Journal | date = December 2004 | issn = 1075-3583 | page = 8 | volume = 2004 | issue = 128 | first1 = Charles P. | last1 = Wright | first2 = Erez | last2 = Zadok}}</ref><ref>{{Cite web |url = http://git.fsl.cs.sunysb.edu/ |title = Git server of File systems and Storage Lab |publisher = [[Stony Brook University]] |quote = Project: unionfs-3.9.y.git; Owner: Erez Zadok |access-date = 2017-07-17 |archive-url = https://archive.today/20160617073405/http://git.fsl.cs.sunysb.edu/ |archive-date = 17 June 2016 }}</ref><ref>{{Cite web | url = http://www.fsl.cs.sunysb.edu/ | title = File systems and Storage Lab: CS Department | publisher = [[Stony Brook University]] | quote = Lab Coordinator and Principal Investigator: Prof. Erez Zadok }}</ref> ==Uses== In [[Knoppix]], a union between the file system on the [[CD-ROM]] or [[DVD]] and a file system contained in an image file called ''knoppix.img'' (knoppix-data.img for Knoppix 7) on a writable drive (such as a [[USB memory stick]]) can be made, where the writable drive has priority over the read-only filesystem. This allows the user to change any of the files on the system, with the new file stored in the image and transparently used instead of the one on the CD.<ref>{{cite web | url = http://knoppix.net/wiki/Category:Hard_drive_Installation#UNIONFS | title = Hard drive Installation: UNIONFS | first = Werner P. | last = Schulz | date = 2016-12-15 | publisher = [[Knoppix]] | access-date = 2017-07-17}}</ref> Unionfs can also be used to create a single common template for a number of file systems, or for security reasons. It is sometimes used as an ''ad hoc'' [[snapshot (computer storage)|snapshot]]ting system. [[Docker (software)|Docker]] uses file systems inspired by Unionfs, such as [[Aufs]], to layer Docker images. As actions are done to a base image, layers are created and documented, such that each layer fully describes how to recreate an action. This strategy enables Docker's lightweight images, as only layer updates need to be propagated (compared to full VMs, for example).<ref>{{cite web | url=https://docs.docker.com/engine/docker-overview/#union-file-systems | title=Docker overview: Union file systems | date=2017-07-13 | publisher=[[Docker, Inc.]] | access-date=2017-07-17}}</ref> ''UbuntuLTSP'', the Linux Terminal Server Project implementation for Ubuntu, uses Unionfs when PXE booting thin or thick clients.<ref>{{cite web | url=https://help.ubuntu.com/community/UbuntuLTSP/LTSPWithoutNFS | title=UbuntuLTSP/LTSPWithoutNFS | first=Alkis | last=Georgopoulos | date=2010-12-24 | access-date=2017-07-17}}</ref> ==Other implementations== Unionfs for Linux has two versions. Version 1.x is a standalone one that can be built as a module. Version 2.x is a newer, redesigned, and reimplemented one. [[aufs]] is an alternative version of unionfs.<ref>{{cite web | url=http://aufs.sourceforge.net | title=aufs Homepage | date=2017-07-02 | access-date=2017-07-17}}</ref> [[overlayfs]] written by Miklos Szeredi has been used in OpenWRT and considered by Ubuntu and has been merged into the mainline Linux kernel on 26 October 2014<ref>{{cite web | url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1e14f1d63eb15ebe97d1a8544ddc143486b0204 | title=overlayfs merge + leak fix for d_splice_alias() failure exits | date=2014-10-26 | first=Linus | last=Torvalds | access-date=2017-07-17}}</ref> after many years of development and discussion<ref>{{cite web | url=https://lwn.net/Articles/447650/ | title=Debating overlayfs | first=Jonathan | last=Corbet | date=2011-06-15 | access-date=2017-07-17}}</ref> for version 3.18 of the kernel. ''unionfs-fuse'' is an independent project, implemented as a [[Filesystem in Userspace|user space filesystem]] program, instead of a kernel module or patch. Like Unionfs, it supports copy-on-write and read-only or readβwrite branches.<ref>{{cite web | url=https://github.com/rpodgorny/unionfs-fuse/blob/master/man/unionfs.8 | title=unionfs-fuse β A userspace unionfs implementation | first=Radek | last=Podgorny | website=[[GitHub]] | date=2016-11-21 | access-date=2017-07-17}}</ref> The [[Plan 9 from Bell Labs]] operating system uses [[union mount]]s extensively to build custom [[namespace]]s per user or processes. Union mounts have also been available in [[Berkeley Software Distribution|BSD]] since at least 1995.<ref>{{cite web | url=https://www.usenix.org/legacy/publications/library/proceedings/neworl/mckusick.html | title=Union Mounts in 4.4BSD-Lite | first1=Jan-Simon | last1=Pendry | first2=Marshall Kirk | last2=McKusick | date=January 1995 | work=USENIX 1995 Technical Conference Proceedings | access-date=2017-07-17}}</ref> The [[GNU Hurd]] has an implementation of Unionfs.<ref>{{cite web | url=https://www.gnu.org/software/hurd/hurd/translator/unionfs.html | title=unionfs | first=Thomas | last=Schwinge | date=2014-02-26 | work=[[GNU Hurd]] | access-date=2017-07-17}}</ref> As of January 2008, it works, but results in a read-only mount-point. [[mhddfs]] works like Unionfs but permits balancing files over drives with the most free space available. It is implemented as a user space filesystem. [[mergerfs]] is a FUSE based union filesystem which offers multiple policies for accessing and writing files as well as other advanced features (xattrs, managing mixed RO and RW drives, link CoW, etc.).<ref>{{Cite web|url=https://github.com/trapexit/mergerfs|title=trapexit/mergerfs|website=GitHub|language=en|access-date=2018-10-21}}</ref> [[Sun Microsystems]] introduced the first implementation of a stacked, layered file system with copy-on-write, whiteouts (hiding files in lower layers from higher layers), etc. as the [[Translucent File Service]] in [[SunOS]] 3, circa 1986.<ref>{{cite book | title = Sun/Release 3.0 | publisher = Interleaf Technical Publishing | year = 1988 | volume = 1 | pages = 15β1β18, 16β1β19 }}</ref> [[JailbreakMe]] 3.0, a tool for [[iOS jailbreaking|jailbreaking]] iOS devices released in July 2011, uses unionfs techniques to speed up the installation process of the operating system modification.<ref>{{cite web | url=http://www.redmondpie.com/comex-working-on-faster-jailbreaking-process-for-jailbreakme-3.0-ipad-2-jailbreak-coming-soon/ | title=Comex Working on Faster Jailbreaking Process for JailbreakMe 3.0; iPad 2 Jailbreak Coming Soon! | first=Awais | last=Imran | date=2011-06-19 | publisher=Redmond Pie | access-date=2017-07-17}}</ref> ==See also== * [[OverlayFS]] * [[Aufs]] ==References== {{Reflist}} ==External links== * {{Official website|http://unionfs.filesystems.org}} * {{cite web | url=https://www.fsl.cs.sunysb.edu/docs/unionfs-tr/unionfs.pdf | title=Versatility and Unix Semantics in a Fan-Out Unification File System |author=Charles P. Wright |author2=Jay Dave |author3=Puja Gupta |author4=Harikesavan Krishnan |author5=Erez Zadok |author6=Mohammad Nayyer Zubair | year=2004 | work=Technical Report FSL-04-01b | publisher=[[Stony Brook University]]}} * {{Github|rpodgorny/unionfs-fuse|unionfs-fuse}} β A [[FUSE (Linux)|FUSE]]-based alternative implementation of Unionfs * [http://funionfs.apiou.org/?lng=en FunionFS] β Another FUSE-based implementation of Unionfs * [https://people.freebsd.org/~daichi/unionfs/ The new unionfs implementation for FreeBSD and status of merging] (2007-10-23) * [http://www.am-utils.org/docs/zen/zen.html On Incremental File System Development] * [http://alumnus.caltech.edu/~muresan/projects/lufs_unionfs.html LUFS-based unionfs for Linux] {{Webarchive|url=https://web.archive.org/web/20060828225503/http://alumnus.caltech.edu/~muresan/projects/lufs_unionfs.html |date=28 August 2006 }} (based on LUFS) * [http://www.denx.de/wiki/DULG/OverlayFileSystems DENX U-Boot and Linux Guide: Overlay File Systems] {{File systems}} [[Category:Free special-purpose file systems]] [[Category:File systems supported by the Linux kernel]] [[Category:Union file systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:File systems
(
edit
)
Template:Github
(
edit
)
Template:Infobox filesystem
(
edit
)
Template:Official website
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Webarchive
(
edit
)