Can I migrate a Windows installation between two laptops?

I have a laptop which I'm going to return due to battery defects. As I have already configured everything on this laptop, I'd like to migrate the installation on the new laptop (when I'll get it). The one to replace has a 128 GB eMMC, and two USB 3 ports. So, I was thinking to

  • Boot from a Linux live USB from port 1
  • Make an image with dd of the eMMC, saving it to a external HDD on port 2
  • Do the reverse on the new laptop

My question is, will it work fine with Windows? Does migrating this way have any issues? Would I be able to restore the installation if the new laptop is a different model with at least 128 GB?


Solution 1:

Everything will work fine if the new system is a replica of the old system. But the if the hardware is different, you are going to have a problem:

  1. Device drivers: Every unique piece of hardware requires a device driver specialized for itself, so if your new laptop has different hardware, you probably need different device drivers too.
  2. Windows activation: Windows is a commercial operating system and therefore, each Windows copy needs activation against a Microsoft licensing server. Fortunately for you, your question is tagged as being related to Windows 10, which is far more easygoing in this regards. While in every other version of Windows, activation is tied strictly to hardware, in Windows 10, activation may be tied to a Microsoft account too. OEM licenses are tied to a single device and are not transferable. Retail licenses, however, can be transferred.
  3. All the goodies you don't want to delete: There might be certain partitions on your new laptop that you might not want to delete, such a specialized recovery partition with specialized tools.

So, there are few things you might want to do.

If necessary, prepare to transfer your Windows license

If your old laptop didn't come with a copy of Windows 10 out-of-the-box, this means you own a Windows 10 license you might want to save. To do so, connect to the Internet and log in to your laptop with a Microsoft account. This will back up your license and lets you reuse it later. For details, see:

  • "How to keep your local account while linking a Windows 10 license to a Microsoft account". Windows Central. Mobile Nations. 14 September 2016.

If your old laptop came with a Windows 10 installed on it out-of-the-box, you either need to purchase a new laptop that comes with the same edition of Windows 10 out-of-the-box, or pay for a copy of the Windows 10 that has the same edition as your out-of-the-box Windows 10. In case of the latter, you need to install this new purchase and save its license to Microsoft account before proceeding to transfer.

Perform sysprep before imaging

The moment before booting into Linux and imaging your old laptop's hard disk drive, you must run C:\Windows\System32\Sysprep\sysprep.exe with administrative privileges (from the Run... dialog box, Command Prompt or PowerShell.) Unlike most Windows programs, sysprep won't trigger a UAC prompt if you don't run it with administrative privileges.

sysprep discards your Windows license and all other attachments to your old hardware. When Windows is started next time on the new hardware, it will try to detect new hardware. This will take some time. Also, you need to keep the recovery disk of the new laptop at hand to install the device drivers that Windows cannot find on its online catalog. For more information, please see:

  • "Sysprep (Generalize) a Windows installation". Microsoft Docs. Microsoft. 2 May 2017.

In addition, if your new laptop comes with a Windows 10 license of its own, Windows 10 will detect it (now that sysprep has dislodged the wrong license) and will activate itself with the new license. Otherwise, you have to log in with your Microsoft account and the old saved license will be transferred silently. (Windows 10 does all the ugly heavy-lifting that we had to do manually in the past.) Microsoft says it might ask a couple of questions but I've never seen them do it. The whole process is far too smooth.

What if you don't perform the sysprep step?

For one thing, the search of new device drivers for new hardware is not guaranteed. In layman's terms, wrong (or worse, misconfigured) device driver is one thing can seriously mess up your experience with the system. For another thing, Windows will flag an activation error. You have 180 days to fix it, but then it is easier to avoid it with sysprep and the Microsoft account transfer.

Alternative to sysprep

You can save yourself the hassle and instead of Linux dd, do the imaging with something capable of restoring to dissimilar hardware, like Acronis True Image or Veeam Agent for Windows. (The former is commercial; the latter is free of charge.)