btrfs-progs-4.12

Introduction to btrfs-progs

The btrfs-progs package contains administration and debugging tools for the B-tree file system (btrfs).

This package is known to build and work properly using an LFS-8.1 platform.

Package Information

Btrfs-progs Dependencies

Required

LZO-2.10

Recommended

Optional

LVM2-2.02.171 (dmsetup is used in tests)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfs

Kernel Configuration

Enable the following option in the kernel configuration and recompile the kernel:

File systems --->
  <*/M> Btrfs filesystem support [CONFIG_BTRFS_FS]
[Note]

Note

CONFIG_BTRFS_FS_POSIX_ACL is required for the tests. Other Btrfs options in the kernel are optional.

Installation of btrfs-progs

Install btrfs-progs by running the following commands:

sed -i '1,100 s/\.gz//g' Documentation/Makefile.in &&

./configure --prefix=/usr \
            --bindir=/bin \
            --libdir=/lib &&
make

Before running tests, disable several that fail:

mv tests/fuzz-tests/003-multi-check-unmounted/test.sh{,.broken}    &&
mv tests/fuzz-tests/004-simple-dump-tree/test.sh{,.broken}         &&
mv tests/fuzz-tests/007-simple-super-recover/test.sh{,.broken}     &&
mv tests/fuzz-tests/009-simple-zero-log/test.sh{,.broken}          &&
mv tests/misc-tests/019-receive-clones-on-munted-subvol/test.sh{,.broken}

To test the results, issue (as the root user):

pushd tests
   ./fsck-tests.sh
   ./mkfs-tests.sh
   ./convert-tests.sh
   ./misc-tests.sh
   ./cli-tests.sh
   ./fuzz-tests.sh
popd

Install the package as the root user:

make install &&

ln -sfv ../../lib/$(readlink /lib/libbtrfs.so) /usr/lib/libbtrfs.so &&
rm -v /lib/libbtrfs.{a,so} &&
mv -v /bin/{mkfs,fsck}.btrfs /sbin

Command Explanations

sed ... Documentation/Makefile.in: Disables compressing man pages to be consistent with the rest of BLFS.

--disable-documentation: This option is needed if the recommended dependencies are not installed.

mv tests/fuzz-tests/ ...: Disables tests that fail and prevent tests from completing.

ln -s ... /usr/lib/libbtrfs.so: Creates a symbolic link in the directory where it is expected.

rm /lib/libbtrfs.{a,so}: Removes unneeded library entries.

Contents

Installed Programs: btrfs, btrfs-convert, btrfs-debug-tree, btrfs-find-root, btrfs-image, btrfs-map-logical, btrfs-select-super, btrfs-show-super, btrfs-zero-log, btrfsck (link to btrfs), btrfstune, fsck.btrfs, and mkfs.btrfs
Installed Libraries: libbtrfs.so
Installed Directories: /usr/include/btrfs

Short Descriptions

btrfs

is the main interface into btrfs filesystem operations.

btrfs-convert

converts from ext2/3/4 filesystem to btrfs.

btrfs-debug-tree

queries various internal information.

btrfs-find-root

is a filter to find btrfs root.

btrfs-map-logical

maps btrfs logical extent to physical extent.

btrfs-select-super

overwrites primary superblock with a backup copy.

btrfs-show-super

queries various internal information.

btrfs-zero-log

recovers a damaged btrfs filesystem.

btrfstune

tunes various filesystem parameters.

fsck.btrfs

does nothing, but is present for consistency with fstab.

mkfs.btrfs

creates a btrfs file system.

Last updated on 2017-08-30 16:10:27 -0700