@@ -9,11 +9,11 @@ fuse-overlayfs - overlayfs FUSE implementation
99.SH SYNOPSIS
1010.PP
1111mounting
12- fuse-overlayfs [-f] [- -debug] [-o OPTS] MOUNT_TARGET
12+ fuse-overlayfs [\ - f] [\-\ - debug] [\ - o OPTS] MOUNT_TARGET
1313
1414.PP
1515unmounting
16- fusermount -u mountpoint
16+ fusermount \ - u mountpoint
1717
1818
1919.SH DESCRIPTION
@@ -25,26 +25,26 @@ namespace.
2525
2626.SH OPTIONS
2727.PP
28- \fB - -debug\fP
28+ \fB \-\ -debug \fP
2929Enable debugging mode, can be very noisy.
3030
3131.PP
32- \fB -o lowerdir=low1[:low2...] \fP
32+ \fB \ -o lowerdir=low1[:low2...] \fP
3333A list of directories separated by \fB \f C :\fR \& . Their content is merged.
3434
3535.PP
36- \fB -o upperdir=upperdir \fP
36+ \fB \ -o upperdir=upperdir \fP
3737A directory merged on top of all the lowerdirs where all the changes
3838done to the file system will be written.
3939
4040.PP
41- \fB -o workdir=workdir \fP
41+ \fB \ -o workdir=workdir \fP
4242A directory used internally by fuse-overlays, must be on the same file
4343system as the upper dir.
4444
4545.PP
46- \fB -o uidmapping=UID:MAPPED-UID:LEN[,UID2:MAPPED-UID2:LEN2] \fP
47- \fB -o gidmapping=GID:MAPPED-GID:LEN[,GID2:MAPPED-GID2:LEN2] \fP
46+ \fB \ -o uidmapping=UID:MAPPED-UID:LEN[,UID2:MAPPED-UID2:LEN2] \fP
47+ \fB \ -o gidmapping=GID:MAPPED-GID:LEN[,GID2:MAPPED-GID2:LEN2] \fP
4848Specifies the dynamic UID/GID mapping used by fuse-overlayfs when
4949reading/writing files to the system.
5050
@@ -62,7 +62,7 @@ without requiring to chown the files.
6262For example, given on the host two files like:
6363
6464.PP
65- $ stat -c %u:%g lower/a lower/b
65+ $ stat \ - c %u:%g lower/a lower/b
66660:0
67671:1
6868
@@ -76,7 +76,7 @@ $ cat /proc/self/uid_map
7676We would see:
7777
7878.PP
79- $ stat -c %u:%g merged/a merged/b
79+ $ stat \ - c %u:%g merged/a merged/b
808065534:65534
818165534:65534
8282
@@ -87,32 +87,32 @@ mapped.
8787
8888.PP
8989In the above example, if we mount the fuse-overlayfs file system using:
90- \fB \f C -ouidmapping=0:1000:1:1:110000:65536,gidmapping=0:1000:1:1:110000:65536\fR ,
90+ \fB \f C \ - ouidmapping=0:1000:1:1:110000:65536,gidmapping=0:1000:1:1:110000:65536\fR ,
9191which is the namespace configuration specified on a single line, we'd
9292see from the same user namespace:
9393
9494.PP
95- $ stat -c %u:%g merged/a merged/b
95+ $ stat \ - c %u:%g merged/a merged/b
96960:0
97971:1
9898
9999.PP
100100Those are the same IDs visible from outside the user namespace.
101101
102102.PP
103- \fB -o squash_to_root \fP
103+ \fB \ -o squash_to_root \fP
104104Every file and directory is owned by the root user (0:0).
105105
106106.PP
107- \fB -o squash_to_uid=uid \fP
108- \fB -o squash_to_gid=gid \fP
107+ \fB \ -o squash_to_uid=uid \fP
108+ \fB \ -o squash_to_gid=gid \fP
109109Every file and directory is owned by the specified uid or gid.
110110
111111.PP
112112It has higher precedence over \fB squash_to_root \fP \& .
113113
114114.PP
115- \fB -o static_nlink \fP
115+ \fB \ -o static_nlink \fP
116116Set st_nlink to the static value 1 for all directories.
117117
118118.PP
@@ -122,9 +122,51 @@ be a slow operation. With this option enabled, the number of hard
122122links reported when running stat for any directory is 1.
123123
124124.PP
125- \fB -o noacl \fP
125+ \fB \ -o noacl \fP
126126Disable ACL support in the FUSE file system.
127127
128+ .PP
129+ \fB \- o xino=off|auto|on \fP
130+ Controls how \fI st_ino \fP values are generated for files exposed by fuse-overlayfs.
131+
132+ When all lower and upper layers reside on the same underlying device,
133+ fuse-overlayfs exposes the real inode number from the underlying filesystem.
134+ When layers span multiple devices, an opaque inode number is generated; by
135+ default this value is not stable across mounts.
136+
137+ The \fB xino \fP option modifies this behavior:
138+
139+ .PP
140+ \fB \- o xino=off \fP
141+ Disables extended inode generation. This matches the default behavior:
142+ when all layers are on the same device, the underlying inode number is used;
143+ otherwise an opaque, non‑stable inode number is returned.
144+
145+ .PP
146+ \fB \- o xino=auto \fP
147+ Attempts to generate stable inode numbers across mounts by hashing the file
148+ handle returned by \fI name_to_handle_at \fP (2).
149+ This mode is used only if all layers support \fI name_to_handle_at \fP (2); if any
150+ layer does not, behavior falls back to \fB xino=off \fP .
151+ If all layers are on the same device, the underlying inode number is still
152+ used, regardless of this setting.
153+
154+ .PP
155+ \fB \- o xino=on \fP
156+ Requires that all layers support \fI name_to_handle_at \fP (2). If they do, inode
157+ numbers are derived from a hash of the file handle and remain stable across
158+ mounts.
159+ If any layer does not support \fI name_to_handle_at \fP (2), the mount fails.
160+ As with other modes, when all layers are on the same device, the underlying
161+ inode number always takes precedence.
162+
163+ .PP
164+ \fB \- o ino32_t \fP
165+ Forces all returned \fI st_ino \fP values to be truncated to 32 bits.
166+
167+ This option exists solely for compatibility with older 32‑bit userspaces that
168+ cannot correctly handle 64‑bit inode numbers. It has no functional benefit on
169+ modern systems and should not be used unless required for legacy compatibility.
128170
129171.SH SEE ALSO
130172.PP
0 commit comments