I'm making this small guide because quite frankly I'm sick of seeing replies with 'just reinstall' because someone is afraid to clone their shit. It seems even my boss ('Senior' Desktop Tech) doesn't know how this works. For the love software and computing, this is usually an easy process.
A lot of tools out will do it for you in a breeze. I'm going to attempt to make this guide for you guys to reference and provide information. Feel free to comment/give feedback for me to add and make this a better guide for everyone.
This is a general guide for windows installs. If someone wants to cover Linux, feel free and I will link it here.
The guide:
Compatibility
For starters:
If you're migrating to a different chipset, it is not recommended that you migrate your installation. You can do this, but likely you will mess things up, and there isn't really a guarantee your machine will work correctly. So usually and motherboard swap needs a fresh install.
Example:
I migrated my 2600k install to my 4790k install, which worked for a time but had stability issues, as well as issues saving data. I uninstalled chipsets with little luck at keeping the system working correctly.
Additionally this means you should not migrate laptop installs to a desktop (should be obvious).
How do I know if I have the same chipset?
If you're not changing the CPU or motherboard the chipset is the same. If you switch motherboards, you might be lucky to get the same chipset, or only have to uninstall drivers. It is generally recommended that if you change motherboards, its time for a fresh install.
What about a CPU swap?
You can generally get away with this. Always verify the device is recognized in Device manager and reinstall your chipset drivers. If you have any sort of stability issues, fresh install.
How about a larger drive to a smaller one?
Are you familiar with the Disk Management tool? Time to get familiar.
Lets say I wanted to copy this
To this:
First, I need to figure out how much free space is on Drive I:
Right click main partition>properties
and you get:
Now, since the drive I'm migrating to is only 238.48 (or 240GB SSD) I will need to uninstall/remove things to migrate this partition. Keep in mind you will also need to migrate the smaller 'system reserved portion, as it contains the information required to boot the OS.
Once I've made the 'Used space' less than the size of the drive, I can get ready to migrate. You can shrink partitions using the disk management tool. You can also use third party stuff, and I'm pretty sure you can do this in Clonezilla, although it is easier to get your devices/partitions confused if you're not familiar.
Right click partition>Shrink volume
You will get something like this:
The tool auto divides based on free space, so you don't typically need to edit it. If you're confused on the space, Google MB to GB calculator.
What about the 'System Reserved' or the 'Recovery Partition'?
System reserved is the MBR/Boot portion of the drive, you will need that to boot (so yeah, copy/clone it). Recovery is an OEM thing, and may contain tools/a system image(in some cases) for you to 'recover' the machine. It isn't required, but you can copy it. I personally don't bother with recovery partitions, but that is just me. Keep in mind whatever is in there, be the image, drivers, etc, are what your OEM provided at the time it was shipped, which could be updated with newer stuff by the time you go to use it.
What about a smaller drive to a bigger one?
After the clone/copy, just use the 'extend volume' tool in this list. Pretty much works the same as the shrink tool. Do this after you've migrated the install.
Tools
You can use any partition or drive cloning tool. Most seem to prefer Clonezilla, a free linux based bootable OS. You can make a CD or build a USB drive. If you don't know how to do that frankly this is probably a thread that is beyond you.
If you have the same size drives, you can get one of these great one button cloners like I got:
I love this thing.
Onward:
Guide to Cloning Windows OS
This is the easy part, usually. A lot of software exists for this kind of thing. Some use Acornis, some use Clonezilla, use whatever you like.
For starters, TEST YOUR DAMN DRIVES. You don't really need to do it for the source disk (the drive you're pulling the data from) but you really should for the target drive. This will save you a lot of headache later. Generally new drives are fine, but anything that is a used drive should be tested will a full sector. I'm sensitive about this and usually test the drive regardless, I've had plenty of 'new' drives with bad sectors likely from shipping.
For software like Acronis, this is as simple as selecting the volumes (disks/drives) you would like to backup, and a destination. You can recover from the Acronis Boot CD later.
One thing, Acronis is a bit more sensitive about damaged data/partitions unlike others, like clonezilla.
Clonezilla is an excellent mini linux based OS for cloning/saving partitions. You can read the guide to using clonezilla here and saving disk images here
@FizzyFantom mentioned the importance of the windows COA/Activation key, and I think I should mention some things:
If you change the motherboard/CPU, you're not supposed to use the OEM copy of windows that came with your machine, but a new retail copy. For many, this is an opportunity to change to a newer OS entirely.
Other changes, like the switch to a HDD to SSD should be fine.
It should go without saying that you should not be using the OEM key on a completely separate machine.
Retail copies of Windows can be used multiple times, but in my experience, after two reactivation, you will have to use the voice activation for this to work correctly.
Windows 10 encodes your COA to hardware, including your motherboard/CPU configuration. Keep this in mind, as you can likely skip the step to activate during the install, and it should automatically authenticate later.
Aftermath
For starters, depending on the migration, I generally recommend you run CHKDSK /r in command after a migration to a different sized drive. The blocks may differ, and I can almost guarantee this if you're switching from a HDD to SSD. I run it pretty much every time regardless. This will save you a lot of blue screen and possible data issues now and in the future, so just do it. NTFS file system isn't always a friendly migrating file system.
Now, one thing I should mention- cloning a damaged partition might give you the same results on a new drive. In some cases, this can be fixed with the CHKDSK /F Command on the new drive, but it really depends on the amount of damage/unreadable or uncopyable data there is. The longer you wait to clone a failing HD, the less likely you are to migrate the drive successful to a working one.
CHECK YOUR DEVICE MANAGER. Ensure your devices are recognized/installed correctly. For most drives, Windows is plug and play and will recognize the new device. But you SHOULD CHECK regardless.
For multiple machines/repeated system image
You can techinically copy an activated version of windows multiple times for the same/similiar hardware configs. If you're running a business like me, this will save you untold amounts of time if you have to build multiple systems (say, laptops) of the exact same spec/motherboard + processor.
To reactivate/change the COA after the fact, just run/type Slui 3 in the start menu and press enter. This will run the windows reactivation tool.
Please feel free to give me some feedback, things to add, etc.
I wrote this a while back and now I'm finishing it in haste, I'm sure I've missed some things.