Budeš tam bojovat s UUIDčkama oddílů. /boot nech jak je, ulehčí ti to práci, protože jeho UUID je uložené někde v EFI oddílu. Někam zkopíruj root a udělej místo něj LUKS. Ten postup co si uvedl by měl fungovat. Pak ho zkopíruj zpátky. Pak upravíš crypttab a možná i fstab, ale nejsem si jist, protože UUID root ani boot oddílu se nezmění. Pak si v kritické fázi, kdy je potřeba říct initrd co má rozšifrovat během bootu, resp. k čemu tě poprosí o heslo. To se dělá v cmdline kernelu v GRUBu. Tohle mám v cmdline já:
BOOT_IMAGE=(hd4,gpt2)/vmlinuz-5.14.9-200.fc34.x86_64 root=/dev/mapper/data-root ro rd.lvm.lv=data/root rd.luks.uuid=luks-47b4ad1c-f692-48b5-b8f4-1671d99c0db4 i8042.dumbkbd=1 rhgb quiet
Root je jasnej. Pokud máš LVM, tak potřebuješ rd.lvm.lv, aby si řekl initrd, kde máš roota. Co ale potřebuješ určitě je rd.luks.uuid, aby initrd vědělo, kterej oddíl má rozšifrovat. Na něm pak najde crypttab a pokračuje tak jako předtím.
Nedávno jsem to dělal na serveru a samozřejmě se to nepovedlo napoprvý :-) Když použiješ btrfs jak zmiňuješ, tak budeš mít jednu výhodu a to že zvládneš ten systém přesunout zaživa a pokud uděláš vše správně, tak po rebootu naběhne. Nezapomeň zašifrovat ten externí disk. Rsyncu bych se vyhnul, protože se ti v takovém případě změní UUID root oddílu.
Good luck.