After daydreaming about running my Linux computer from an SSD for years (ever since I saw how fast it made my wife’s Linux install), I finally did it on the main Linux computer (SuperMario) as the root hard drive was getting old and was liable to die at any moment. The last time I’d installed my main Linux computer from scratch was in 2009 when I went from an old eMachine to the computer I’d built for my wife when I was going to ease her from Windows on her Dell computer over to Linux on a custom built computer. Lots had changed since then (like going to SystemD, for example) and I also wanted to move to a larger hard drive. So just copying everything over was out of the question. I figured a fresh install would get rid of a lot of the cruft I’d picked up in the last 7 years. Additionally, this time I would start with an install of the KDE spin of Fedora and I’m not planning on adding in other desktop environments or Window managers unless I am ready to ditch KDE. If I want to dabble in other desktops, I can always run a VM.
So I just wanted to document what I had to do for others who might want to do something similar in the future. First of all, key to this (and it also helps for when you have a growing digital library) is to have /home on its own hard drive. This way your personal settings travel with you easily and you don’t have to worry about copying your personal files back and forth. Before you do anything, go over the programs you have installed and figure out which ones you want for sure on the new system. Think about where they keep their settings. Again, most of them should be in your home directory, but when they’re meant to be shared with everyone, they may be in /usr/share. That’s the situation I found myself in with the flyers and datasheets for QMC2. Make note of the repositories you are using. Because dnf/yum check the repo keys you won’t be able to just copy them over and have it work, but note which you have and where to get them again.
Because I am using btrfs snapshots, I had to create a special /etc/updatedb.conf file for locate. Otherwise it indexed all the snapshots and filled the root partition. You’ll want to make a copy of /etc/fstab. You can’t just drop it in as a replacement because of the / drive you’re installing, but for all the other drives, this will quickly get you back to a fully working computer. For me, I had entries for my home directory as well as a few other hard drives. You also might want to copy your user and root’s cronjobs. Some might be recreated, but others (especially if they were some clever little thing) will need to be copied. If you don’t use local DNS, you might want to copy your /etc/hosts file. Finally, copy over /etc/ssh to make sure you computer doesn’t seem foreign when you try to SSH to or from other computers.
I use Crashplan for backup, but they were almost the easiest part of the migration. Once I reinstalled and installed Crashplan, I was able to “adopt” the old computer (which was the same computer….just a new hard drive), it just verified that it could see all the files and all was good.
Once you’re installed, the first thing you might want to do is to log in as root and chown -R user:user (change to your username) on your /home directory. I’d been using Fedora so long that the first user had gone from being the traditional 500 to being 1000. So without doing this I wouldn’t have been able to access my own files. Then go about restoring the stuff you copied above like the cron jobs. Finally, if you use home DNS and/or static IP addresses, be sure to set that up as well.
That’s pretty much it. It took me a couple hours to get the initial setup and then a couple more hours of wrangling with video drivers. I hope this helps if you’re considering doing a reinstall, but quickly getting back to work with your settings in tact.