Make sure btrfs support is installed in your kernel
File systems ---> <*> Btrfs filesystem
Install needed packages
emerge -av sys-fs/btrfs-progs sys-fs/cryptsetup
Make sure the following flags are enabled for sys-fs/cryptsetupgcrypt: nls python udev pwquality. dev-libs/libpwquality is used for password quality checking.
Prepare disk:
parted -a optimal /dev/sdX
(parted) help (parted) print (parted) mklabel gpt (parted) mkpart primary btrfs 0% 100% (parted) name 1 storage_XX (parted) print (parted) quit create filesystem mkfs.btrfs /dev/sdX1
Encrypt disk
cryptsetup luksFormat -v /dev/sdX
To open the disk use
cryptsetup luksOpen /dev/sdX DRIVE_name
To get automated mounting, first find UUID and then modify cryptab conf file.
Command blkid
can be used to get the new UUID of the drive.
Modify /etc/crypttab with your desired drive name and the partitions UUID:
DRIVE_name UUID=your_uuid none luks
Crypt details can be seen with
cryptsetup luksDump /dev/sdX
For more detail see archlinux.