posixovl(1)

πŸ“¦ version 1.4, in opensuse-leap 16.0

posixovl(1) β€” The POSIX Overlay Filesystem πŸ’…

okay bestie, welcome to the posixovl(1) manual β€” the one where a lower filesystem gets main character energy and cosplays as fully POSIX-capable. ✨

πŸ’– NAME πŸ’–

posixovl β€” The POSIX Overlay Filesystem. That's the name, and it's giving "I can fix him" for filesystems. 😭

✨ SYNTAX ✨

mount.posixovl [-FH] [-S source_dir] target_dir [-- fuse_opts]

No invented flags here, periodt.

πŸ¦‹ DESCRIPTION πŸ¦‹

posixovl provides a filesystem view that supports various POSIX operations while using an otherwise incapable lower filesystem. Filesystems with all kinds of POSIXness can be utilitzed. VFAT is a common denominator when it comes to cross-compatibility, though NTFS β€” its features are unused in Linux β€” would be another possibility. Native POSIX-capable filesystems can be used too, though that seems like an unusual application of posixovl.

πŸ’… OPTIONS πŸ’…

If no source directory is given with an -S option, the target directory specifies both source and target (mountpoint), yielding an "overmount", whereby the contents of the lower filesystem may become inaccessible while the mount is active (which may be a good thing, depending on your viewpoint). πŸ‘€

  • -F β€” Disable permission and ownership checks on the lower filesystem. Normally these would be used to check for POSIX filesystems mounted inside a non-POSIX tree. (For example, where /vfat is vfat, and /vfat/xfs is a POSIX-behaving filesystem.) 🫢
  • -H β€” When this option is enabled and a hardlink in the posixovl namespace is created, the contents of the file will be replicated in the lower filesystem rather than using zero-sized placeholder files. Note that the replicas will not be updated later on when editing the inode through posixovl. 😭
  • -S source_dir β€” This option may be used to specify an alternate path for the lower directory. πŸŽ€

πŸ‘‘ SUPPORTED OPERATIONS πŸ‘‘

posixovl will emulate the following calls if the lower filesystem is incapable of supporting these operations:

  • chmod
  • chown
  • hard links
  • mkfifo
  • mknod
  • symbolic links

The following currently only work in passthrough mode (when using a lower filesystem that already supports these):

  • Linux ACLs/xattrs

Missing suppot:

  • Case-sensitivity

🌸 NOTES 🌸

Using posixovl on an already POSIX-behaving filesystem (e.g. XFS) incurs some issues, since detecting whether a path is POSIX behaving or not is difficult. Hence, the following decision was made:

  • permissions will be set to the default permissions (see below) unless a HCB (hidden control block, the metadata files for posixovl) is found that can override these
  • all lower-level files will be operated on/created with the user who inititated the mount

If no HCB exists for a file or directory, the default permissions are rw-r--r-- or rwxr-xr-x, respectively. The owner and group of the inode will be the owner/group of the real file.

Each non-regular, non-directory virtual file will have a zero-size real file. (Simplifies handling, and makes it apprarent the object exists when using other operating systems.)

df will show:

$ df -Tah
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     vfat    5.9G  2.1G  3.9G  35% /windows/D
posix-overlay(/windows/D)
     fuse.posixovl    5.9G  2.1G  3.9G  35% /windows/D

In general, posixovl does not handle case-insensitivity of the underlying filesystem (in case of vfat, for example). If you create a file "X0" on vfat, it is usually lowercased to "x0", which may break some software, namely X.org. In order to make vfat behave more POSIX-like, the following mount options are recommended:

$ mount -t vfat /dev/hda1 /windows/D -o check=s,shortname=mixed
πŸ¦‹ Lowkey important vibe check: that vfat lowercase situation is real, bestie β€” X0 becoming x0 can absolutely wreck X.org's whole day. πŸ’€

πŸŽ€ AUTHORS πŸŽ€

posixovl and this manpage were written by Jan Engelhardt. πŸ’œ

Development of posixovl was sponsored by Slax (http://www.slax.org/). 🌈

πŸ’– That's the posixovl(1) page β€” source/version: posixovl, date: 2010-12-07. Mwah, bestie! 🫢

πŸ“¦ where this page comes from