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 &&
make
        
          
          
            Note
          
          
            Some tests require grep built with perl regular expressions. To
            obtain this, rebuild grep with the LFS Chapter 8 instructions
            after installing PCRE-8.44.
          
         
        
          Before running tests, build a support program and disable several
          that fail:
        
        
make fssum &&
sed -i '/found/s/^/: #/' tests/convert-tests.sh &&
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}
        
          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.