btrfs-progs-4.20.1

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 5. File Systems and Disk Management

- Prev

  About initramfs

- Next

  dosfstools-4.1

- Up
- Home

# btrfs-progs-4.20.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.4 platform.

### Package Information

- Download (HTTP): https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v4.20.1.tar.xz

- Download MD5 sum: 9aa0a16236c7087ded08425c7256044f

- Download size: 1.9 MB

- Estimated disk space required: 55 MB (add 105 MB for tests)

- Estimated build time: 0.2 SBU (add 10 SBU for tests)

### Btrfs-progs Dependencies

#### Required

LZO-2.10

#### Recommended

asciidoc-8.6.9 and xmlto-0.0.28 (both required to generate man pages)

#### Optional

LVM2-2.03.02 (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

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:

    ./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

`--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-find-root, btrfs-image, btrfs-map-logical, btrfs-select-super, btrfsck (link to btrfs), btrfstune, fsck.btrfs, and mkfs.btrfs
Installed Libraries: libbtrfs.so and libbtrfsutil.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-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.
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 2019-02-16 21:14:14 -0600

- Prev

  About initramfs

- Next

  dosfstools-4.1

- Up
- Home