summaryrefslogtreecommitdiffstats
path: root/upstream/fedora-rawhide/man8/btrfs-filesystem.8
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/fedora-rawhide/man8/btrfs-filesystem.8')
-rw-r--r--upstream/fedora-rawhide/man8/btrfs-filesystem.8651
1 files changed, 651 insertions, 0 deletions
diff --git a/upstream/fedora-rawhide/man8/btrfs-filesystem.8 b/upstream/fedora-rawhide/man8/btrfs-filesystem.8
new file mode 100644
index 00000000..f73467d9
--- /dev/null
+++ b/upstream/fedora-rawhide/man8/btrfs-filesystem.8
@@ -0,0 +1,651 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "BTRFS-FILESYSTEM" "8" "Feb 14, 2024" "6.7.1" "BTRFS"
+.SH NAME
+btrfs-filesystem \- command group that primarily does work on the whole filesystems
+.SH SYNOPSIS
+.sp
+\fBbtrfs filesystem\fP <subcommand> <args>
+.SH DESCRIPTION
+.sp
+\fBbtrfs filesystem\fP is used to perform several whole filesystem level tasks,
+including all the regular filesystem operations like resizing, space stats,
+label setting/getting, and defragmentation. There are other whole filesystem
+tasks like scrub or balance that are grouped in separate commands.
+.SH SUBCOMMAND
+.INDENT 0.0
+.TP
+.B df [options] <path>
+Show a terse summary information about allocation of block group types of a given
+mount point. The original purpose of this command was a debugging helper. The
+output needs to be further interpreted and is not suitable for quick overview.
+.sp
+An example with description:
+.INDENT 7.0
+.IP \(bu 2
+device size: \fI1.9TiB\fP, one device, no RAID
+.IP \(bu 2
+filesystem size: \fI1.9TiB\fP
+.IP \(bu 2
+created with: \fBmkfs.btrfs \-d single \-m single\fP
+.UNINDENT
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+$ btrfs filesystem df /path
+Data, single: total=1.15TiB, used=1.13TiB
+System, single: total=32.00MiB, used=144.00KiB
+Metadata, single: total=12.00GiB, used=6.45GiB
+GlobalReserve, single: total=512.00MiB, used=0.00B
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.INDENT 7.0
+.IP \(bu 2
+\fIData\fP, \fISystem\fP and \fIMetadata\fP are separate block group types.
+\fIGlobalReserve\fP is an artificial and internal emergency space, see
+below.
+.IP \(bu 2
+\fIsingle\fP \-\- the allocation profile, defined at mkfs time
+.IP \(bu 2
+\fItotal\fP \-\- sum of space reserved for all allocation profiles of the
+given type, i.e. all Data/single. Note that it\(aqs not total size of
+filesystem.
+.IP \(bu 2
+\fIused\fP \-\- sum of used space of the above, i.e. file extents, metadata blocks
+.UNINDENT
+.sp
+\fIGlobalReserve\fP is an artificial and internal emergency space. It is used e.g.
+when the filesystem is full. Its \fItotal\fP size is dynamic based on the
+filesystem size, usually not larger than 512MiB, \fIused\fP may fluctuate.
+.sp
+The GlobalReserve is a portion of Metadata. In case the filesystem metadata is
+exhausted, \fIGlobalReserve/total + Metadata/used = Metadata/total\fP\&. Otherwise
+there appears to be some unused space of Metadata.
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-b|\-\-raw
+raw numbers in bytes, without the \fIB\fP suffix
+.TP
+.B \-h|\-\-human\-readable
+print human friendly numbers, base 1024, this is the default
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-H
+print human friendly numbers, base 1000
+.TP
+.B \-\-iec
+select the 1024 base for the following options, according to the IEC standard
+.TP
+.B \-\-si
+select the 1000 base for the following options, according to the SI standard
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-k|\-\-kbytes
+show sizes in KiB, or kB with \-\-si
+.TP
+.B \-m|\-\-mbytes
+show sizes in MiB, or MB with \-\-si
+.TP
+.B \-g|\-\-gbytes
+show sizes in GiB, or GB with \-\-si
+.TP
+.B \-t|\-\-tbytes
+show sizes in TiB, or TB with \-\-si
+.UNINDENT
+.sp
+If conflicting options are passed, the last one takes precedence.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B defragment [options] <file>|<dir> [<file>|<dir>...]
+Defragment file data on a mounted filesystem. Requires kernel 2.6.33 and newer.
+.sp
+If \fI\-r\fP is passed, files in dir will be defragmented recursively (not
+descending to subvolumes, mount points and directory symlinks).
+The start position and the number of bytes to defragment can be specified by
+start and length using \fI\-s\fP and \fI\-l\fP options below.
+Extents bigger than value given by \fI\-t\fP will be skipped, otherwise this value
+is used as a target extent size, but is only advisory and may not be reached
+if the free space is too fragmented.
+Use 0 to take the kernel default, which is 256KiB but may change in the future.
+You can also turn on compression in defragment operations.
+.sp
+\fBWARNING:\fP
+.INDENT 7.0
+.INDENT 3.5
+Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14\-rc2 as well as
+with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or ≥ 3.13.4 will break up
+the reflinks of COW data (for example files copied with \fBcp \-\-reflink\fP,
+snapshots or de\-duplicated data).
+This may cause considerable increase of space usage depending on the broken up
+reflinks.
+.UNINDENT
+.UNINDENT
+.sp
+\fBNOTE:\fP
+.INDENT 7.0
+.INDENT 3.5
+Directory arguments without \fI\-r\fP do not defragment files recursively but will
+defragment certain internal trees (extent tree and the subvolume tree). This has been
+confusing and could be removed in the future.
+.UNINDENT
+.UNINDENT
+.sp
+For \fIstart\fP, \fIlen\fP, \fIsize\fP it is possible to append
+units designator: \fIK\fP, \fIM\fP, \fIG\fP, \fIT\fP, \fIP\fP, or \fIE\fP, which represent
+KiB, MiB, GiB, TiB, PiB, or EiB, respectively (case does not matter).
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-c[<algo>]
+compress file contents while defragmenting. Optional argument selects the compression
+algorithm, \fIzlib\fP (default), \fIlzo\fP or \fIzstd\fP\&. Currently it\(aqs not possible to select no
+compression. See also section \fIEXAMPLES\fP\&.
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-r
+defragment files recursively in given directories, does not descend to
+subvolumes or mount points
+.TP
+.B \-f
+flush data for each file before going to the next file.
+.sp
+This will limit the amount of dirty data to current file, otherwise the amount
+accumulates from several files and will increase system load. This can also lead
+to ENOSPC if there\(aqs too much dirty data to write and it\(aqs not possible to make
+the reservations for the new data (i.e. how the COW design works).
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-s <start>[kKmMgGtTpPeE]
+defragmentation will start from the given offset, default is beginning of a file
+.TP
+.B \-l <len>[kKmMgGtTpPeE]
+defragment only up to \fIlen\fP bytes, default is the file size
+.TP
+.B \-t <size>[kKmMgGtTpPeE]
+target extent size, do not touch extents bigger than \fIsize\fP, default: 32MiB
+.sp
+The value is only advisory and the final size of the extents may differ,
+depending on the state of the free space and fragmentation or other internal
+logic. Reasonable values are from tens to hundreds of megabytes.
+.UNINDENT
+.INDENT 7.0
+.TP
+.BI \-\-step \ SIZE
+Perform defragmention in the range in SIZE steps and flush (\fI\-f\fP) after each one.
+The range is default (the whole file) or given by \fI\-s\fP and \fI\-l\fP, split into
+the steps or done in one go if the step is larger. Minimum range size is 256KiB.
+.TP
+.B \-v
+(deprecated) alias for global \fI\-v\fP option
+.UNINDENT
+.TP
+.B du [options] <path> [<path>..]
+Calculate disk usage of the target files using FIEMAP. For individual
+files, it will report a count of total bytes, and exclusive (not
+shared) bytes. We also calculate a \(aqset shared\(aq value which is
+described below.
+.sp
+Each argument to \fBbtrfs filesystem du\fP will have a \fIset shared\fP value
+calculated for it. We define each \fIset\fP as those files found by a
+recursive search of an argument (recursion descends to subvolumes but not
+mount points). The \fIset shared\fP value then is a sum of all shared space
+referenced by the set.
+.sp
+\fIset shared\fP takes into account overlapping shared extents, hence it
+isn\(aqt as simple as adding up shared extents.
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-s|\-\-summarize
+display only a total for each argument
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-\-raw
+raw numbers in bytes, without the \fIB\fP suffix.
+.TP
+.B \-\-human\-readable
+print human friendly numbers, base 1024, this is the default
+.TP
+.B \-\-iec
+select the 1024 base for the following options, according to the IEC standard.
+.TP
+.B \-\-si
+select the 1000 base for the following options, according to the SI standard.
+.TP
+.B \-\-kbytes
+show sizes in KiB, or kB with \-\-si.
+.TP
+.B \-\-mbytes
+show sizes in MiB, or MB with \-\-si.
+.TP
+.B \-\-gbytes
+show sizes in GiB, or GB with \-\-si.
+.TP
+.B \-\-tbytes
+show sizes in TiB, or TB with \-\-si.
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
+.B label [<device>|<mountpoint>] [<newlabel>]
+Show or update the label of a filesystem. This works on a mounted filesystem or
+a filesystem image.
+.sp
+The \fInewlabel\fP argument is optional. Current label is printed if the argument
+is omitted.
+.sp
+\fBNOTE:\fP
+.INDENT 7.0
+.INDENT 3.5
+The maximum allowable length shall be less than 256 chars and must not contain
+a newline. The trailing newline is stripped automatically.
+.UNINDENT
+.UNINDENT
+.TP
+.B mkswapfile [\-s size] file
+Create a new file that\(aqs suitable and formatted as a swapfile. Default
+size is 2GiB, fixed page size 4KiB, minimum size is 40KiB.
+.sp
+A swapfile must be created in a specific way: NOCOW and preallocated.
+Subvolume containing a swapfile cannot be snapshotted and blocks of an
+activated swapfile cannot be balanced.
+.sp
+Swapfile creation can be achieved by standalone commands too. Activation
+needs to be done by command \fBswapon(8)\fP\&. See also command
+\fBbtrfs inspect\-internal map\-swapfile\fP
+and the \fI\%Swapfile feature\fP description.
+.sp
+\fBNOTE:\fP
+.INDENT 7.0
+.INDENT 3.5
+The command is a simplified version of \(aqmkswap\(aq, if you want to set
+label, page size, or other parameters please use \(aqmkswap\(aq proper.
+.UNINDENT
+.UNINDENT
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-s|\-\-size SIZE
+Create swapfile of a given size SIZE (accepting k/m/g/e/p
+suffix).
+.TP
+.B \-U|\-\-uuid UUID
+specify UUID to use, or a special value: clear (all zeros), random,
+time (time\-based random)
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
+.B resize [options] [<devid>:][+/\-]<size>[kKmMgGtTpPeE]|[<devid>:]max <path>
+Resize a mounted filesystem identified by \fIpath\fP\&. A particular device
+can be resized by specifying a \fIdevid\fP\&.
+.sp
+\fBWARNING:\fP
+.INDENT 7.0
+.INDENT 3.5
+If \fIpath\fP is a file containing a BTRFS image then resize does not work
+as expected and does not resize the image. This would resize the underlying
+filesystem instead.
+.UNINDENT
+.UNINDENT
+.sp
+The \fIdevid\fP can be found in the output of \fBbtrfs filesystem show\fP and
+defaults to 1 if not specified.
+The \fIsize\fP parameter specifies the new size of the filesystem.
+If the prefix \fI+\fP or \fI\-\fP is present the size is increased or decreased
+by the quantity \fIsize\fP\&.
+If no units are specified, bytes are assumed for \fIsize\fP\&.
+Optionally, the size parameter may be suffixed by one of the following
+unit designators: \fIK\fP, \fIM\fP, \fIG\fP, \fIT\fP, \fIP\fP, or \fIE\fP, which represent
+KiB, MiB, GiB, TiB, PiB, or EiB, respectively (case does not matter).
+.sp
+If \fImax\fP is passed, the filesystem will occupy all available space on the
+device respecting \fIdevid\fP (remember, devid 1 by default).
+.sp
+The resize command does not manipulate the size of underlying
+partition. If you wish to enlarge/reduce a filesystem, you must make sure you
+can expand the partition before enlarging the filesystem and shrink the
+partition after reducing the size of the filesystem. This can done using
+\fBfdisk(8)\fP or \fBparted(8)\fP to delete the existing partition and recreate
+it with the new desired size. When recreating the partition make sure to use
+the same starting partition offset as before.
+.sp
+Growing is usually instant as it only updates the size. However, shrinking could
+take a long time if there are data in the device area that\(aqs beyond the new
+end. Relocation of the data takes time.
+.sp
+See also section \fIEXAMPLES\fP\&.
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-\-enqueue
+wait if there\(aqs another exclusive operation running, otherwise continue
+.UNINDENT
+.TP
+.B show [options] [<path>|<uuid>|<device>|<label>]
+Show the btrfs filesystem with some additional info about devices and space
+allocation.
+.sp
+If no option none of \fIpath\fP/\fIuuid\fP/\fIdevice\fP/\fIlabel\fP is passed, information
+about all the BTRFS filesystems is shown, both mounted and unmounted.
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-m|\-\-mounted
+probe kernel for mounted BTRFS filesystems
+.TP
+.B \-d|\-\-all\-devices
+scan all devices under \fB/dev\fP, otherwise the devices list is extracted from the
+\fB/proc/partitions\fP file. This is a fallback option if there\(aqs no device node
+manager (like udev) available in the system.
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-\-raw
+raw numbers in bytes, without the \fIB\fP suffix
+.TP
+.B \-\-human\-readable
+print human friendly numbers, base 1024, this is the default
+.TP
+.B \-\-iec
+select the 1024 base for the following options, according to the IEC standard
+.TP
+.B \-\-si
+select the 1000 base for the following options, according to the SI standard
+.TP
+.B \-\-kbytes
+show sizes in KiB, or kB with \-\-si
+.TP
+.B \-\-mbytes
+show sizes in MiB, or MB with \-\-si
+.TP
+.B \-\-gbytes
+show sizes in GiB, or GB with \-\-si
+.TP
+.B \-\-tbytes
+show sizes in TiB, or TB with \-\-si
+.UNINDENT
+.TP
+.B sync <path>
+Force a sync of the filesystem at \fIpath\fP, similar to the \fBsync(1)\fP command. In
+addition, it starts cleaning of deleted subvolumes. To wait for the subvolume
+deletion to complete use the \fBbtrfs subvolume sync\fP command.
+.TP
+.B usage [options] <path> [<path>...]
+Show detailed information about internal filesystem usage. This is supposed to
+replace the \fBbtrfs filesystem df\fP command in the long run.
+.sp
+The level of detail can differ if the command is run under a regular or the
+root user (due to use of restricted ioctl). For both there\(aqs a summary section
+with information about space usage:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+$ btrfs filesystem usage /path
+WARNING: cannot read detailed chunk info, RAID5/6 numbers will be incorrect, run as root
+Overall:
+ Device size: 1.82TiB
+ Device allocated: 1.17TiB
+ Device unallocated: 669.99GiB
+ Device missing: 0.00B
+ Device slack: 1.00GiB
+ Used: 1.14TiB
+ Free (estimated): 692.57GiB (min: 692.57GiB)
+ Free (statfs, df) 692.57GiB
+ Data ratio: 1.00
+ Metadata ratio: 1.00
+ Global reserve: 512.00MiB (used: 0.00B)
+ Multiple profiles: no
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.INDENT 7.0
+.IP \(bu 2
+\fIDevice size\fP \-\- sum of raw device capacity available to the
+filesystem, note that this may not be the same as the total device
+size (the difference is accounted as slack)
+.IP \(bu 2
+\fIDevice allocated\fP \-\- sum of total space allocated for
+data/metadata/system profiles, this also accounts space reserved but
+not yet used for extents
+.IP \(bu 2
+\fIDevice unallocated\fP \-\- the remaining unallocated space for future
+allocations (difference of the above two numbers)
+.IP \(bu 2
+\fIDevice missing\fP \-\- sum of capacity of all missing devices
+.IP \(bu 2
+\fIDevice slack\fP \-\- sum of slack space on all devices (difference
+between entire device size and the space occupied by filesystem)
+.IP \(bu 2
+\fIUsed\fP \-\- sum of the used space of data/metadata/system profiles, not
+including the reserved space
+.IP \(bu 2
+\fIFree (estimated)\fP \-\- approximate size of the remaining free space
+usable for data, including currently allocated space and estimating
+the usage of the unallocated space based on the block group profiles,
+the \fImin\fP is the lower bound of the estimate in case multiple
+profiles are present
+.IP \(bu 2
+\fIFree (statfs, df)\fP \-\- the amount of space available for data as
+reported by the \fBstatfs/statvfs\fP syscall, also returned as \fIAvail\fP in the
+output of \fBdf\fP\&. The value is calculated in a different way and may
+not match the estimate in some cases (e.g. multiple profiles).
+.IP \(bu 2
+\fIData ratio\fP \-\- ratio of total space for data including redundancy or
+parity to the effectively usable data space, e.g. single is 1.0, RAID1
+is 2.0 and for RAID5/6 it depends on the number of devices
+.IP \(bu 2
+\fIMetadata ratio\fP \-\- ditto, for metadata
+.IP \(bu 2
+\fIGlobal reserve\fP \-\- portion of metadata currently used for global
+block reserve, used for emergency purposes (like deletion on a full
+filesystem)
+.IP \(bu 2
+\fIMultiple profiles\fP \-\- what block group types (data, metadata) have
+more than one profile (single, raid1, ...), see \fI\%btrfs(5)\fP section
+\fI\%FILESYSTEMS WITH MULTIPLE PROFILES\fP\&.
+.UNINDENT
+.sp
+And on a zoned filesystem there are two more lines in the \fIDevice\fP section:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+Device zone unusable: 5.13GiB
+Device zone size: 256.00MiB
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.INDENT 7.0
+.IP \(bu 2
+\fIDevice zone unusable\fP \-\- sum of of space that\(aqs been used in the
+past but now is not due to COW and not referenced anymore, the chunks
+have to be reclaimed and zones reset to make it usable again
+.IP \(bu 2
+\fIDevice zone size\fP \-\- the reported zone size of the host\-managed
+device, same for all devices
+.UNINDENT
+.sp
+The root user will also see stats broken down by block group types:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+Data,single: Size:1.15TiB, Used:1.13TiB (98.26%)
+ /dev/sdb 1.15TiB
+
+Metadata,single: Size:12.00GiB, Used:6.45GiB (53.75%)
+ /dev/sdb 12.00GiB
+
+System,single: Size:32.00MiB, Used:144.00KiB (0.44%)
+ /dev/sdb 32.00MiB
+
+Unallocated:
+ /dev/sdb 669.99GiB
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+\fIData\fP is block group type, \fIsingle\fP is block group profile, \fISize\fP is total
+size occupied by this type, \fIUsed\fP is the actually used space, the percent is
+ratio of \fIUsed/Size\fP\&. The \fIUnallocated\fP is remaining space.
+.sp
+\fBOptions\fP
+.INDENT 7.0
+.TP
+.B \-b|\-\-raw
+raw numbers in bytes, without the \fIB\fP suffix
+.TP
+.B \-h|\-\-human\-readable
+print human friendly numbers, base 1024, this is the default
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-H
+print human friendly numbers, base 1000
+.TP
+.B \-\-iec
+select the 1024 base for the following options, according to the IEC standard
+.TP
+.B \-\-si
+select the 1000 base for the following options, according to the SI standard
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-k|\-\-kbytes
+show sizes in KiB, or kB with \-\-si
+.TP
+.B \-m|\-\-mbytes
+show sizes in MiB, or MB with \-\-si
+.TP
+.B \-g|\-\-gbytes
+show sizes in GiB, or GB with \-\-si
+.TP
+.B \-t|\-\-tbytes
+show sizes in TiB, or TB with \-\-si
+.UNINDENT
+.INDENT 7.0
+.TP
+.B \-T
+show data in tabular format
+.UNINDENT
+.sp
+If conflicting options are passed, the last one takes precedence.
+.UNINDENT
+.SH EXAMPLES
+.sp
+\fB$ btrfs filesystem defrag \-v \-r dir/\fP
+.sp
+Recursively defragment files under \fBdir/\fP, print files as they are processed.
+The file names will be printed in batches, similarly the amount of data triggered
+by defragmentation will be proportional to last N printed files. The system dirty
+memory throttling will slow down the defragmentation but there can still be a lot
+of IO load and the system may stall for a moment.
+.sp
+\fB$ btrfs filesystem defrag \-v \-r \-f dir/\fP
+.sp
+Recursively defragment files under \fBdir/\fP, be verbose and wait until all blocks
+are flushed before processing next file. You can note slower progress of the
+output and lower IO load (proportional to currently defragmented file).
+.sp
+\fB$ btrfs filesystem defrag \-v \-r \-f \-clzo dir/\fP
+.sp
+Recursively defragment files under \fBdir/\fP, be verbose, wait until all blocks are
+flushed and force file compression.
+.sp
+\fB$ btrfs filesystem defrag \-v \-r \-t 64M dir/\fP
+.sp
+Recursively defragment files under \fBdir/\fP, be verbose and try to merge extents
+to be about 64MiB. As stated above, the success rate depends on actual free
+space fragmentation and the final result is not guaranteed to meet the target
+even if run repeatedly.
+.sp
+\fB$ btrfs filesystem resize \-1G /path\fP
+.sp
+\fB$ btrfs filesystem resize 1:\-1G /path\fP
+.sp
+Shrink size of the filesystem\(aqs device id 1 by 1GiB. The first syntax expects a
+device with id 1 to exist, otherwise fails. The second is equivalent and more
+explicit. For a single\-device filesystem it\(aqs typically not necessary to
+specify the devid though.
+.sp
+\fB$ btrfs filesystem resize max /path\fP
+.sp
+\fB$ btrfs filesystem resize 1:max /path\fP
+.sp
+Let\(aqs assume that devid 1 exists and the filesystem does not occupy the whole
+block device, e.g. it has been enlarged and we want to grow the filesystem. By
+simply using \fImax\fP as size we will achieve that.
+.sp
+\fBNOTE:\fP
+.INDENT 0.0
+.INDENT 3.5
+There are two ways to minimize the filesystem on a given device. The
+\fBbtrfs inspect\-internal min\-dev\-size\fP command, or iteratively shrink in steps.
+.UNINDENT
+.UNINDENT
+.SH EXIT STATUS
+.sp
+\fBbtrfs filesystem\fP returns a zero exit status if it succeeds. Non zero is
+returned in case of failure.
+.SH AVAILABILITY
+.sp
+\fBbtrfs\fP is part of btrfs\-progs. Please refer to the documentation at
+\fI\%https://btrfs.readthedocs.io\fP\&.
+.SH SEE ALSO
+.sp
+\fI\%btrfs\-subvolume(8)\fP,
+\fI\%mkfs.btrfs(8)\fP
+.\" Generated by docutils manpage writer.
+.