Fixing NVMe Drive Detection on a ThinkPad T14 Gen 1 with Ubuntu
I recently got a used ThinkPad T14 Gen 1 off eBay. It came without a storage drive, probably because it used to belong to some company and they pulled the disk before selling it.
I picked up a Samsung 980 NVMe at a good price and installed it. The BIOS saw it right away, so I figured I was good to go. But when I booted the Ubuntu installer, it couldn’t see the drive.
After some searching, I found this is a known issue with the T14, the Samsung 980, and Linux. Something about the NVMe power management and PCIe settings causes the drive not to show up.
Here’s the fix that worked for me.
Temporary Fix for the Installer
When booting into the Ubuntu installer, you need to add a couple of kernel parameters:
Hold the left SHIFT key as the machine boots to get to the GRUB menu.
Select “Install Ubuntu” but do not press Enter yet.
Press
e
to edit the boot parameters.Find the line that ends in
quiet splash
and add this before it:nvme_core.default_ps_max_latency_us=0 pcie_aspm=off
Press
F10
to continue booting.
After doing this, the installer was finally able to see the drive.
Make it Permanent After Install
Once Ubuntu is installed, you need to make the same change permanent:
Open the GRUB config file:
sudo nano /etc/default/grub
Find the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
And change it to:
GRUB_CMDLINE_LINUX_DEFAULT="nvme_core.default_ps_max_latency_us=0 pcie_aspm=off quiet splash"
Save and exit, then run:
sudo update-grub
That’s it. Writing this down mostly for future me, in case I forget why the drive isn’t showing up again.
If you’re using a T14 Gen 1 with a Samsung 980 and Ubuntu, this should save you a few hours of head scratching.