Introduction to btrfs-progs
The btrfs-progs package contains
administration and debugging tools for the B-tree file system (btrfs).
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Btrfs-progs Dependencies
Required
LZO-2.10
Optional
LVM2-2.03.23 (dmsetup is used in tests),
sphinx-7.2.6 (required to build documentation), and
reiserfsprogs (for tests).
Kernel Configuration
Enable the following option in the kernel configuration
and recompile the kernel:
File systems --->
<*/M> Btrfs filesystem support [BTRFS_FS]
In addition to the above and to the options required for
LVM2-2.03.23, the following
options must be enabled for running tests:
File systems --->
<*/M> Btrfs filesystem support [BTRFS_FS]
[*] Btrfs POSIX Access Control Lists [BTRFS_FS_POSIX_ACL]
Installation of btrfs-progs
Install btrfs-progs by running the following
commands:
./configure --prefix=/usr \
--disable-static \
--disable-documentation &&
make
Note
Some tests require grep built with perl regular expressions. To
obtain this, rebuild grep with the LFS Chapter 8 instructions after
installing pcre2-10.42.
Before running tests, build a support program:
make fssum
To test the results, issue (as the root
user):
pushd tests
./fsck-tests.sh
./mkfs-tests.sh
./cli-tests.sh
./convert-tests.sh
./misc-tests.sh
./fuzz-tests.sh
popd
Note
If the above mentioned kernel options are not enabled, some tests
fail, and prevent all the remaining tests from running because the test
disk image is not cleanly unmounted.
Install the package as the root
user:
make install
If you have passed --disable-documentation
to
configure and you need the manual pages, install them
by running, as the root
user:
for i in 5 8; do
install Documentation/*.$i /usr/share/man/man$i
done
Command Explanations
--disable-static
: This switch prevents
installation of static versions of the libraries.
--disable-documentation
: This switch
disables rebuilding the manual pages, because it requires
sphinx-7.2.6.