Good news! M.2 solid state drives (SSDs) offer faster I/O speeds than SATA, and the fastest of these (at the moment) is the Samsung 950 Pro.
This little wonder opens up a new realm of speed reaching or exceeding multi-gigabyte per second transfers — far faster than existing SATA SSDs.
But the real question is, “Will the Samsung 950 Pro work with Linux?” Information about Linux compatibility is scarce as of the time of this writing, so I decided to perform my own tests that answer questions such as,
“Will Linux Mint recognize the NVMe SSD?”
“Will it work with older motherboards and chipsets, such as the Z87 and Z97?”
“What are the Linux benchmarks like?”
“Can I install and boot Linux from the 950 Pro?”
Here are the details…
Update December 29, 2016: The Samsung 950 Pro continues to be a solid performer, and I have had no issues using it with Linux. Linux Mint 18.1 is 100% compatible out of the box. I reinstalled Linux Mint 18.1, and the installer immediately recognized the M.2 drive. No driver installation was necessary. Simply install and go. Linux installation could not be easier. Also, I can upgrade kernels beyond the official updates, and the M.2 SSD still works. The latest kernel tested was 4.8.15-generic (as of the time of this writing), and the 950 Pro M.2 works perfectly with it.
M.2 vs. SSD
For those unfamiliar with M.2, it is meant to replace the existing SATA interface. An M.2 SSD is really just a tiny memory stick that plugs into an M.2 slot on the motherboard (if the motherboard supports it) or into a PCIe (PCI Express) M.2 adapter card.
Existing SSDs have pretty much reached the limits of the speeds possible with SATA 6Gbps. This is why most SSD reads and writes peak at 540-560 MB/s reads and 520-540 MB/s writes for most of the latest SSDs. SSD technology has caught up with the limits of SATA 6Gbps.
To exceed the 600 MBps boundary, a faster interface is needed. One interface that is gaining popularity is M.2, which used to be called NGFF (Next Generation Form Factor).
M.2 is small and incredibly fast. Plus, it is easier to install than a traditional hard drive. All you have to do is plug it into an M.2 slot and screw it in so it stays in place. There are no power or data cables to connect like there are with a SATA drive, and it functions like a regular hard drive.
What is NVMe?
Another term you will hear associated with M.2 is NVMe, which stands for Non-Volatile Memory Express. This is an interface standard that replaces AHCI (Advanced Host Controller Interface), which replaces legacy IDE.
AHCI has its limits, so NVMe is designed to work with the faster M.2 devices for greater I/O throughput. This is why some M.2 drives will also refer to themselves as NVMe SSDs or something similar.
To get full advantage of an M.2 SSD, you will want to have a motherboard that supports NVMe in its BIOS. This usually means the Z170 chipset or better.
“Will the Samsung 950 Pro work with non-NVMe chipsets?”
From my testing, yes, and the results were just as fast as posted NVMe benchmarks from hardware review web sites. I used the 950 Pro with three different motherboards — Z87, Z97, A85 — and they all worked perfectly.
My tests use two components:
Samsung 950 Pro 256G M.2
Right now, the Samsung 950 Pro is the fastest NVMe SSD on the market for consumers. While pricey, it offers incredibly higher speeds than any SATA SSD.
There are two capacities: 256G and 512G. Since I intend to use this for myself, I went with the 256G for price reasons (I have to pay for this myself, after all). According to online benchmarks, the 256G version is the slower of the two, but “slow” depends upon what you are comparing this to.
Lycom DT-120 M.2 to PCIe Adapter
This part is crucial because no motherboard available to me possessed an M.2 slot. The Samsung 950 Pro requires the M-key slot, and the Lycom DT-120 provides an M-key slot. (There is also a slower connector called a B-key, but avoid that since it uses the slower SATA interface. Nor will a B-key slot work with the Samsung 950 Pro.) This device is a simple adapter card.
You plug the M.2 SSD on to the card, and then plug the card into a PCIe slot.
Notice that there are no integrated circuits on the adapter card. This is because M.2 plugs directly into the PCIe lanes. The card acts as a PCIe extension.
The Lycom DT-120 is 100% plug and play with Linux.
What Kind of PCIe Slot Should I Use?
Use a PCI Express 3.0 x4 slot. PCI Express 2.0 will also work, but performance will be lower. The Samsung 950 Pro needs PCI Express 3.0 at four lanes in order to see the highest reads and writes that it can achieve.
You can plug the card into a PCIe 3.0 x8 or x16 slot, and it will still work at full speed. Consult your motherboard’s manual. Most pre-Z170 boards only have 16 available PCIe 3.0 lanes. Depending upon which PCIe 3.0 slot you use, you might not see the full x4 speed if the other PCIe 3.0 slots are populated with graphics cards, RAID controllers, or network adapters that are already hogging the available lanes. PCIe lanes are divided among the PCIe slots in use.
There is a significant difference in speed between PCIe 2.0 and PCIe 3.0. Some motherboards have both and they look alike, so be sure you know which is which. You will not see the full speed of the Samsung 950 Pro if you plug it into a PCI Express 2.0 slot.
Windows 7 Tests. Does it Work?
“Windows 7? I thought this was about Linux. Why?”
Information regarding the Samsung 950 Pro and Linux is almost nonexistent right now, but Windows tests are plentiful. In order to check if the Samsung 950 and Lycom DT-120 adapter that I received were both in working condition and living up to their expectations, I tested them in Windows 7 and compared my results with the Windows benchmarks online.
Download Drivers for Windows
The 950 Pro was plugged into a PCIe 3.0 x16 slot (utilizing four lanes) on a Z97 motherboard. BIOS was set to Legacy Mode, and the SATA ports were set to AHCI. Windows 7 was installed.
Windows 7 did not recognize the 950 Pro. Nothing at all. Only error messages appeared.
I had to download and install the Samsung NVMe Driver Installer first.
Initialize and Format
After the required reboot, the drivers installed, but Windows 7 still did not recognize the drive. I had to go to disk management in order to initialize the disk.
Windows 7 CrystalDiskMark Benchmarks
Now that the 950 Pro is ready to go, let’s test it using CrystalDiskMark 5.1.2. Expected results for the 950 Pro 256G version should be around 2.2 GB/s for sequential reads and about 900MB/s for sequential writes according to online sources. (There are no quoted speeds on the box.) If the results are in this range, then I assume that the 950 Pro setup is performing properly.
CrystalDiskMark 5.1.2, 3x100MB
I ran CrystalDiskMark several times with varying sizes and iterations, and all results were close to these numbers. I am impressed with the speeds compared to a 6Gbps SATA SSD. The Samsung 840 EVO cannot touch these read/write speeds.
Samsung provides a program called Samsung Magician that gives information about and adds enhancements for its line of SSD drives.
I tested the performance of the 950 Pro using the Magician software, and the results were similar to CrystalDiskMark.
Samsung Magician has an SSD caching feature called RAPID Mode (visible at the bottom of the sidebar in the image under “Advanced Feature”). The idea is that it caches frequent data from the SSD in available RAM. It works quite well with Samsung SATA SSDs and can boost reads and writes to 6GB/s, but not with the 950 Pro. Even though Samsung Magician would provide information and performance tests for the 950 Pro, it would not enable RAPID Mode.
That is enough for Windows. This confirms that the new NVMe 950 Pro M.2 SSD is 100% compatible with a Z97 chipset lacking an M.2 slot, and it runs at full speed with legacy BIOS. (I did not bother with UEFI.)
Now, for the real test: How does Linux perform with the 950 Pro?
Linux Mint 17.3 Cinnamon
I used an older Z87 motherboard set to legacy BIOS (UEFI only leads to problems) and AHCI SATA (for other SATA devices), and I plugged the Lycom adapter with the Samsung 950 Pro into a free PCIe 3.0 x16 slot utilizing four lanes.
Update (April 21, 2016): Xubuntu 16.04 and Ubuntu 16.04 also recognize the Samaung 950 Pro and install just fine.
Update (July 16, 2016): Linux Mint 18 also recognizes, installs, and boots with the Samsung 950 Pro.
Perfect Linux Compatibility
Linux Mint 17.3 Cinnamon automatically detected and recognized the NVMe 950 Pro and mounted it for use.
Everything was automatic and 100% plug and play in Linux. I did not need to download and install any drivers or reboot the system. It just works in Linux!
Install the hardware and turn on Linux. How easy is that?
Compatibility like this was expected since Linux has supported NVMe in its kernel since version 3.3 released in 2012.
Different Device Naming
Notice that Linux labels the 950 Pro as /dev/nvme0n1, not /dev/sda or something we are used to with older drives.
For partitions on the NVMe drive, the partition is referred to as /dev/nvme0n1p1 for the first partition, /dev/nvme0n1p2 for the second partition, and so on.
No Recognition in gparted
The next step was to reformat the 950 Pro to ext4. Usually, this means using gparted, but gparted did not recognize the NVMe M.2 device.
This was the only incompatibility I encountered. Both Disks (above) and fdisk (shown below) detect and recognize the 950 Pro, but not gparted. Strange.
I formatted the 950 Pro to ext4 using Disks, and everything was good.
Linux Mint 17.3 Disks Benchmarks
How does the 950 Pro perform in Linux?
I used the built-in Disks benchmark in order to test the read/write performance of both NTFS and ext4. This is still using the same Z87 chipset and PCIe 3.0 slot.
Disks, NTFS, 3x1G
These tests were ran many, many times, and the results were all similar to those shown here. In most cases, the Disks benchmark in Linux Mint 17.3 returned better numbers than the CrystalDiskMark 5.1.2 numbers in Window 7. Not certain if this is because Linux has better support for NVMe or if the Disks benchmark uses a different algorithm. Usually, Disks shows lower numbers than CrystalDiskMark, so maybe the drive performs better with Linux?
In any case, the Samsung 950 Pro 256G M.2 is 100% compatible with Linux and operates at its top speed if connected to a PCIe 3.0 slot. And this is with non-NVMe, legacy BIOS. Again, the adapter is required because the Z87 motherboard lacks an M.2 slot.
What is PCI Express 2.0 Performance Like?
I plugged the 950 adapter into a third motherboard that only had PCI Express 2.0 slots. It had an A85 chipset with the A10-5800K APU installed. Legacy BIOS and AHCI SATA was enabled.
With PCIe 2.0, reads never exceeded 1.7GB/s. I doubt the CPU was the limiting factor because each lane in PCIe 2.0 supports a maximum of 500MB/s. With four lanes, that produces a theoretical maximum of 2GB/s, so 1.6-1.7GB/s is a realistic number. Maybe PCIe 2.0 combined with the A10-5800K is resulting in the lower read speeds. Regardless, this shows that the Samsung 950 Pro is designed with newer systems in mind in order to take advantage of its full speed capabilities.
Will Linux Install and Boot from the 950 Pro?
Ah! The question Linux users are probably the most eager to have an answer for.
Yes, it will. I installed Linux Mint 17.3 Cinnamon (an Ubuntu 14.04 LTS derivative) onto the 950 Pro from a USB, and everything worked PERFECTLY!
If you have read reviews (which are almost completely Windows-related) regarding the Samsung 950 Pro M.2, many users are having difficulties getting their systems to boot into Windows from NVMe devices. It can be accomplished on some systems — if the BIOS supports NVMe — but only after a number of steps are taken. As of now, it is not a user-friendly process.
Linux has no such issues.
Linux Mint installed just as well on the 950 Pro NVMe M.2 as it did on every other SSD I installed it on, and it booted to a Linux desktop upon the first try.
I used an older Z87 motherboard set to legacy BIOS. Despite not having NVMe BIOS support, the BIOS recognized the 950 Pro, and I could add it to the boot drive list. No BIOS updates were performed, so the BIOS was at least a year old.
I also set the SATA mode to AHCI in case I wanted to add other SATA devices.
I booted into a LiveCD version of Linux Mint 17.3 Cinnamon from a USB 3.0 device. At the “Installation type” dialog upon installing Linux Mint, I chose the “Something else” option so I could customize the partition information.
The Linux Mint installer sees the NVMe SSD and recognizes it as /dev/nvme0n1. Any partitions created are labeled as /dev/nvme0n1p1 and /dev/nvme0n1p2 as shown here.
The important point to be aware of is choosing the boot loader installation. The installer might choose your USB by default. Choose the M.2 device itself. Do not choose a partition or the USB, or else Linux will not boot. This is normal installation behavior and has nothing to do with an M.2 SSD.
In my case, the Linux Mint installer correctly set the boot loader for the NVMe device (/dev/nvme0n1), so I did not need to change anything. Again, do not choose a partition or you will see an endless GRUB boot loop and think that Linux does not install to an NVMe device. (I tried installing the boot loader to a partition to see what would happen.) This is something that can happen to any installation, so double check.
Again, make sure that the 950 Pro is enabled in BIOS and added to the list of boot devices. (This setting can vary by motherboard and BIOS, so check your user manual.)
Will Linux Mint Install Faster to the Samsung 950 Pro?
Yes. From a USB 3.0 device to the 950 Pro, installation completed in 1m26s. This was measured using a stopwatch upon clicking the “Continue” button following the partitioning step to the appearance of the reboot dialog.
This was the fastest Linux Mint installation I had performed.
After unplugging the USB device and rebooting, I was greeted with the familiar Linux Mint 17.3 desktop and welcome dialog.
Will Linux Mint Boot Faster?
Linux Mint already boots fast from a cold boot, and I measured no difference between a regular Samsung 840 (the plain 840, not the 840 EVO model) and the Samsung 950 Pro.
This is mainly because of the motherboard BIOS. For me, BIOS takes at least 12 seconds to complete its power-on and POST cycles — and yes, this is with its fast boot settings enabled the best I can set them. BIOS takes even longer — as much as 30 seconds — if not configured for a faster boot.
Once the BIOS step is complete and Linux takes control, then the rest of the boot process is extremely quick but the same for both a regular SSD and the 950 Pro.
Boot Times (measured using a stopwatch)
Cold Boot. Measured from pressing the power button. Total BIOS ToLogin ToDesktop --------------------------------------------------- Samsung 840 SSD 23s 12s 8s 3s Samsung 950 Pro 23s 12s 8s 3s
Linux already boots quickly, so the 950 Pro offers no speed improvement in that area unless you might have many large boot files that you need to copy into RAM upon booting.
For everything else, such as opening programs for the first time before they are cached in RAM and reading and writing files, the speed improvement is noticeable. Most programs feel “instant.” An SSD is already fast and makes a computer feel “snappy” and responsive, but the 950 Pro takes it to another level by making the computer feel almost instantaneous.
Of course, it still depends upon what you are using your computer for. Not every program will open instantaneously, but I could certainly see a difference. For example, LibreOffice Writer opened in less than a second. A slight–very slight–pause, but noticeably faster than the Samsung 840 SSD.
M.2 is a taste of the future.
From what I have seen for myself, M.2 appears to be the next generation of secondary storage, and the Samsung 950 Pro 256G M.2 is fast and ready now. Best of all, it is 100% compatible with Linux Mint 17.3 running on Z87/Z97/A85 PCIe motherboards with a legacy BIOS, so there is no need to upgrade to newer hardware or enable the dreaded UEFI. You can experience the benefits of M.2 right now with your existing hardware — if you are using Linux.
Although I only tried Linux Mint 17.3, it might be safe to assume that the Samsung 950 Pro will work with other recent Linux distributions since Linux already has built-in NVMe support. Your results might vary as much as the hardware you use.
Given how new NVMe SSD technology is for consumers, I was surprised by how well it worked with a standard desktop Linux installation and my existing hardware. Everything was simple and truly plug and play. In fact, I found it easier and quicker to get up and running with the 950 Pro M.2 technology than with a regular SATA hard drive or a SATA SSD because there were no cables involved. This leads to cleaner-looking system builds.
And then there is the speed. 2.2-2.6GB/s reads and 950+MB/s writes are fast. Real fast — even if all I had to try was the “slower” 256G version of the Samsung 950 Pro. That is for a single M.2 SSD. Imagine the possibilities of RAID-0.
From what I have seen, an M.2 SSD can offer a more noticeable speed improvement to a system than a new processor. If you choose to travel the M.2 path, then the Samsung 950 Pro is definitely a worthwhile investment — and an excellent choice for Linux.