Best practices for transferring an existing Linux installation from one drive to another?
Currently, my desktop computer has two storage devices attached: one 1TB NVME SSD, which has both Windows 10 and Linux Mint 21.2 installed on it (Each OS getting ~ 500 GB), and a 1TB SATA hard drive mostly used for Timeshift backups of the Linux Mint partition (Including my Home folder, for the record).
Later today I'm expecting to receive two more 1TB SSDs. When I've finished the upgrade process, I'd like to have my Linux Mint installation transferred to a RAID 1 array comprised of the two new drives and expand the Windows 10 partition to take up the whole existing SSD.
My current plan for doing this is to use my existing installation USB drive to install a fresh Linux Mint 21.1 installation on the two new drives, then use Timeshift to 'restore' my most recent backup from the existing installation. Is there a better way of going about this that I'm not already aware of?
it's not the recommended way but it's how I've been doing.
you format the new drives and just cp -a -x from the running os to the destination, update the destination fstab, then treat the new drives as an os with a broken boot and continue from there.
I assume people prefer rsync because you may need to run it twice, but unless you tick all the boxes rsync won't copy capabilities (see getcap /usr/bin/rsh)
sudo cp -ax is short and sweet and does everything right.
I'm always hesitant to use the "disk destroyer", even as a regular user. rsync does a good job and it's maybe even more agnostic than dd since it doesn't really care about the partition size, as long as all data fits.
rsync is also more reliable: in cases the transfer is interrupted it only transfers what's missing and it can run the checksums making sure there were no transfer errors. I don't see a good reason to use cp.