TL;DR
The ASRock FM2A88X Pro+ mainboard (from 2015) supports booting an operating system from NVMe M.2 SSD connected through a PCIe-to-M.2 adapter. This requires no hacking. Only the latest available BIOS/UEFI update (from 2016) and changing couple of BIOS/UEFI settings are needed. I’ve verified it myself using Linux Mint 22 installation in UEFI mode.
The whole story
Why using NVMe M.2 SSD?
Because it is a lot faster than SSD using SATA interface. In my setup NVMe SSD running in a PC system supporting PCIe 2.0 was more than 3x faster than SSDs connected through SATA 3 (read time).
Why M.2 interface? Just because NVMe SSD variants using M.2 are much less expensive and more common than variants with PCIe connector. Moreover M.2 variants are smaller and they seem to be more future proof, as modern motherboards usually provide on-board M.2 slots. You can put it into a newer laptop as well.
How to connect NVMe M.2 SSD to an older mainboard?
The ASRock FM2A88X Pro+ mainboard is quite old now (it’s at least 10 years old now, it has FM2+ socket) and, as most such mainboards, it doesn’t have M.2 slot (rare exception here), so there is no direct means of connecting NVMe SSD with M.2 interface, like Goodram PX600 SSD PCIe 4.0 NVMe (M key):
However almost all mainboards have a PCIe x16 slot (a longer PCIe slot) or even two such slots, as in case of the ASRock FM2A88X Pro+. And there are inexpensive PCIe-to-M.2 adapters on the market like Ugreen PCIe Gen4 x16 to M.2 Expansion Card (CM465):
On the product web page there are even claims this adapter fits in shorter PCIe slots (x8 and x4) as well, but it won’t fit into PCIe x1 slot.
So the way to go is to get both: NVMe M.2 SSD and such PCIe adapter. You connect NVMe to the adapter and then you put the adapter into the PCIe slot on your mainboard.
That way you should get NVMe SSD available in your PC no matter what operating system you have – no drivers are needed. Please note that I can confirm this only for the abovementioned ASRock FM2A88X Pro+ mainboard with BIOS/UEFI v3.40. This is the latest available version (v3.40) of BIOS/UEFI update for this mainboard and it was published in January 2016.
How to put things together?
First you install NVMe SSD into the PCIe adapter. You can see the procedure on this YouTube video from “ExplainingComputers”. Then you put the PCIe adapter into a free PCIe slot on your mainboard.
How to boot from NVMe M.2 SSD?
To be able to boot from a NVMe SSD you need to open BIOS/UEFI settings by pressing F2 key or DELETE key just after a computer is turned on, then go to the “Boot” section:
Now go to “Hard Drive BBS Priorities” menu:
Now you can move NVMe SDD to the top of the list there. In my case NVMe SSD was presented as “SSDPR-PX600-250-80”. Then go back (ESC button) to the previous screen, click on “Boot Option #1” and select NVMe SDD here.
Installing an operating system
Now it’s time to install some operating system on the newly installed NVMe SSD. I used Linux Mint 22 for this. After the OS installation it’s time to try booting from NVMe SSD. My first approach failed.
So I tried reinstalling Linux Mint 22, but this time when booting from the installation media (a USB pendrive) I’ve selected a menu item with “UEFI” mentioned in the BIOS/UEFI boot menu (on this mainboard it appears after pressing [F11] for many times just after turning on the computer):
It made a difference! Most likely the boot menu item without the “UEFI” word activates booting in a BIOS-compatibility mode (CSM?) and the boot menu item starting with “UEFI” activates modern UEFI functionality. It looks that when Linux Mint is installed in UEFI mode then UEFI mode is enabled later each time we’re booting from such installation.
I restarted the computer after installation completed and this time it booted correctly from NVMe SSD! 😎
Performance
Below I’ve collected my disk read benchmark results for following data storage devices:
- HDD with 7200 rpm, SATA 3, EXT3 file system
- SSD on SATA 3, EXT4 file system
- SSD on SATA 3, F2FS file system
- NVMe SSD on PCIe 2.0 (M.2 interface), EXT4 file system
I have used the GNOME Disks program that is present in Linux Mint 22 Cinnamon for benchmarking.
HDD with 7200 rpm, SATA 3, EXT2 file system
My old hard disk drive, Seagate Barracuda (7200 rpm) using EXT3 (or maybe EXT2) filesystem got a result of little more than 100 MB/s of average disk read and mean access time of almost 10 ms.
SSD on SATA 3, EXT4 file system
My older SATA SSD, Intel SSD 300 Series 60 GB using EXT4 filesystem got a result of 464 MB/s of average disk read and mean access time of 0,2 ms.
SSD on SATA 3, F2FS file system
My newer SATA SSD, Western Digital 500 GB using F2FS filesystem got a result of 496 MB/s of average disk read and 0,19 ms of a mean access time.
NVMe SSD on PCIe 2.0 (M.2 interface), EXT4 file system
Finally the most interesting result! Goodram PX600 SSD PCIe 4.0 NVMe connected through Ugreen PCIe Gen4 x16 to M.2 Expansion Card and using EXT4 filesystem got a result of 1500 MB/s of average disk read speed and just 0,05 ms of a mean access time. Incredible! It’s 15x faster than a classing hard disk drive and more than 3x times faster than both SSDs connected through SATA cables!
Summary
In my opinion adding an NVMe SSD drive is the best way to speed up your computer, assuming your operating system will be there and your applications are there. NVMe SDD drives with M.2 connector are quite affordable (the Goodram product I’ve used is available now for some 35 EUR). If your motherboard doesn’t have an M.2 socket you can buy a PCIe adapter having such a socket and these are quite cheap (like 8 EUR). In this article I’ve presented how a PC from 2015 can be equipped with such parts, prologing its lifetime, while spending reasonable money.