How do I move /boot to a separate partition on UEFI system with current boot on btrfs?

I managed to do it using Boot-repair from a LiveUSB.

Before start I recommend to create a snapshot of @ subvolume in case something goes wrong.

  1. Shrink / partition to leave 1-2 GB free with gparted

  2. Create ext2 partition.

  3. Mount the / partition to /mnt

  4. Mount the new ext2 partition to /media

  5. Run cp -a /mnt/@/boot/* /media

  6. Edit /mnt/@/etc/fstab and add there mount of the new ext2 partition to /boot.

  7. Delete old boot from / by sudo rm -r /mnt/@/boot

  8. Run sudo umount /mnt && sudo umount /media

  9. Run boot-repair and do a default check.

All should work, and grub timeout is OK now.