- With Ubuntu 24.04 it's not longer possible to setup FDE with BTRFS
 - The new installer won't offer you any options for manually created dm-crypt volumes
 - They move to a TPM-backed solution with a GRUB snap package Show archive.org snapshot
 - Alternatives are LVM and encryption on 
ext4or ZFS with encryption (experimental) - Another alternative is a proper Linux distribution Show archive.org snapshot
 
Caution
Only continue if you're a real BTRFS ultra fan.
Manual BTRFS setup
- Boot Ubuntu 24.04 Desktop
 - Go to 
Disk setup->Erase disk and install Ubuntu->Advanced features - Pick 
Use LVM and encryption - It will setup such a layout
nvme0n1 259:0 0 931.5G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot/efi ├─nvme0n1p2 259:2 0 2G 0 part /boot └─nvme0n1p3 259:3 0 928.5G 0 part └─dm_crypt-0 252:0 0 928.4G 0 crypt └─ubuntu--vg-ubuntu--lv 252:1 0 928.4G 0 lvm / - Reboot
 - Install BTRFS tools: 
apt install btrfs-progs - Set filesystem type to 
auto:sed -i 's/ext4/auto/g' /etc/fstab - Disable the swap file: 
sed /i 's|^/swap|#&|g' /etc/fstab - Create new initrd: 
update-initramfs -c -k all - Reboot to validate everything is still working
 - Boot from Live USB again
 - Unlock the encrypted LVM device
 - Convert the partition to BTRFS: 
btrfs-convert --uuid copy /dev/mapper/ubuntu--vg-ubuntu--lv - Enjoy your new Ubuntu 24.04 with BTRFS
 
Setup BTRFS subvolumes
- Boot from Live USB
 - Mount your BTRFS volume: 
mount -o subvol=/ /dev/mapper/ubuntu--vg-ubuntu--lv /mnt - Move default subvolume to 
@cd /mnt btrfs subvolume snapshot . @ rmdir @/ext2_saved ls | grep -Ev "@|ext2_saved" | xargs rm -rf btrfs subvolume set-default @ - Create additional subvolumes
btrfs subvolume create @home cp -ax --reflink=always @/home/* @home - Add to 
/etc/fstab:/dev/mapper/ubuntu--vg-ubuntu--lv /home btrfs defaults,subvol=@home 0 2 - Remove original files after successful migration
 - Repeat for additional subvolumes. Some suggestions:
@home@snapshots@swap@tmp@var_tmp@var_snap_lxd@var_lib_docker
 
Setup swap file
btrfs filesystem mkswapfile --size 8g --uuid clear /swap/swapfile- Add to 
/etc/fstab:/swap/swapfile none swap defaults 0 0 - Activate with 
swapon -a - Delete old swap file: 
rm /swap.img