path: root/Documentation
diff options
authorEric Sandeen <>2014-06-11 17:14:55 -0500
committerDavid Sterba <>2014-08-22 14:39:34 +0200
commit26341f734d6d16b5025616f8ad83755512ac996e (patch)
tree8cfbb71144f608423d9a2387cae4043f541edd4e /Documentation
parent8559a1626f6e36d32b07925d35824593eb2b0380 (diff)
btrfs-progs: add mount options to btrfs-mount.5
This is a straight cut and paste from the util-linux mount manpage into btrfs-mount.5 It's pretty much impossible for util-linux to keep up with every filesystem out there, and Karel has more than once expressed a wish that mount options move into fs-specific manpages. So, here we go. The way btrfs asciidoc is generated, there's not a trivial way to have both btrfs(5) and btrfs(8) so I named it btrfs-mount(5) for now. A bit ick and I'm open to suggestions. Signed-off-by: Eric Sandeen <> Signed-off-by: David Sterba <>
Diffstat (limited to 'Documentation')
2 files changed, 208 insertions, 3 deletions
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 0ff81da3..f1a07a2d 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -31,13 +31,21 @@ MAN8_TXT += btrfs-replace.txt
MAN8_TXT += btrfs-restore.txt
MAN8_TXT += btrfs-property.txt
+# Mount manpage
+MAN5_TXT += btrfs-mount.txt
MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
+DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))
+GZ_MAN5 = $(patsubst %.txt,%.5.gz,$(MAN5_TXT))
DOC_MAN8 = $(patsubst %.txt,%.8,$(MAN8_TXT))
GZ_MAN8 = $(patsubst %.txt,%.8.gz,$(MAN8_TXT))
mandir ?= $(prefix)/share/man
man8dir = $(mandir)/man8
+man5dir = $(mandir)/man5
ASCIIDOC = asciidoc
@@ -67,25 +75,36 @@ endif
all: man
-man: man8
+man: man5 man8
+man5: $(GZ_MAN5)
man8: $(GZ_MAN8)
install: install-man
install-man: man
+ $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
+ $(INSTALL) -m 644 $(GZ_MAN5) $(DESTDIR)$(man5dir)
$(INSTALL) -m 644 $(GZ_MAN8) $(DESTDIR)$(man8dir)
$(LNS) btrfs-check.8.gz $(DESTDIR)$(man8dir)/btrfsck.8.gz
- $(QUIET_RM)$(RM) *.xml *.xml+ *.8 *.8.gz
+ $(QUIET_RM)$(RM) *.xml *.xml+ *.5 *.5.gz *.8 *.8.gz
+%.5.gz : %.5
+ $(QUIET_GZIP)$(GZIPCMD) -n -c $< > $@
%.8.gz : %.8
$(QUIET_GZIP)$(GZIPCMD) -n -c $< > $@
+%.5 : %.xml
+ $(QUIET_XMLTO)$(RM) $@ && \
+ $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
%.8 : %.xml
$(QUIET_XMLTO)$(RM) $@ && \
%.xml : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@.tmp[12] $@ && \
sed -e "s/\(<[^>]\+>\)/'\1'/g" < $< > $@.tmp1 && \
diff --git a/Documentation/btrfs-mount.txt b/Documentation/btrfs-mount.txt
new file mode 100644
index 00000000..4433a784
--- /dev/null
+++ b/Documentation/btrfs-mount.txt
@@ -0,0 +1,186 @@
+btrfs-mount - mount options for the btrfs filesystem
+This document describes mount options specific to the btrfs filesystem.
+Other generic mount options are available,and are described in the
+`mount`(8) manpage.
+ Debugging option to force all block allocations above a certain
+ byte threshold on each block device. The value is specified in
+ bytes, optionally with a K, M, or G suffix, case insensitive.
+ Default is 1MB.
+ Disable/enable auto defragmentation.
+ Auto defragmentation detects small random writes into files and queue
+ them up for the defrag process. Works best for small files;
+ Not well suited for large database workloads.
+ These debugging options control the behavior of the integrity checking
+ module (the BTRFS_FS_CHECK_INTEGRITY config option required). +
+ +
+ `check_int` enables the integrity checker module, which examines all
+ block write requests to ensure on-disk consistency, at a large
+ memory and CPU cost. +
+ +
+ `check_int_data` includes extent data in the integrity checks, and
+ implies the check_int option. +
+ +
+ `check_int_print_mask` takes a bitmask of BTRFSIC_PRINT_MASK_* values
+ as defined in 'fs/btrfs/check-integrity.c', to control the integrity
+ checker module behavior. +
+ +
+ See comments at the top of 'fs/btrfs/check-integrity.c'
+ for more info.
+ Set the interval of periodic commit, 30 seconds by default. Higher
+ values defer data being synced to permanent storage with obvious
+ consequences when the system crashes. The upper bound is not forced,
+ but a warning is printed if it's more than 300 seconds (5 minutes).
+ Control BTRFS file data compression. Type may be specified as "zlib"
+ "lzo" or "no" (for no compression, used for remounting). If no type
+ is specified, zlib is used. If compress-force is specified,
+ all files will be compressed, whether or not they compress well.
+ If compression is enabled, nodatacow and nodatasum are disabled.
+ Allow mounts to continue with missing devices. A read-write mount may
+ fail with too many devices missing, for example if a stripe member
+ is completely missing.
+ Specify a device during mount so that ioctls on the control device
+ can be avoided. Especially useful when trying to mount a multi-device
+ setup as root. May be specified multiple times for multiple devices.
+ Disable/enable discard mount option.
+ Discard issues frequent commands to let the block device reclaim space
+ freed by the filesystem.
+ This is useful for SSD devices, thinly provisioned
+ LUNs and virtual machine images, but may have a significant
+ performance impact. (The fstrim command is also available to
+ initiate batch trims from userspace).
+ Disable/enable debugging option to be more verbose in some ENOSPC conditions.
+ Action to take when encountering a fatal error. +
+ "bug" - BUG() on a fatal error. This is the default. +
+ "panic" - panic() on a fatal error.
+ The `flushoncommit` mount option forces any data dirtied by a write in a
+ prior transaction to commit as part of the current commit. This makes
+ the committed state a fully consistent view of the file system from the
+ application's perspective (i.e., it includes all completed file system
+ operations). This was previously the behavior only when a snapshot is
+ created.
+ Enable free inode number caching. Defaults to off due to an overflow
+ problem when the free space crcs don't fit inside a single page.
+ Specify the maximum amount of space, in bytes, that can be inlined in
+ a metadata B-tree leaf. The value is specified in bytes, optionally
+ with a K, M, or G suffix, case insensitive. In practice, this value
+ is limited by the root sector size, with some space unavailable due
+ to leaf headers. For a 4k sectorsize, max inline data is ~3900 bytes.
+ Specify that 1 metadata chunk should be allocated after every
+ 'value' data chunks. Off by default.
+ Enable/disable support for Posix Access Control Lists (ACLs). See the
+ `acl`(5) manual page for more information about ACLs.
+ ensure that certain IOs make it through the device cache and are on
+ persistent storage. If disabled on a device with a volatile
+ (non-battery-backed) write-back cache, nobarrier option will lead to
+ filesystem corruption on a system crash or power loss.
+ Enable/disable data copy-on-write for newly created files.
+ Nodatacow implies nodatasum, and disables all compression.
+ Enable/disable data checksumming for newly created files.
+ Datasum implies datacow.
+ Enable/disable the tree logging used for fsync and O_SYNC writes.
+ Enable autorecovery attempts if a bad tree root is found at mount time.
+ Currently this scans a list of several previous tree roots and tries to
+ use the first readable.
+ Force check and rebuild procedure of the UUID tree. This should not
+ normally be needed.
+ Skip automatic resume of interrupted balance operation after mount.
+ May be resumed with "btrfs balance resume."
+ Disable freespace cache loading without clearing the cache.
+ Force clearing and rebuilding of the disk space cache if something
+ has gone wrong.
+ Options to control ssd allocation schemes. By default, BTRFS will
+ enable or disable ssd allocation heuristics depending on whether a
+ rotational or nonrotational disk is in use. The ssd and nossd options
+ can override this autodetection. +
+ The ssd_spread mount option attempts to allocate into big chunks
+ of unused space, and may perform better on low-end ssds. ssd_spread
+ implies ssd, enabling all other ssd heuristics as well.
+ Mount subvolume at 'path' rather than the root subvolume. The
+ 'path' is relative to the top level subvolume.
+ Mount subvolume specified by an ID number rather than the root subvolume.
+ This allows mounting of subvolumes which are not in the root of the mounted
+ filesystem.
+ You can use "btrfs subvolume list" to see subvolume ID numbers.
+*subvolrootid='objectid' (deprecated)*::
+ Mount subvolume specified by 'objectid' rather than the root subvolume.
+ This allows mounting of subvolumes which are not in the root of the mounted
+ filesystem.
+ You can use "btrfs subvolume show" to see the object ID for a subvolume.
+ The number of worker threads to allocate. The default number is equal
+ to the number of CPUs + 2, or 8, whichever is smaller.
+ Allow subvolumes to be deleted by a non-root user. Use with caution.