NVMe drive - better w/ a PCI card or SATA adapter?

I was recently gifted w/ a new 1TB NVMe type M.2 SSD. :grinning: Neither of my desktop machines have a slot for it… :cry: Searching on Amazon, I find that I can get either PCIE adapter boards that will let you put one of these in a PCI slot, or holders that will make them connect to a SATA hard drive interface for a 2.5" drive…

Any particular reason to prefer one over the other? I’m somewhat leaning towards the SATA drive converter since it would also let me use the drive in my laptop, but I’d be open to either idea…

Any particular plusses or minuses to either?

Would this work as a boot drive?

ex-Gooserider

You might have better driver support for a SATA connection.

1 Like

I would try the sata adapter first!!!

1 Like

Hi pdecker,
I ask because I don’t know: NVMe is PCIe and is much faster than SATA, but have less support on Linux?

Thanks

Jorge

1 Like

Either might work. I would just guess you’ll have a higher chance of success with SATA. It is slower but I think it will be very usable.

If you don’t mind a bit of trial and error, you might be able to make the PCIe card work.

1 Like

I found an external (USB3) case for an M.2 drive. I plugged it into a USB3 port on the back of my box and it was picked up and given a drive letter in my W11 box. There’s no reason to suspect it wouldn’t work in a Linux box.

2 Likes

USB yes. PCIe card, I don’t think would have the same level of driver support. But you could get lucky and it’d work just great. If there is a good return policy maybe give it a try.

2 Likes

I may actually have spoken to soon, this is the drive Amazon.com, 1TB SSD SP610 PCIe 4.0 NVMe M.2 2280 SSD Internal Solid State Drive, Up to 3600MB/s, 3D NAND TLC Flash, NVMe SSD for Laptop Dynamic SLC Cache

It appears that the traditional SATA1-3 2.5" drive adapters I’ve found don’t seem compatible with this type of drive, just the older SATA B&M Key style… The 2.5" adapters that are compatible are using the newer U.2 / SATA-Express connectors that won’t fit a SATA 1-3 cable…

However the PCI cards appear to be more compatible althought the older PCI-e xand at least one explicitly mentions Linux compatibility w/o needing a driver. The cards are also a bit less expensive :grinning:

ex-Gooserider

2 Likes

I’ve never had issues with NVMe PCIe cards… Have a 1 TB on my Pop!_OS desktop and another 1 TB in my Pop!_OS Thinkpad…
Maybe 5 years ago there might have been issues - but not these days with modern distros…

I’d always opt for PCIe option for performance… in both my cases, it’s a NVMe PCIe “flat” slot on the system board - but you can go for one of those “upright” riser cards to go into a PCIe slot and mount on the backplane of you ATX desktop case…

2 Likes

Hi Arthur,

I believe the bigger question is how do you want to use the M.2 SSD.

If you want the convenience of moving or having the data available between the desktop and the laptop, you should go for the external SATA case,

If you want to have a large amount of storage available for the desktop with a boost in I/O (input/output) speed try the adapter for the PCI slot. Performing a little research on the internet should tell you it compatible with Linux.

3 Likes

I have two possible goals - either to get more, possibly faster storage in one of my two desktop machines, or to do an upgrade of the SATA SSD in my travel laptop, and shift the one currently in that machine to another laptop… There are pluses and minuses to both options… However since it now looks like the SATA adapter isn’t an option the way I thought, I’m probably going to go with the PCIe adapter card.

Data exchange isn’t a significant need, as I have found that Syncthing is a great solution for that concern…

I also have a big collection of spinning external USB drives if I ever actually need them…

ex-Gooserider

2 Likes

As an update on this, it’s been a while, It seems that there are no NVMe M.2 to SATA adapters for whatever reason, or at least I couldn’t find one…

I gave up that search and got a PCI adapter card and have put the drive in one of my desktop machines. I’m now having a battle trying to get the machine to use the drive as the primary boot device and drive… It’s an early (circa 2011) Intel I-7, on an Intel mobo, so it doesn’t seen to know about things like NVMe drives… The OS finds it once it starts to boot, and my thinking is that if I use the SSD for the initial loading of the initramfs etc. and have that point at the NVME drive, I should end up with everything running off it…

However I’m running into a lot of headaches, starting with the machine BIOS supposedly being set to do UEFI boot, but coming up booted in BIOS mode. (Most of the time - it has come up once in UEFI that I’m aware of… I’m causing at least one person over on the Debian forums a certain amount of skull pain trying to figure out what is going on…

ex-Gooserider

I have a machine of that age and I was advised to only
attempt to use SATA drives, so I went in that direction.
The easiest option might be to put the NVMe drive on the shelf, and buy a SATA drive. They are not very expensive.
save your NVMe drive for a more modern machine.

My machine has 2 boot modes called legacy and UEFI compatable. Both work for me.
When you do an install of a distro like Debian, the installer looks at which boot mode you have set and installs grub appropriately. That can be confusing if you accidentally set the wrong mode while installing.

1 Like

@Tech_JA
OK, if the mobo has no support for the NVMe drive, then SATA SSD would be the best choice. A PCI card, with NVMe support would allow the use of a NVMe drive but the computer will not boot from a PCI card, it is the same as older mobo’s that have no support for SATA drives.

2 Likes

I don’t expect to get a more modern machine any time soon, as I have this one pretty well set up and a fair bit of what is in it won’t swap over easily…

I am not expecting to be able to boot off the NVMe drive, but my plan is to get everything using the NVMe as early on as possible, as it is supposedly faster than the SATA SSD. I’d use the SATA SSD as the boot disk, and then use the rest of it as either lower priority storage, or possibly backups and / or other OS installs…

I did make some progress, I think in that I figured out that a lot of my problem was that the SSD had been set up in BIOS mode rather than UEFI, so it didn’t have the right EFI boot partition / information on it… I’ve now reinstalled the OS on the SSD and it now boots in UEFI mode… Now I just have to change where the EFI and GRUB install points at…

ex-Gooserider

3 Likes

Sounds good.
If you made a separate /boot partition when installing,
only the /boot partition needs to be on the bootable ssd drive.
You could put the rest of the OS, ie the / and /home partitions on the nvme drive.

2 Likes

That is basically what I did, and it seems to be working OK… Only problem is it nuked my original installation with both the long list of stuff that I had added to the basic install. This especially included a couple of programs that either weren’t in the Debian repos, or only in old versions, where I had to download and compile from source, including a LONG list of dependencies…

One of my major uses is in CAD / CAM (especially the latter) which unfortunately is IMHO one of the biggest spots that the FOSS universe seriously fails to even come close to the commercial world… About the best we have is FreeCAD, which does not come close to the capabilities of something like F360 or SolidWorks, especially for generating toolpaths for subtractive machining… So I want to run the latest available version of it and CAMotics (a toolpath display program) to get as good as I can…

ex-Gooserider

I agree that is a weak area… especially generating tooling.
I wonder whether there is anything in the 3D printing area that may be applicable… different sort of tooling but you may be able to link into parts of it.

Getting a bit off topic :grinning:

3D printing is a MUCH easier problem, and doesn’t really contribute anything helpful… Additive processes like 3D printing are essentially a series of 2D printing steps largely similar to a pen-plotter (remember those?) Each layer is done as a single flat surface with a step up between layers. You don’t have to worry about all the issues you get when you start doing subtractive machining…

With subtractive you need to worry about not cutting into (or smashing into and breaking things) all the parts you DON’T want to cut, along with any vices or other fixturing, tables, chucks, etc… In addition you need to worry about the size and shape of your tool, and the properties of both the tool and the part material, etc. It isn’t a terribly difficult thing to do simple toolpaths for 2D milling, but if you want to get into 3D or “High Speed” machining, it gets to be several orders of magnitude more complex…

I can make a model in FreeCAD, and it is no big deal to export it as an STL file, and feed it into a slicer program (such as SuperSlicer) which will generate a 3D printing program file for any printer it is set for, no problem… But to generate a subtractive toolpath is much harder, as well as figuring out how to adjust the post-processor to make output suitable for the machine you will be using. (though that only needs to be done once per machine / controller…)

ex-Gooserider

1 Like

OK, thanks for the summary.
I have been around people who did machining, but in my
day they did it by hand starting with diagrams produced by
CAD. They were clever blokes. They used to make all sorts of one-off laboratory equipment.