I am running Fedora 22 on a Dell Laptop. I plan on migrating to a desktop soon which will also run Fedora 22. What is the best way to go about backing up and restoring my laptop configuration to the new system? I do not have any 3rd party backup/restore software on this system. Would dd be able to work for me? Would a system level backup work or would I need to limit dd to partitions that are not "hardware or device" specific. I am also open to any other suggestions or ideas.
I second the approach of doing a fresh install and then rsyncing
/home. But, for completeness, if you want to move your disk from one computer to another with another hardware — either literally or by using
dd to copy the contents, make sure you run
sudo dracut --force --no-hostonly
on the machine before you make the backup or copy.
This will generate a generic initial boot image.
By default, Fedora saves space and time by creating boot images which may be specific to your particular hardware.
If you forget to do this and the machine won't boot (due to missing hardware support in the boot image), use the Rescue Mode menu entry at the initial bootloader screen — this always has a larger, generic boot image, and will get you into the system and from there, you can run the dracut command to generate an initial ramfs for your non-rescue environment. (In that case, though, you'll have to identify the kernel version. Look in
/boot, and provide the number, like this:
dracut --force --no-hostonly --kver 4.2.3-300.fc23.)
There are several different options here, each with different effects and tradeoffs.
Firstly, you probably don't want to do anything with
dd runs a block-level copy; it mirrors a disk image precisely, without caring about files. This will carry files in their associated filesystem along, but there are problems here: if both devices are in the same machine, you may have confusion due to identical UUIDs; it obviously precludes any filesystem-level changes you may wish to make, such as migrating between filesystems, allocating more inodes, or whatever; and it requires that the destination block device be the same size as the source, which is often not the case. (If the destination is larger than the source, it'll still work, but you won't be able to access the extra space until you run a separate resize operation. If the destination is smaller, it'll fail and you won't be able to access your data, even if there was enough free space in the filesystem.)
The main use case for
dd is probably if you're cloning root or boot filesystems from one machine to another, which is a somewhat fraught topic on its own. Here
dd is appropriate because you usually want to preserve FS UUIDs and so forth, in order to keep the boot process working. But you probably don't want to do this. (The other use is literally dealing with disk images of USB sticks, CDs and so on, but that's not as relevant here.)
What you more likely want to do is a file-level backup/restore. For this I've found
rsync to be excellent, if both machines are up at once; if not, it may be better to use
tar. Assuming you've run a fresh Fedora install on the desktop system, you should be able to rsync/tar migrate the
/home directory from one machine to the other. This will preserve all user files and most user-level customizations (the exceptions being things like crontabs which are stored outside
/home). Then, in order to mimic the old setup properly, what remains is just to install all the same software through the package manager. Due to keeping the home directories, where most software stores its configuration, installing it again should leave you with things working the way they were.