Max NVMe Size for Librem 15v4

Does anyone know the max size NVMe that can be put into a Librem 15v4.

I have a 2 TB. I would like to upgrade to 4TB.


80 mm or 8 cm is the length of ShangSung’s NVME 970 PRO and that is known to fit …

ok but the length will not increase with capacity … 4tb should be the same length as 2tb

Do we know for certain if the Librem machines can/will support 4TB? Was contemplating getting a new machine, but would rather increase storage.

It’s a 64 bit CPU, so yes. If it was ARM (eg raspberry pi) it would not. (in that case you would have to split it into 2 2TB partitions).

But I guess that would still be a solution that will let you use it still. 2 drives versus 1.

Let us know how it goes, as I’m interested in the results!

I think that depends on what firmware you have on your Librem 15v4.
My Librem 13v2 has Coreboot 4.11 with SeaBIOS. Based on my experience so far, booting from a 4 TB drive with SeaBIOS might be challenging, regardless of how the drive is partitioned.
SeaBIOS does MBR legacy boot only, not UEFI.
Someone knowledgeable (Mr Chromebox would know) correct me if I’m wrong, but SeaBIOS seems to expect a 512 byte sector size, so with an MBR partitition table, you’re limited to 2 TB maximum for the device, all partitions included.
That would limit you to using a GPT partition table set up to do legacy MBR boot. This might be tricky to set up. The typical advice is to use a smaller boot drive instead, and install a second, larger drive (a separate device, not partition) for storage of user files. That way, you don’t have to deal with the finicky details of booting from a 4 TB device.
Hopefully, Mr Chromebox or someone at Purism will chime in on this thread with info that’s more accurate and detailed than I can offer!

P.S. I should add: If you don’t plan to boot from the 4 TB drive, you should have no problem, since PureOS handles GPT partition tables just fine. It’s just using a 4 TB drive for booting (that is, as a drive with an operating system on it) that’s a potential problem.


It is possible to use a hybrid MBR/GPT table, as each one is located in a slightly different spot at the head of the drive. Most flash chips use a 512 byte sector size, so that isn’t a problem itself (you want the filesystem sector size to match the physical sector size in pretty much every case). Hybrid partition tables have a reputation for being unreliable, but that’s not really an issue in the trivial case. I wouldn’t recommend using extended partitions or going above 4 total partitions, as they then become less reliable. Also, if you want to change the partition layout, you must change the GPT one first, then synchronize the MBR table before you reboot. And don’t use very old partitioning tools, as they won’t detect the hybrid table and might screw things up. For very large disks, omit any partition which starts past the 2tb mark. If you want windows compatibility, also omit any which extend past the 2tb mark. Also omit any which are over 2tb in total size.

I’d set up a 1gb fat32 partition as a proper EFI boot partition, offset 2 MiB from the start of the drive, and put the boot files there (both grub EFI and grub MBR). Then write grub MBR to the head of the drive. Partition the rest of the drive however you want (again, 4 partitions total, maximum). The Linux kernel should read both partition tables, see that they match for the entries they both contain, and use the GPT table to find the “extra” partitions.

You could also potentially switch to TianoCore, but I’d only recommend that if you have a chip flasher to fix it if something goes wrong and you soft brick the machine.


That’s not quite true, depending on the price point. At this point, there are 1TB flash chips, often used in the cheapest drives. They’re about the same size as the 512GB flash chips used in slightly older, higher end drives. The data density means you can get 2 TB double sided nvme drives at 3 cm. Using the same chips would extend to a minimum size of around 5cm for 3-4 TB. Of course, these are mostly used by system integrators in small form factor machines, so not likely what the OP already has.

1 Like

I appreciate all of the discussion. The drive I was thinking about purchasing to put into my Librem 15 v4 is shown below via the link.

It is a Sabrent 4TB drive.

I would obviously not want to procure if it will not work in my machine :-).

holly guacamole ! that’s 850 in US fiat currency …

so why not stick with what you have AND buy a separate 2TB SATA 3 SSD for storage ?

1 Like

Truthfully, I have my 2TB and the 550GB that came with the machine. Would rather have the 4TB on one drive. If not, that would be an option.

All the comments about BIOS 2TB limitations presumably

a) apply to any type of disk technology (not just NVMe)

b) only apply to the boot device.

So the second point may imply that you can replace a 2TB NVMe with a 4TB NVMe but boot from the SATA drive. You won’t get the benefit of faster boot times - so it could depend on how often you are booting and how much use you are making of the content on the 2TB / 4TB drive.

Otherwise you will need to understand and work carefully to implement the stuff about hybrid MBR/GPT.

1 Like

Specifically, the time it takes the BIOS to load GRUB2 will be slower (this time is trivial, even on spinning rust). GRUB2 can read the extended partition tables of a larger disk. If, for simplicity, you want the kernel image on the same partition as the grub modules and config (a common and stable approach), then the time taken to load the kernel image and initrd is also longer, but also a fairly tiny amount of time. The rootfs can still be on the nvme drive.


I guess this Sabrent natively uses only the Microsoft W10 driver. So, if you are not already running Linux 5.4 kernel (at least) you might have some recognition problems with this particular NVMe drive as already described here:

In short and as well, before reaching your 4TB goal (perhaps with another drive), please be aware of the Linux NVMe™ driver (nvme-cli).

I like what @reC already suggested (as cheaper/better solution). Nowadays is hard to push 4TB under M.2 size of 22110 mm, so why not to replace 2.5 inch SSD with something like Kingston’s Data Centre 500 (DC500M) into 3.84TB? Micron® 5300 MAX SSD might be another 2.5 3.84TB solution, etc. By investing approximately the same amount of money you might get almost 6TB of solid space.

As the only currency that isn’t fiat is currently crypto is there really a need to spell this out?

I agree though it might be easier to just update the 2.5 ssd first. Of course I totally get wanting a 4tb nvme drive. So either way I think it is possible.

Most places you buy the drive from will let you return it in 14 days if it doesn’t work out. So maybe worth a shot regardless.

1 Like

A reason not to do that is speed. SATA III is slow, very slow, compared with PCIe x4. Perhaps @steven.ellsworth40 really wants to move that data.

why yes - yes it is necessary because crypto is also fiat … only in a more obscured and difficult to understand way :slight_smile: we might debate this in another thread but i’m sure it’s been discussed elsewhere …

on that note only precious materials can be considered NOT fiat currency …

Which is related to NVMe PCIe Gen3 x4 M.2 interface and not to NVMe PCIe 4.0 M.2 2280 internal SSDs. Sabrent confirmed: “Using a Gen 3 PCIe motherboard will enable the user to reach speeds of up to 3400 MB/s (read) and 2750 MB/s (write).” Anyway it looks like 4TB ROCKET NVMe PCIe M.2 2280 internal SSD uses Phison E12S layout.

I must apologize, but am I to assume the drive I was reviewing will not work :-)?