I’ve been using a hand me down 64 GB SSD for Fedora as what started as just a trial run, but quickly became my primary driver. I decided it was time for a new one and with the prices of NAND being so great, why not get an M.2 NVMe drive since my board had the slot for it?Β What’s the worst that could happen? A whole lot of frustration and many more hours involved than expected. I also waited more than Newegg’s 30 day return policy to get around to installing it – pro tip, don’t do that. π
What I was working with:
Dell XPS 8920
Fedora
Intel 660p Series M.2 PCIe NVMe
If you want the quick version of what to do, scroll down to the end. If you want to understand a bit more of why and how to diagnose some of these issues yourself, please read on. π
It started out simple enough. My case was super easy to open (once I checked youtube to learn I had to PULL the top thing to release it) and the power supply housing folds up once you get it open. Very interestingly designed case. I was very annoyed to learn that there is NOT a screw that came with the motherboard – just the spacer.Β Make sure your drive is level upon install! If you try to use the spacer as a screw it will not be. Let’s not get into why I know this…
Showed up in BIOS as what it was – cool, must be fine. Nope, was not recognized by Fedora installer.
After a short eternity of boot time, it was recognized in Windows. I was forced to choose MBR or GPT. Chose MBR since that was recommended for my drive size, but later found Dell docs demanding GPT so I converted it. Still nothing in linux.
Flashed BIOS to version 1.0.19. Still nothing.
In my existing Fedora install, I tried these commands from an Intel post and finally learned it was in the kernel but not loaded: https://itpeernetwork.intel.com/finding-your-new-intel-ssd-for-pcie-think-nvme-not-scsi/#gs.cge64j
modinfo nvme
lsmod | grep nvm
Nothing listed, so it’s not loaded.
Tried some other internal docs too, to no avail π
Eventually learned this is how to load: https://docs.fedoraproject.org/en-US/Fedora/14/html/Deployment_Guide/sec-Loading_a_Module.html
sudo modprobe nvme
Now when I run this I have entries:
lsmod | grep nvm
Still no good, does not show up here:
ll /dev/nvme*
At this point I gave up and walked away for a week to regroup and really figure out if there was a hardware incompatibility issue. I was pretty sure there wasn’t since the drive had been recognized by Windows just fine. I checked it out with Intel health and update tools from their website on Windows. It’s just not recognized by any linux I’ve tried. Why?
It turns out it’s that my BIOS was set to RAID, which, despite being older technology, is not supported for NVMe drives. People have claimed that theirs worked with RAID, but most were AHCI. I was able to switch it over with no event – except that suddenly everything appeared. π Fedora loaded the nvme module on its own:
I was hopeful, so next I checked if they were indeed mapped:
And last, it now shows up as a disk:
I now have a prayer of successful installation!!
TLDR
Relevant Machine Specs
Dell XPS 8920
Intel Corporation 200 Series/Z370 Chipset Family
NVMe SSD
Intel 660p Series M.2 2280 1TB PCIe NVMe 3.0 x4 3D2, QLC Internal Solid State Drive (SSD) SSDPEKNW010T8X1
OS
Fedora Workstation 30
Hardware Installation Process
- Buy a damn screw.
- Insert drive in the slot.
- Secure with the screw.
- Verify by booting into BIOS and seeing that it’s recognized.
Linux Installation Process
- Flash BIOS to newest version. May not be necessary but it’s a good idea anyway.
- Make sure BIOS is set to AHCI. If not, switch and verify that everything still boots correctly.
- Boot into linux – either existing drive or live USB.
Resources
https://ark.intel.com/content/www/us/en/ark/products/149407/intel-ssd-660p-series-1-0tb-m-2-80mm-pcie-3-0-x4-3d2-qlc.html
->
https://downloadcenter.intel.com/download/28749?product=149407
Setting up an NVMe SSD on Ubuntu 14.04 LTS
https://www.dell.com/support/article/us/en/04/sln312382/nvme-on-rhel7?lang=en