Migrating from HDD to SSD via cloning

Hi all,

I’ve installed a SSD in my Lenovo Thinkpad P50 and I’m trying to transfer everything to the SSD and make it boot from there.

I started by cloning the HDD to the SDD using clonezilla. My plan was to follow the arch wiki instructions so I booted the EndeavourOS live USB, mounted the new root partition and the new EFI system partition, generated the new fstab file, then proceeded to check that the /mnt/etc/fstab file was free of errors.

Then I realised that the UUID’s of the new root partition and EFI system partition were the same as the old HDD (unsurprisingly). I started googling how to change the UUID’s of the SDD partitions, but I couldn’t work out how to change the UUID of the EFI system partition, because it’s formated to VFAT.

I found a page on stack exchange but I was put off mentions of hex editors and “danger” :grimacing: so I tried using mlabel following the instruction here but it returned the following error:

Hidden (4096) does not match sectors

At this point, I’m starting to think I’ve gone about this the wrong way. Should I just do a fresh install and try and copy everything over? Should I use rsync? Any advice would be appreciated.

If you want new UUID for the ESP, you could reformat it and then re-install the bootloader.
Make sure you change the UUID in your fstab to match the new one on the disk.

Also, perhaps mkdosfs could do it. I haven’t used it so I can’t say for sure.

How about Gparted? Right click on the partition >> New UUID

Update: changing the UUID of a FAT32 partition with Gparted works on my end.

1 Like

I had no problem with clonezilla or with dd (unless the new disk is at least same size).

But this only works if you plan to really swap the disks.

I tried to keep the clone as a backup I also could boot from with an external USB case. This didn’t work as the UUIDs are identical on both disks and my boot process stopped somewhere when trying to find my resume partition.

IMHO “dd” cloning is the fastest way to continue work on same environment if you just swich from hdd to a fast ssd.

But… in the end and if you want to do some cleanup then this is a good opportunity to start a fresh install, reinstall your packages via previously saved packagelist and restore old home. Your manual modifications in /etc may easily be looked up on your old disk.


Basically it should work if you

  • create suitable partitions into the SSD
  • copy all files there (e.g. cp -a) with proper parameters

Then arch-chroot into your SSD and adjust file

  • /etc/fstab

to reflect your new UUIDs (if the current fstab uses them). Alternatively you may start using partition labels instead of UUIDs.

Then, if using grub, in arch-chroot run

  • grub-install with proper parameters to make the SSD bootable
  • grub-mkconfig -o /boot/grub/grub.cfg

There may be more details (e.g. filesystems), but this is the main idea.

And like always, be sure to have a working (external drive) backup of any personal data you have on your HDD before doing anything else. :wink:


Thanks! Gparted did it! That was a simple solution.


Thanks. My original plan was to really swap the disks but then I changed my mind and decided to keep the HDD. I really have a lot of things installed and small modifications made over time so I would like to keep my current environment if possible.

Thanks for your help. I forgot the final line grub-mkconfig -o /boot/grub/grub.cfg and it didn’t boot. I’m going to try this one more time tonight.

After a lot of mucking around, I still couldn’t get it to boot after cloning the drive. So I decided to do a fresh install and restore a saved packagelist and copied files over from the old home directory as you suggested.

Sometimes the faster solution. At least you (anybody) learns a lot. A scenario you don’t come across often. Most important is to have a running machine again :wink:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.