The title pretty much speaks for itself… I have a linux install that I’ve spent a considerable time configuring, which is unfortunately installed on a drive that’s starting to show signs of dying.
My question is: how, if there is a way, can I migrate said linux install over to a different drive, while preserving all the configurations and such.
EDIT: Thank you to everyone who commented! I made the transfer, using dd and it went mostly smoothly, even if it did take a while.
Assuming the new drive is an equal size or larger: Boot from a USB drive and use dd to clone the old drive to the new one. Then, remove the old drive and boot from the new one. You’ll also need to resize the partitions on the new drive if it’s larger.
Yeah, but… how. I’m a bit terrified of dd and have only really used it to make images of drives before…
I usually use
dd status=progress conv=sync,noerror bs=64k if=/path/to/source/drive of=/path/to/destination/drive
Take a reading of the drive health first with something like smartctl and if it has a lot of failing attributes, consider lowering the block size to something rather smaller like bs=512.
Edit: To elaborate, using the sync and noerror arguments will instruct dd to ignore errors and continue in the event of read failures, while allocating zeroes to the remainder of the block space. Which is also why smaller block sizes are better for potentially failing drives. The copy will take longer, but a single error won’t take large swaths of data with it.
Hm, using a smaller block size does make sense, but I imagine that cloning an entire drive with 512 byte blocks is gonna take 10 million years. Especially this one, since the main reason I’m suspecting that it has started failing is because it’s slowed down to the point where it drags down the entire system when even the smallest of loads hit it…