Install Instructions

Btrfs puts snapshots and subvolumes into the root directory of the FS.  This
directory can only be changed by btrfsctl right now, and normal filesystem
operations do not work on it.  The default subvolume is called 'default',
and you can create files and directories in mount_point/default

Btrfs uses libcrc32c in the kernel for file and metadata checksums.  You need
to compile the kernel with:

CONFIG_LIBCRC32C=m

libcrc32c can be static as well.  Once your kernel is setup, typing make in the
btrfs module sources will build against the running kernel.  When the build is
complete:

modprobe libcrc32c
insmod btrfs.ko

The Btrfs utility programs require libuuid to build.  This can be found
in the e2fsprogs sources, and is usually available as libuuid or
e2fsprogs-devel from various distros.

Building the utilities is just make ; make install.  The programs go
into /usr/local/bin.  The commands available are:

mkfs.btrfs: create a filesystem

btrfsctl: control program to create snapshots and subvolumes:

	mount /dev/sda2 /mnt
	btrfsctl -s new_subvol_name /mnt
	btrfsctl -s snapshot_of_default /mnt/default
	btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name
	btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol
	ls /mnt
	default snapshot_of_a_snapshot snapshot_of_new_subvol
	new_subvol_name snapshot_of_default

	Snapshots and subvolumes cannot be deleted right now, but you can
	rm -rf all the files and directories inside them.

btrfsck: do a limited check of the FS extent trees.</li>

debug-tree: print all of the FS metadata in text form.  Example:

	debug-tree /dev/sda2 >& big_output_file

