btrfs-progs-4.17.1

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.3 platform.

Package Information

Btrfs-progs Dependencies

Required

LZO-2.10

Recommended

Optional

LVM2-2.02.177 (dmsetup is used in tests), Python-2.7.15 (python bindings), reiserfsprogs-3.6.27 (for tests), and zstd (for 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 and CONFIG_REISERFS_FS_XATTR are required for some tests. Other Btrfs options in the kernel are optional.

Installation of btrfs-progs

Install btrfs-progs by running the following commands:

sed -i '40,107 s/\.gz//g' Documentation/Makefile.in &&

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

Before running tests, build a support program and disable several that fail:

make fssum &&

sed -i '/found/s/^/: #/' tests/convert-tests.sh &&

mv tests/mkfs-tests/013-reserved-1M-for-single/test.sh{,.broken}          &&
mv tests/convert-tests/010-reiserfs-basic/test.sh{,.broken}               &&
mv tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh{,.broken} &&
mv tests/convert-tests/012-reiserfs-large-hole-extent/test.sh{,.broken}   &&
mv tests/convert-tests/013-reiserfs-common-inode-flags/test.sh{,.broken}  &&
mv tests/convert-tests/014-reiserfs-tail-handling/test.sh{,.broken}       &&
mv tests/misc-tests/004-shrink-fs/test.sh{,.broken}                       &&
mv tests/misc-tests/013-subvolume-sync-crash/test.sh{,.broken}            &&
mv tests/misc-tests/025-zstd-compression/test.sh{,.broken}                &&
mv tests/fuzz-tests/003-multi-check-unmounted/test.sh{,.broken}           &&
mv tests/fuzz-tests/009-simple-zero-log/test.sh{,.broken}

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

Install the package as the root user:

make install &&

ln -sfv ../../lib/$(readlink /lib/libbtrfs.so) /usr/lib/libbtrfs.so &&
ln -sfv ../../lib/$(readlink /lib/libbtrfsutil.so) /usr/lib/libbtrfsutil.so &&
rm -fv /lib/libbtrfs.{a,so} /lib/libbtrfsutil.{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/{cli,convert,misc,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-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-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 2018-08-30 16:17:00 -0700