Copying partitions from larger HDD to smaller SSD

So I have a laptop with a HDD of 1TB and I'm planning to buy a 500GB SSD, and copy the HDD to the SSD. Many posts already start like this, and I have read many of them, most on this site. Some recommend using Clonezilla, some others to use gparted. It seems, though, that when going from a larger drive to a smaller one, neither Clonezilla or gparted will copy the entire drive (please, correct me if I'm wrong); the way to go about this is to copy partition by partition. I'd like to expose what I'm planning to do to dump the HDD into the SSD just to see if the steps are correct. I would like the people in the community to tell me whether or not I'm doing something wrong and/or if I'm missing something.

First off, this is my hard drive. Nothing outside the norm. enter image description here

What I'm planning to do is the following:

  1. Create two partitions into my SSD of about roughly the same size, say, 250 GB each, one formatted ntfs and the other ext4. I suppose with the same flags as in the HDD.
  2. Using gparted, shrink the partitions /dev/sda3 and /dev/sda5 in the HDD down to 250 GB each (or even less, just in case).
  3. Using gparted, copy the partitions /dev/sda3 and /dev/sda5 from the HDD to the corresponding partition in the SSD (the ntfs-formatted partition from the HDD to the ntfs-formatted partition in the SSD; do likewise for the other)
  4. Repair the grub by, for example, following the steps in this web.

I've got a few doubts about these steps: Are they complete, i.e., is something missing? What about the other partitions /dev/sda1 (the /boot/efi), /dev/sda2 (Microsoft reserved partition), /dev/sda4 (I don't know what that is), and /dev/sda6 (the swap partition for ubuntu): should they be copied too?

I'm not new to Ubuntu, but I'm new to copying and moving partitions, so any help will be very much appreciated.


I would do that with clonezilla.

https://clonezilla.org/


If you just want to get this done and don’t mind using Windows based tools Macrium Reflect Free will do the whole job in a single process.

https://knowledgebase.macrium.com/display/KNOW7/Cloning+a+disk