# Umount then close/lock the encrypted containersudo umount ~/Documents ~/Downloads /mnt/personalsudo cryptsetup close personal# Open an encrypted volumesudo cryptsetup open /dev/nvme1n1 personal # using passphrase, or:sudo cryptsetup open /dev/nvme1n1 personal --key-file=/etc/luks-keys/personal.key# Mount againsudo mount ~/Documents ~/Downloads /mnt/personal # orsudo mount -a # everything listed in fstab
# See all block devices, their encryption, uuid, etc.lsblk -o NAME,MODEL,SIZE,FSTYPE,FSVER,UUID,MOUNTPOINTS,FSUSE%# Check if encrypted device is opensudo cryptsetup status personal# List all open encrypted devicessudo dmsetup ls --tree# Show LUKS header info (key slots, cipher, etc)sudo cryptsetup luksDump /dev/nvme1n1
Setup
Encryption and Keys
# Encrypt the entire drive, e.g. using same passphrase as system drivesudo cryptsetup luksFormat --type luks2 /dev/nvme1n1
# Create a secure directory for key filessudo mkdir -p /etc/luks-keyssudo chmod 700 /etc/luks-keys# Generate a random key filesudo dd if=/dev/urandom of=/etc/luks-keys/personal.key bs=4096 count=1sudo chmod 600 /etc/luks-keys/personal.key# Add the key file to the LUKS volume (so it can unlock with either passphrase OR key file)sudo cryptsetup luksAddKey /dev/nvme1n1 /etc/luks-keys/personal.key
BTRFS Formatting and Subvolumes
# Create BTRFS filesystemsudo mkfs.btrfs -L personal /dev/mapper/personal# Mount temporarily to create subvolumessudo mkdir -p /mnt/personalsudo mount /dev/mapper/personal /mnt/personal# Create subvolumessudo btrfs subvolume create /mnt/personal/@documentssudo btrfs subvolume create /mnt/personal/@downloads# Unmountsudo umount /mnt/personal
Auto-decrypt and Auto-mount
# Add to /etc/crypttab (the LUKS uuid, not the BTRFS one):personal UUID=<drive-uuid> /etc/luks-keys/personal.key luks
# Add to /etc/fstab:/dev/mapper/personal /mnt/personal btrfs subvolid=5,noatime,compress=zstd 0 0 # For admin tasks such as btrfs backups/dev/mapper/personal /home/username>/Documents btrfs subvol=@documents,noatime,compress=zstd 0 0/dev/mapper/personal /home/username>/Downloads btrfs subvol=@downloads,noatime,compress=zstd 0 0