btrfstune - tune various filesystem parameters
can be used to enable, disable or set various filesystem
parameters. The filesystem must be unmounted.
The common usecase is to enable features that were not enabled at mkfs time.
Please make sure that you have kernel support for the features. You can find a
complete list of features and kernel version of their introduction at
the manual page mkfs.btrfs
(8) contains more details about the features.
Some of the features could be enabled on a mounted filesystem. Please refer to
the respective section in btrfs
Enable seeding on a given device. Value 1 will
enable seeding, 0 will disable it.
A seeding filesystem is forced to be mounted read-only. A new device can be
added to the filesystem and will capture all writes keeping the seeding device
(since kernel: 3.7)
Enable extended inode refs (hardlink limit per file in a directory is 65536),
enabled by mkfs feature extref
(since kernel: 3.10)
Enable skinny metadata extent refs (more efficient representation of extents),
enabled by mkfs feature skinny-metadata
All newly created extents will use the new representation. To completely switch
the entire filesystem, run a full balance of the metadata. Please refer to
(since kernel: 3.14)
Enable no-holes feature (more efficient representation of file holes), enabled
by mkfs feature no-holes
Allow dangerous changes, e.g. clear the
seeding flag or change fsid. Make sure that you are aware of the
Change fsid to a randomly generated UUID or
continue previous fsid change operation in case it was interrupted.
Change fsid to UUID
should be a 36 bytes string in printf
. If there is a previous
unfinished fsid change, it will continue only if the UUID
unfinished one or if you use the option -u
Cancelling or interrupting a UUID change operation will make the filesystem
temporarily unmountable. To fix it, rerun btrfstune -u
to restore the
UUID and let it complete.
Clearing the seeding flag on a device may be dangerous. If a previously-seeding
device is changed, all filesystems that used that device will become
unmountable. Setting the seeding flag back will not fix that. A valid usecase
is seeding device as a base image
. Clear the seeding flag, update the
filesystem and make it seeding again, provided that it’s OK to throw
away all filesystems built on top of the previous base.
returns 0 if no error happened, 1 otherwise.
This tool exists for historical reasons but is still in use today. The
functionality is about to be merged to the main tool someday and
will become deprecated and removed afterwards.