Scott Stephensthe complete anthology

Dell XPS 13 9350 SSD Upgrade: SATA to NVMe

I recently upgraded my Dell XPS 13 9350's SSD from the stock 128 GB Samsung CM-871 to a 512 GB Intel 600p.1 It's a somewhat unusual upgrade because the CM-871 is a SATA 3 drive, and the 600p is an NVMe drive. In most machines swapping a SATA drive for an NVMe drive will not work. But it will with the XPS 9350. While the 128 GB version comes with a SATA drive, the models with 256 and 512 GB of storage both come with NVMe drives. So the motherboard supports both SATA and NVMe. Several owners have reported their success upgrading their 128 GB drive to a Samsung 950 Pro2. However, in all the reports I've found those upgraders did a fresh install of Windows 10, rather than cloning their drive and keeping their installed programs, settings, and data. I've managed this latter feat, and I thought it might be worth documenting my experience in case it helps others. Read on, and you'll learn how.

Before you get started, make sure you have the following on hand:

  • 2 usb drives of at least 8 GB
  • A USB hard drive with at least 128 GB free
  • A torx T5 screwdriver
  • A philips head 1.2 mm screwdriver. A phillips #000 is probably roughly the same size.

The upgrade procedure:

  1. Create a Ubuntu Live USB (download, instructions)

    • When working with Rufus, select the ISO image first, even though it's at the bottom of the form. It resets the other settings.
    • Choose a GPT partition table for UEFI only.
    • Use FAT32 as the file system.
  2. Download Macrium Reflect and use it to create a backup image of your existing SSD AND to create rescue media.

  3. Test the Reflect rescue disk, and the Ubuntu live disk.

    • Press F12 to trigger the boot menu on the XPS 9350.
    • You may need to add options to the boot menu. It's in the General->Boot Sequence menu inside the UEFI/BIOS settings.
  4. Do the physical drive replacement.

    • See laptop magazine article referenced earlier.
    • Note that they erroneosly call for a pentalobe screwdriver; you actually need a torx.
  5. Boot into the Reflect rescue environment, restore your image to the new disk.

  6. Boot using your newly installed disk to confirm the restore worked.

  7. Restart the computer and boot into the Ubuntu Live environment. Use gparted to adjust the size of your partitions.

    • In order for Ubuntu to be able to find the NVME hard drive, you need to change a UEFI/BIOS setting. You'll be changing the storage controller from RAID mode to AHCI mode. It's in the System Configuration->SATA Operation menu.
    • Assuming you haven't changed the factory partitions, you'll have 4 on the old hard drive: a 500 MB boot partition, a 128 MB reserved partition, a ~127.8 GB data and OS partition, and a 850 MB recovery parition.
    • After the clone, you'll have the same partitions, plus some unallocated space at the end of the disk.
    • I deleted the recovery partition, then expanded the main partition to fill all of the empty space. Windows 10s built-in disk partition tool can't expand an NTFS partition, which is why I used gparted.
  8. Restart the computer and boot into the restored Windows 10 environment

    • You'll need to change the storage firmware setting back to RAID mode in order to boot into Windows.

Some additional commentary:

  • If you only have one USB thumb drive, you can move creation of the Ubuntu drive to between steps 6 and 7, reusing the drive you used for the Reflect restore environment. The reason I suggest two is for troubleshooting. If your newly installed drive can't boot you can boot into Ubuntu to use the web, create new USB drives, examine the partitions, etc. If you only have the one, and your first attempt fails, you'll have to swap out the drive physically in between attempts, which is a pain.

  • For my first attempt at doing the clone, I used gparted and dd within Ubuntu to clone the existing partitions to the backup drive, and then to restore them to the new drive. Windows would not boot after doing this. A Windows rescue disk that I had made prior to starting the backup and restore process was unable to repair the boot problem. I also tried with Acronis True Image 2015, which also failed. So I strongly suggest using Reflect, and not something similar. The switch from SATA to NVME seems to confound a lot of the typical methods of clone and restore.

  • Some internet commentary talks about solutions to booting problems involving turning off Secure Boot, and/or enabling legacy mode booting. I didn't experiment with changing those settings. It's possible that changing those settings would have fixed my problems using the Windows rescue disk to repair my dd-cloned boot partition. I doubt it though; I didn't have any problems booting my repair disk, it just wasn't able to repair my boot partition.

Footnotes


  1. Intel recently released the 600p line of SSDs. They use the new NVMe interface, and offer an intermediate level of performance between SATA drives and the other NVMe drives on the market (the Samsung 950 Pro, the Toshiba RD400). But whereas the 950 pro will set you back about $315 for a 512 GB model, at the time of writing you can get a 512 GB 600p from Microcenter for only $170, which is quite competitive with SATA 3 drive prices. It seemed like a good deal to me, and induced me to upgrade.
  2. See, for instance reddit posts by /u/kentjapan, /u/jerkel, and /u/soymilk.