Maker Pro
Maker Pro

Adventures in replacing an M.2 SATA SSD by a NVME PCIe SSD

Harald Kapp

Nov 17, 2011
Nov 17, 2011
TL;DR: Activate the Windows NVME driver by using a spare hard disk and cloning the system twice.

The 256 GB SSD in my laptop got a bit crammed. So I decided to upgrade to 500 GB and while I was at it, switch from M.2 SATA to M.2 PCIe as the slot in my laptop supports both types.
When the new PCIe SSD arrived I swapped the SSDs (SATA out, PCIe in), mounted the old SATA SSD in an external USB case and cloned the system from the external disk SAT via USB) to the internal disk (PCIe). As i had feared, the computer recognized the internal SSD, but was unable to boot from it.
After some research in the depths of the internet I realized that an NVME driver was required to boot from the PCIe disk. Unfortunately my disk came without a vendor specific driver, it relies on the built-in Windows driver. But there seems to be no official way to implant into or activate this driver in a system that doesn't boot due to lack of this driver. I didn't want to experiment with some of the more or less obscure "tricks" offered on various fora like manipulating the registry (although I do this from time to time when I feel safe), disabling the SATA driver (because there is another SATA disk in the laptop) etc.
But luckily my laptop has 2 disk slots: 1 × M.2 and 1 × 2.5'' SATA. So I came up with the following scheme:
  1. Re-insert the original m.2 SATA system disk (SSD) into the laptop.
    You can spare this step if you don't follow the foolish steps I had tried before.
  2. Swap the 2nd SATA disk (2.5 '') with a spare 2.5 '' hard disk I had lying around.
    Use a 2.5'' SSD if you have one - I truly had forgotten how incredibly slow a magnetic hard disk is compared to an SSD;).
  3. Clone the system from the M.2 SSD to the 2.5'' hard disk.
  4. Swap the M.2 SATA SSD with the new M.2 PCIe SSD.
  5. Boot from the 2.5'' disk. You'll probably have to select the correct boot disk via the PC's boot menu.
    At this point the system will boot because the boot disk is SATA and this driver is present. After booting, Windows recognizes the new PCIe SSD and activates the built-in NVME driver. Now both disks were accessible.
  6. Clone the system from the 2.5'' disk back to the M.2 PCIe SSD.
  7. Remove the 2.5'' disk an re-insert the old disk that was removed in step 2.
  8. Now boot from the new PCIe SSD. Since the cloned system has now the NVME driver activated from step 5, Windows will now recognize the PCIe SSD and boot.
  9. In my case Windows performed some "repairs" on the first boot, possibly because before I had come up with the above scheme I had experimented quite a bit with different configurations which may have made Windows think something was not o.k.
Et voilá, the system is up and running. So far I had to re-register one single program two programs, the registration may have been bound to the hardware configuration which, of course, changed with the installation of the new disk.

Some Notes:
  • I should have researched the issue with the NVME driver before starting to swap the SSDs. Could have saved me a few hours. On the other hand I had not been aware of this issue before :confused:.
  • The nominally faster SSD (PCIe is ~ 3 times faster than SATA) is not much noticeable in use - if noticeable at all.
  • More space on the system disk allows me to transfer some programs that I had stored on the data disk back to the system disk which gives me more space for data (that's why I initiated the whole action).
  • Be prepared to re-register some programs due to a major change in hardware
It would be great if this log spared someone else some trouble.