mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-17 11:55:19 +00:00
173 lines
5.5 KiB
Plaintext
173 lines
5.5 KiB
Plaintext
|
btrfs-subvolume(8)
|
||
|
==================
|
||
|
|
||
|
NAME
|
||
|
----
|
||
|
btrfs-subvolume - control btrfs subvolume(s)
|
||
|
|
||
|
SYNOPSIS
|
||
|
--------
|
||
|
'btrfs subvolume' <subcommand> [<args>]
|
||
|
|
||
|
DESCRIPTION
|
||
|
-----------
|
||
|
'btrfs subvolume' is used to control the filesystem to create/delete/list/show
|
||
|
subvolumes and snapshots.
|
||
|
|
||
|
SUBVOLUME AND SNAPSHOT
|
||
|
----------------------
|
||
|
A subvolume in btrfs is not like an LVM logical volume, which is quite
|
||
|
independent from each other, a btrfs subvolume has its hierarchy and relations
|
||
|
between other subvolumes.
|
||
|
|
||
|
A subvolume in btrfs can be accessed in two ways.
|
||
|
|
||
|
1. From the parent subvolume +
|
||
|
When accessing from the parent subvolume, the subvolume can be used just
|
||
|
like a directory. It can have child subvolumes and its own files/directories.
|
||
|
|
||
|
2. Separate mounted filesystem +
|
||
|
When `mount`(8) using 'subvol' or 'subvolid' mount option, one can access
|
||
|
files/directories/subvolumes inside it, but nothing in parent subvolumes.
|
||
|
|
||
|
Also every btrfs filesystem has a default subvolume as its initially top-level
|
||
|
subvolume, whose subvolume id is 5(FS_TREE).
|
||
|
|
||
|
A btrfs snapshot is much like a subvolume, but shares its data(and metadata)
|
||
|
with other subvolume/snapshot. Due to the capabilities of COW, modifications
|
||
|
inside a snapshot will only show in a snapshot but not in its source subvolume.
|
||
|
|
||
|
Although in btrfs, subvolumes/snapshots are treated as directories, only
|
||
|
subvolume/snapshot can be the source of a snapshot, snapshot can not be made
|
||
|
from normal directories.
|
||
|
|
||
|
SUBCOMMAND
|
||
|
-----------
|
||
|
'create' [-i <qgroupid>] [<dest>]<name>::
|
||
|
Create a subvolume <name> in <dest>.
|
||
|
+
|
||
|
If <dest> is not given, subvolume <name> will be created in the currently
|
||
|
directory.
|
||
|
+
|
||
|
`Options`
|
||
|
+
|
||
|
-i <qgroupid>::::
|
||
|
Add the newly created subvolume to a qgroup. This option can be given multiple
|
||
|
times.
|
||
|
|
||
|
'delete' [options] <subvolume> [<subvolume>...]::
|
||
|
Delete the subvolume(s) from the filesystem.
|
||
|
+
|
||
|
If <subvolume> is not a subvolume, btrfs returns an error but continues if
|
||
|
there are more arguments to process.
|
||
|
+
|
||
|
The corresponding directory is removed instantly but the data blocks are
|
||
|
removed later. The deletion does not involve full commit by default due to
|
||
|
performance reasons (as a consequence, the subvolume may appear again after a
|
||
|
crash). Use one of the '--commit' options to wait until the operation is safely
|
||
|
stored on the media.
|
||
|
+
|
||
|
`Options`
|
||
|
+
|
||
|
-c|--commit-after::::
|
||
|
wait for transaction commit at the end of the operation
|
||
|
+
|
||
|
-C|--commit-each::::
|
||
|
wait for transaction commit after delet each subvolume
|
||
|
|
||
|
'list' [options] [-G [\+|-] values] [-C [+|-]value] [--sort=rootid,gen,ogen,path] <path>::
|
||
|
List the subvolumes present in the filesystem <path>.
|
||
|
+
|
||
|
For every subvolume the following information is shown by default. +
|
||
|
ID <ID> top level <ID> path <path> +
|
||
|
where path is the relative path of the subvolume to the top level subvolume.
|
||
|
The subvolume's ID may be used by the subvolume set-default command,
|
||
|
or at mount time via the subvolid= option.
|
||
|
If `-p` is given, then parent <ID> is added to the output between ID
|
||
|
and top level. The parent's ID may be used at mount time via the
|
||
|
`subvolrootid=` option.
|
||
|
+
|
||
|
`Options`
|
||
|
+
|
||
|
-p::::
|
||
|
print parent ID.
|
||
|
-a::::
|
||
|
print all the subvolumes in the filesystem and distinguish between
|
||
|
absolute and relative path with respect to the given <path>.
|
||
|
-c::::
|
||
|
print the ogeneration of the subvolume, aliases: ogen or origin generation.
|
||
|
-g::::
|
||
|
print the generation of the subvolume.
|
||
|
-o::::
|
||
|
print only subvolumes bellow specified <path>.
|
||
|
-u::::
|
||
|
print the UUID of the subvolume.
|
||
|
-q::::
|
||
|
print the parent uuid of subvolumes (and snapshots).
|
||
|
-t::::
|
||
|
print the result as a table.
|
||
|
-s::::
|
||
|
only snapshot subvolumes in the filesystem will be listed.
|
||
|
-r::::
|
||
|
only readonly subvolumes in the filesystem will be listed.
|
||
|
-G [+|-]value::::
|
||
|
list subvolumes in the filesystem that its generation is
|
||
|
>=, \<= or = value. \'\+' means >= value, \'-' means \<= value, If there is
|
||
|
neither \'+' nor \'-', it means = value.
|
||
|
-C [+|-]value::::
|
||
|
list subvolumes in the filesystem that its ogeneration is
|
||
|
>=, \<= or = value. The usage is the same to '-g' option.
|
||
|
--sort=rootid,gen,ogen,path::::
|
||
|
list subvolumes in order by specified items.
|
||
|
you can add \'\+' or \'-' in front of each items, \'+' means ascending,
|
||
|
\'-' means descending. The default is ascending.
|
||
|
+
|
||
|
for --sort you can combine some items together by \',', just like
|
||
|
-sort=+ogen,-gen,path,rootid.
|
||
|
|
||
|
'snapshot' [-r] <source> <dest>|[<dest>/]<name>::
|
||
|
Create a writable/readonly snapshot of the subvolume <source> with the
|
||
|
name <name> in the <dest> directory.
|
||
|
+
|
||
|
If only <dest> is given, the subvolume will be named the basename of <source>.
|
||
|
If <source> is not a subvolume, btrfs returns an error.
|
||
|
If '-r' is given, the snapshot will be readonly.
|
||
|
|
||
|
'get-default' <path>::
|
||
|
Get the default subvolume of the filesystem <path>.
|
||
|
+
|
||
|
The output format is similar to 'subvolume list' command.
|
||
|
|
||
|
'set-default' <id> <path>::
|
||
|
Set the subvolume of the filesystem <path> which is mounted as
|
||
|
default.
|
||
|
+
|
||
|
The subvolume is identified by <id>, which is returned by the 'subvolume list'
|
||
|
command.
|
||
|
|
||
|
'find-new' <subvolume> <last_gen>::
|
||
|
List the recently modified files in a subvolume, after <last_gen> ID.
|
||
|
|
||
|
'show' <path>::
|
||
|
Show information of a given subvolume in the <path>.
|
||
|
|
||
|
EXIT STATUS
|
||
|
-----------
|
||
|
'btrfs subvolume' returns a zero exist status if it succeeds. Non zero is
|
||
|
returned in case of failure.
|
||
|
|
||
|
AVAILABILITY
|
||
|
------------
|
||
|
'btrfs' is part of btrfs-progs. Btrfs filesystem is currently under heavy
|
||
|
development,
|
||
|
and not suitable for any uses other than benchmarking and review.
|
||
|
Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
|
||
|
further details.
|
||
|
|
||
|
SEE ALSO
|
||
|
--------
|
||
|
`mkfs.btrfs`(8),
|
||
|
`btrfs-subvolume`(8),
|
||
|
`btrfs-quota`(8),
|
||
|
`btrfs-qgroup`(8),
|