Update 11: NVMe SSD Upgrade for macOS
Background
I’ve been planning to upgrade both of my Samsung EVO 860 SATA SSDs to NVMe SSDs since my original build. I recently
upgraded to a WD_BLACK SN750 1TB NVMe SSD with Heatsink for Windows.
I had planned to get an SN750 or SN770 2TB without a heatsink for macOS (the M.2_1 slot on my motherboard has a heatsink), but I ended up getting an SN850 2TB SSD without a Heatsink (
Amazon |
Newegg) on sale for cheaper than those lower-end models. Note that the full speeds advertised for this drive are not achievable with a Comet Lake CPU and motherboard, which only support PCIe 3.0, not PCIe 4.0.
These are the steps I followed to get everything set up on the new drive (they’re very similar to the steps I followed when I upgraded my Windows SSD):
NVMeFix Kext
- Download NVMeFix.kext v1.0.8 (v1.1.0 and v1.0.9 caused kernel panics for me).
- Add NVMeFix.kext to EFI/OC/Kexts.
- Open config.plist in ProperTree.
- Go to File/OC Snapshot.
- Select your EFI/OC folder and click Choose.
- Save and close config.plist.
- Reboot to make sure there are no issues.
Installation & Cloning
Installation
- Shut down and unplug the computer.
- Remove the graphics card because it was covering the M.2_1 slot (I had to use a spudger to press the release lever for the PCIe slot because I couldn’t reach my hand between the graphics card and the CPU cooler to press it).
- Follow the motherboard manual’s instructions to remove the M.2 heatsink and install the SN850 SSD into the M.2_1 slot with the M.2 standoff and screw included with the motherboard (see section 2.1.4 M.2 Installation in the manual).
Configure BIOS M.2 settings
- Plug in and turn on the computer again.
- Press
Delete
or F2
to enter BIOS.
- Press
F7
or click Advanced in the bottom right corner to enter Advanced Mode.
- Go to the Advanced\Onboard Devices Configuration menu.
- Set M.2_1 Configuration to PCIE.
- Go to the Exit menu.
- Select Save Changes & Reset and press
Enter
.
Format the SSD
I created two volumes on the disk. One was a clone of my old macOS SDD that I will keep under 500GB so that I can keep a backup clone of it on a 500GB external drive. The second volume was for the data I stored on my old HDD.
- Open Disk Utility.
- Select the SN850 in the left column.
- Click the Erase button.
- Give the disk a name.
- For Format, choose APFS.
- For Scheme, choose GUID Partition Map.
- Click Erase and then Done.
- (Optional) Add a second volume to the disk for additional storage separate from macOS
- Select the Container disk in the left column.
- Click the Add (+) Volume button.
- Give the volume a name.
- For Format, choose APFS.
- Click Add.
Clone macOS drive to the first volume on the new drive
I used SuperDuper! for cloning my old macOS boot drive to the first volume on the SN850, but you can also use Carbon Copy Cloner.
Copy data from HDD to the second volume
I couldn’t clone the old HDD to the second volume on the SN850 because the formats were different. The HDD was Mac OS Extended (Journaled), and the volume on the SN850 was APFS. I had to manually copy the contents of the HDD to the SN850 volume in Finder.
Disconnect the old SSD
- Shut down and unplug the computer.
- Disconnect the SATA and power cables from the old Windows SSD. I left the SSD mounted in the case to potentially use for additional storage in the future. You can rem
- Plug in and turn on the computer again.
Fixing Boot Order, OpenCore GUI, and Startup Disk
I had the same issues with boot order, the OpenCore GUI, and the default startup disk that I had when I upgraded to an NVMe SSD for Windows.
Fix boot order in BIOS
After turning on my computer, it was defaulting to booting from my new Windows drive instead of my macOS drive, so I changed it to my macOS drive.
- Turn on the computer and press
Delete
or F2
to enter BIOS.
- Press
F7
or click Advanced in the bottom right corner to enter Advanced Mode.
- Go to the Boot menu.
- Set Boot Option #1 to the macOS drive.
- Go to the Exit menu.
- Select Save Changes & Reset and press
Enter
.
Reset NVRAM to fix OpenCore GUI issue
After restarting, when I got to the OpenCore Picker, the GUI did not load, and the resolution was so low that the list of drives barely fit on the screen. I’m not sure what happened, but remembering that an NVRAM reset is required to apply changes to the OC UI Scale, I thought (correctly) that an NVRAM reset might fix the issue.
- At the OC Picker, press Space and then select Reset NVRAM. The computer will reboot.
Fix boot order (again)
After resetting NVRAM, my computer defaulted to booting from my Windows drive again, so I had to change it to my macOS drive
again.
- Go to the BIOS and set Boot Option #1 to the macOS drive again (see Fix boot order in BIOS above for detailed steps).
Set startup disk in macOS
At this point, the OC Picker was also defaulting to my Windows drive.
- If this happens to you, select your macOS drive and log in.
- Open System Preferences and select Startup Disk.
- Select your macOS disk and click Restart.
- The OC Picker should now default to your macOS drive.
Enable FileVault
Once I had copied all my data to the new drive and sorted out those issues, I could enable FileVault for the new drive.
- Open System Preferences.
- Click on Security & Privacy.
- Click on the FileVault tab.
- Click Turn On FileVault.
Impressions and Benchmarking
Impressions
I knew I couldn’t get the full advertised speeds for this drive, but I thought the speeds would be closer to 3,400 MB/s like my SN750 for Windows. That said, the difference between 3,000 and 3,400 MB/s probably isn’t noticeable in everyday use.
For what it’s worth, the startup time from the motherboard logo to the macOS login screen is only 17 seconds (it was 23 seconds with the old SSD). Logging in and launching all my apps is also much, much faster (I didn’t time it).
Blackmagic Disk Speed Test Benchmarks
WD_BLACK SN850
OLD Samsung 860 EVO
My latest EFI folder is attached for reference.