The Samsung 950 Pro 256G and Linux. Does it Work?

đź“… April 20, 2016
950boxWhat? You say your 6Gbps SATA SSD is too slow? You have to wait an extra second or two?

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…

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.

The Equipment

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.


Samsung 950 Pro M.2. Packaging includes the stick itself and a small manual written in different languages. No screws or mounting hardware is included. This is the 256G version.


Back of the box. Nowhere does it quote expected speeds or operating system compatibility. From my results, the 950 Pro M.2 is 100% compatible with Linux Mint.


Back of the 950 Pro. It measures 22mm wide by 80mm long. Hence the naming: 2280. There is nothing on the back except for the sticker seen here. This M.2 SSD requires an M-key slot. Even though it is labeled as an NVMe device, it worked with all non-NVMe legacy motherboards I tried.

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.


Lycom DT-120 M.2 to PCIe x4 adapter card. It ships in a nondescript, white box and includes a smaller bracket and one screw. The screw fastens the M.2 SSD onto the card.


Lycom DT-120 closeup. It accomodates 2242, 2260, and 2280 M.2 cards, and it plugs into a x4, x8, or x16 PCIe slot.

You plug the M.2 SSD on to the card, and then plug the card into a PCIe slot.


Here is the DT-120 with the Samsung 950 Pro 256G M.2 installed. It’s quick and easy. See the screw holding the M.2 in place? That is what the Lycom’s included screw is for.

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.


Windows 7 knows nothing about an NVMe SSD.


“Click here for details.”

I had to download and install the Samsung NVMe Driver Installer first.


You need to install the drivers or else the Samsung 950 Pro will not work in Windows 7.


Some things never change…on Windows.

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.


You must initialize the M.2 disk. I chose MBR, and it worked perfectly at full speed. This step is normal on Windows and not a fault of the M.2 SSD.


Once initialized and formatted to NTFS, Windows 7 was ready to use the 950 Pro.


Notice that only 238G is available even though this is a 256G drive. After formatting, expect about 7% less usable capacity for any drive.

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


Better than expected.


This is better than the online sources I had consulted in order to formulate a baseline.

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 Magician

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 performance test results of the 950 Pro.

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.


Linux Mint 17.3 Disks program showing the 256G 950 Pro ready for use. Shown here is the NTFS-formatted 950 Pro from the earlier Windows 7 test.


Using the same NTFS-formatted 950 Pro, the M.2 drive was accessible in Nemo like any other drive. Creating and deleting files and folders behaved the same as any other SSD.

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.


Format dialog in Disks.


fdisk shows the 950 Pro. Here, the Samsung 950 Pro M.2 was formatted to ext4.


Disks will format the Samsung 950 Pro. The M.2 SSD formatted to ext4 like any other good drive does. No problems encountered.

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


A test of NTFS made before the 950 Pro was formatted to ext4. 3x1G. 2.6GB/s read, 949MB/s write. After running the benchmark multiple times, this was the only instance of reads reaching 2.6GB/s. Most were 2.3-2.5GB/s.


2.3GB/s (for reads) is a more realistic number compared to the 2.5/2.6 GB/s reads that Disks reported. Shown here is hdparm, which consistently returned 2.3GB/s read speeds.


Reformatted to ext4. 3x1G. 2.5GB/s read, 955MB/s write.


ext4. 100x10M. 2.5GB/s read, 783MB/s write.


ext4. 1000x100M. This longer test was to observe the performance over a length of time. The 950 Pro remained consistent. Other SSD drives, such as the PNY CS1311, would begin with a bang, but the writes would suddenly drop and remain low during a test like this. The Samsung 950 Pro is a champion performer.

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.


ext4. 100x10M. PCIe 2.0 x16 slot. 1.6GB/s reads, 758MB/s writes. Shorter tests yielded lower write speeds. This is one of the lowest, but writes did reach 950MB/s with PCIe 2.0.


ext4. 3x1G. 1.7GB/s reads, 963MB/s writes. Longer tests yielded 950+ MB/s write speeds.

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.


The Z87 BIOS on the motherboard I used saw the Samsung 950 Pro. Here, it is set as the boot drive. BIOS is set to Legacy Mode.

I also set the SATA mode to AHCI in case I wanted to add other SATA devices.

Installation Notes

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.


Linux Mint 17.3 Cinnamon installation. “Something else” will let you manually partition a hard drive.

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.


Partitioning the Samsung 950 Pro for Linux Mint 17.3. Two partitions were created in this example, but you can customize it as you like. Here, there is one large partition (/dev/nvme0n1p1) for the system, and a second partition (/dev/nvme0n1p2) for the required Linux swap space. /dev/sda is the USB Linux is installing from.

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.


Linux Mint 17.3 Cinnamon desktop booted from the Samsung 950 Pro M.2 SSD.

Will Linux Mint Boot Faster?

Surprisingly, no.

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.


, , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: