BTRFS(8)
๐ btrfs โ the btrfs(8) manual, but make it bestie ๐
okay so bestie, welcome to btrfs, the toolbox for managing btrfs filesystems โจ this is the manual page for the btrfs utility itself (that's the manual name, and honestly it's giving main character energy).
โจ SYNOPSIS โจ
btrfs [global options] <group> [<group>...] <command> [options] [<args>]
๐ธ DESCRIPTION ๐ธ
So like, the btrfs utility is a toolbox for managing btrfs filesystems. It's got command groups for subvolumes, for devices, for whole-filesystem stuff, and for other specific actions too. Peep the COMMANDS section for the full roster ๐
There are also standalone tools for some tasks โ think btrfs-convert(8) or btrfstune(8) โ that were historically separate and/or just haven't been merged into the main utility yet. More deets in STANDALONE TOOLS ๐ฆ
And for other topics (mount options, etc.) please go look at the separate manual page btrfs(5) instead, okay? Not my department, that one's its own thing ๐
๐ COMMAND SYNTAX ๐
Any command name can be shortened, as long as the shortened form is unambiguous. BUT โ and this is important, bestie โ it's recommended to use full command names in scripts. Don't be chaotic in your scripts, it's not cute ๐
Every command group has its own manual page named btrfs-<group>.
For example: you can run btrfs sub snaps instead of btrfs subvolume snapshot. But btrfs file s is not allowed, because file s might be interpreted as either filesystem show or filesystem sync. Ambiguity is not the vibe ๐
If the command name is ambiguous, the list of conflicting options gets printed at you. Read it. It's helping.
Sizes โ both on input and output โ can be expressed in either SI or IEC-I units (see numfmt(1)) with the suffix B appended. And all numbers will be formatted according to the rules of the C locale, ignoring the shell locale (see locale(7)). Yes really, C locale, always, no cap ๐
Wanna get the overview of a given command? Use btrfs command --help, or btrfs [command...] help --full to print all the available options for all the commands. Obsessed.
There are also global options that get passed between btrfs and the group name, and they affect behaviour that isn't specific to the command โ like verbosity or the type of output:
btrfs -q subvolume create ...
btrfs --dry-run subvolume create ...
global options, bestie ๐
--format <format>โ if the command supports it, print subcommand output in that format (text,json)-v,--verboseโ increase the verbosity of the subcommand (chatty mode, love that for us)-q,--quietโ print only errors (minimalist queen โจ)--log <level>โ set the log level (default,info,verbose,debug,quiet)
The remaining options are relevant only for the main tool:
--helpโ print condensed help for all subcommands--versionโ print version string
๐ COMMANDS ๐
okay here's the lineup, each group has its own whole manual page:
balanceโ Balance btrfs filesystem chunks across single or several devices. Seebtrfs-balance(8)for details.checkโ Do off-line check on a btrfs filesystem. Seebtrfs-check(8)for details.deviceโ Manage devices managed by btrfs, including add/delete/scan and so on. Seebtrfs-device(8)for details.filesystemโ Manage a btrfs filesystem, including label setting/sync and so on. Seebtrfs-filesystem(8)for details.inspect-internalโ Debug tools for developers/hackers. Seebtrfs-inspect-internal(8)for details.propertyโ Get/set a property from/to a btrfs object. Seebtrfs-property(8)for details.qgroupโ Manage quota group (qgroup) for btrfs filesystem. Seebtrfs-qgroup(8)for details.quotaโ Manage quota on btrfs filesystem like enabling/rescan and etc. Seebtrfs-quota(8)andbtrfs-qgroup(8)for details.receiveโ Receive subvolume data from stdin/file for restore and etc. Seebtrfs-receive(8)for details.replaceโ Replace btrfs devices. Seebtrfs-replace(8)for details.rescueโ Try to rescue damaged btrfs filesystem. Seebtrfs-rescue(8)for details.restoreโ Try to restore files from a damaged btrfs filesystem. Seebtrfs-restore(8)for details.scrubโ Scrub a btrfs filesystem. Seebtrfs-scrub(8)for details.sendโ Send subvolume data to stdout/file for backup and etc. Seebtrfs-send(8)for details.subvolumeโ Create/delete/list/manage btrfs subvolume. Seebtrfs-subvolume(8)for details.
๐ฆ STANDALONE TOOLS ๐ฆ
So new functionality can be provided using a standalone tool. And if that functionality proves to be useful, then the standalone tool gets declared obsolete and its functionality gets copied over into the main tool. Obsolete tools are removed after a long (years) depreciation period. It's a whole lifecycle, it's giving evolution ๐ง
Tools that are still in active use without an equivalent in btrfs:
btrfs-convertโ in-place conversion from ext2/3/4 filesystems to btrfsbtrfstuneโ tweak some filesystem properties on an unmounted filesystembtrfs-select-superโ rescue tool to overwrite primary superblock from a spare copybtrfs-find-rootโ rescue helper to find tree roots in a filesystem
And for space-constrained environments, it's possible to build a single binary with the functionality of several standalone tools. This follows the concept of busybox, where the file name selects the functionality. It works for symlinks or hardlinks ๐ซถ The full list can be obtained with btrfs help --box.
๐ EXIT STATUS ๐
btrfs returns a zero exit status if it succeeds. Non-zero is returned in case of failure. That's it, that's the whole thing. If it didn't work, it will tell you, and it will not be subtle about it ๐ญ
๐ AVAILABILITY ๐
btrfs is part of btrfs-progs. Please refer to the documentation at <https://btrfs.readthedocs.io>.
โญ SEE ALSO โญ
btrfs(5), btrfs-balance(8), btrfs-check(8), btrfs-convert(8), btrfs-device(8), btrfs-filesystem(8), btrfs-inspect-internal(8), btrfs-property(8), btrfs-qgroup(8), btrfs-quota(8), btrfs-receive(8), btrfs-replace(8), btrfs-rescue(8), btrfs-restore(8), btrfs-scrub(8), btrfs-send(8), btrfs-subvolume(8), btrfstune(8), mkfs.btrfs(8)
okay that's the whole page bestie ๐ this was version 7.3, dated Oct 24, 2026, and it's part of btrfs-progs โ go mount something and slay, ily ๐โจ
๐ฆ where this page comes from
- arch rolling: btrfs-progs 7.3-1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms