ZFS is a lot more mature than BTRFS and is probably the safer option, but the main caveats are that it can use hella ram space and doesn’t have support for using disks of different sizes together
On the other hand BTRFS is kinda dogshit if you want to do Raid 5/6, and doesn’t let you do tiered storage (e.g. no SSD cache or ramdisk cache)
Migrating your existing system
Lucky you, EXT4 and NTFS can be converted to BTRFS in-place
(Whether or not you should trust converting NTFS to BTRFS is another story)
EXT4
Grab a live USB and boot into it if this is a partition you can’t unmount while booted (eg /, /home) - make a goddamn backup cause fucking with partitions is just asking for accidental data loss
okay now time to clean your filesystem
# e2fsck -fvy /dev/sdx
you’ll also want to clear up some space before attempting this
# btrfs-convert -p -L --uuid copy -O compress /dev/sdx to do the actual conversion - if you’re low on space add -n - if you don’t have an FS label on this partition, you can add a label after -L - if something went wrong do # btrfs-convert -r /dev/sdx - Now let’s mount it with # mount /dev/sdx /mnt/<mount point> - for example if this is your root partition, mount it to /mnt - if it worked, run # btrfs subvolume delete /mnt/<mount point>/ext2_saved to yeet reversal data and save some space - Now let’s move everything into subvolumes to make backups and stuff easier - cd over to where you mounted and run - # btrfs subvol create @<subvol name> - if you have /home on the same partition as root make a @home subvolume too. - so for a root partition do @, - # mv * @<subvol name> - you want to do this in a bottom up way, ie move /home/* to /@home before you move / to @ -