Support with booting from NVMe SSD

Today I removed the stock 128GB ssd from a librem13v4 and added a NVMe PCIe M.2 SSD

I booted from a USB stick and installed the OS just fine. Grub did not complain when grub-install /dev/nvme0n1 but the laptop only boots into memtest.

seabios 1.11.1 shows:
“1. NVMe NS 1: 238 MiB (125026902 2-byte blocks + 3072-byte metadata)”

while when I boot via a USB stick and check on fdisk -l i get
“/dev/nvme0n1: 476.96 GiB 125026902 sectors”
It is formated with MBR and primary partitions, one set as boot. First partition starts at the default 256sect and is 1Gb. grub installed as i386-pc (no efi).

I have absolutely no idea why seabios shows that “238Mb”… doesn’t seem to match anything on the device.

How do I have it booting from the right place?

edit 1: Tried to install pureOS and let it use the entire disk with Erase option. Nothing changed.

edit 2: upgraded seaBios to 1.12.0. Nothing changed.

sigh. installed pureOS on the original SSD.

coreboot/seabios is a crappy-fest!

No matter what i do to the NVMe (leave blank partitions with or without boot flag, wipe partitions, partition as gpt, dos) it will still always boot into memtest/sysinfo by default despite that being the 3rd option.

Why is that so? if boot option 1 fails, shouldn’t it boot from option 2 before option 3?

then manually selecting option 2 (ssd) is a 50/50 chance of seeing pureOS grub menu, or be stuck forever on a blank screen.

meh. had to an SSD in the end just so i could boot consistently, after installing archlinux. no idea what’s up with pureOS’ flavor of grub.

now i have / on nvme0n1p1, and /boot on sda1. what a mess coreboot is.

at least booting from the pureOS live USB stick and running the coreboot updater script to change the boot order to the SSD to be the first option is “convenient”

i guess grub on pureOS wasn’t the problem. it did had a higher failure rate though.

With archlinux’s grub (and same with latest grub from source) i get one failed boot every 5 or so. With pureOS it was 1 out of 2.

and that is using an ssd MBR for the boot stuff. only nvme access is on initrd to load kernel/root.

Sorry you’ve been having issues. You might find these of help (provided you’re using a Librem):

@gcb I’ve not seen any issues with SeaBIOS misidentifying or failing to boot from an NVMe drive since we issued a fix for some drives back in version 4.8.1-Purism-3. If you can provide more details (make, model, capacity, firmware version) of your drive then we can look into identifying and fixing the issue

2 Likes

Just quickly hopping in - no solution, just confirmation: My Librem 13 is running PureOS on a Samsung 960 Pro 512GB NVMe SSD fine and without problems.

1 Like

It is a librem 13 latest version … v4?

edit: and on my first comment i mention (edit2) i upgraded coreboot/seabios using those methods already.

will get the exact details as soon as the user is back in some 30 days.

But the drive is nothing special. Just that we have dozens and only the librem 13 complains (i did test with a intel one, before patching coreboot though)

the one i did all the testing reported in this thread and that is currently on the librem is a sabrenet 512Gb M.2 (PCIe3x4). model i believe is 2280.

In theory the controller supports all the power mgt modes correctly (APST/ASPM/L1.2) and it uses Toshiba 3d TLC nand (which some consider low quality but it’s the perfect price x perf for a desktop system imho)

I must say i have very little experience with kernel nand stuff. wouldn’t even know where to start debugging this (i planned try to force a specific ONFI api version as the driver support from 2 to 4, but i failed to even start on this)