boot – How can I move a Ubuntu installation to a new drive if it has other partitions?

I would like to move my hard drive Ubuntu installation to a new SSD.

The source disk has 5 partitions,

1 - EFI
2 - NTFS
3 - Ubuntu root
4 - Swap (from a previous installation)
5 - Ubuntu home

I would like to move partition 1, 3, and 5 to the SSD. I can resize them, and they will then fit on the SSD.

I am looking at this answer here,

How can I repair grub? (How to get Ubuntu back after installing Windows?)

It’s saying that I can copy a whole drive, then mount it and install grub to fix the boot loader.

Will the same work if I copy separate partitions rather than a whole drive?

I think I would be doing something like this on the new SSD, set it up as GPT, copy the three partitions separately, then boot into a ubuntu live installation, mount the new installation, chroot, update-grub.

My questions are, will this work, and do I need to copy over the EFI partition? Does ubuntu add the EFI parition, or would my windows installation have added that?

I had a look at /etc/fstab and I think it has some of the answers,

# / was on /dev/sdd3 during installation
UUID=1e2e2c4b-020b-41c6-b30a-21173388e4a7 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sdc2 during installation
UUID=F03B-8C98  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sdd5 during installation
UUID=9941c627-fce7-4a0c-821d-f140f2a7fa43 /home           ext4    defaults        0       2
# swap was on /dev/sdd4 during installation
UUID=c0704a89-c408-4d6d-bd08-a42127dba046 none            swap    sw              0       0

So I think that is telling me that the swap partition is mounted (fine, can include that too).

But, the EFI partition mentioned is not the EFI on that drive, it is the EFI partition from a different drive which is my windows 10 drive. Should I copy that one instead or does it not matter?