Linux Mint 18 Installation Tips

ūüďÖ July 12, 2016
lm18b“Yes! Linux Mint 18 has been released, and it feels like Christmas!”

The Linux world is an exciting landscape of ingenuity to explore, and this new distribution brings improvements that solidify Linux Mint as one of the most stable and user-friendly operating systems available today.

I have been using Linux Mint 18, but a few things are different from past releases. I also encountered a few bumps along the installation road, so here are a few points to be aware of.

Topics Covered

  • Kernel Upgrade
  • Samsung 950 Pro NVMe Installation
  • Installation Not Detecting Solid State Drives
  • Using a Local Repository
  • R.A.T.7 and M.M.O.7 Mice
  • Link Aggregation (Not Yet Resolved)
  • Disabling Predictable Network Interface Names
  • Disabling IPv6
  • Installing VirtualBox 5.0 with libvpx1 Dependency Error

Being a fan of the Cinnamon desktop interface, I installed Linux Mint 18 Cinnamon 64-bit (Codenamed “Sarah”). Linux Mint 18 is based on Ubuntu 16.04 Xenial Xerus, so this is a Long Term Support (LTS) release.


Linux Mint 18 with Cinnamon desktop 3.0.6. The new, dark wallpaper will be the first thing you see after a fresh installation.

I installed LM18 fresh on real hardware. With a USB 3.0 image made with Yumi, LM18 installs to a solid state drive in about one minute depending upon the hardware. I had a completely working operating system in under two minutes from start to finish — including the necessary reboot. That’s fast. The longest installation took 3m14s on slower hardware.

Even better, with the Samsung 950 Pro M.2 NVMe, installation completes in under a minute (assuming the other hardware is also fast).

Kernel Upgrade

While LM18 installs with kernel 4.4.0-21-generic, I manually installed the 4.6.3 Ubuntu mainline kernel — the most recent as of the date of installation. The new “Yakkety” kernel (4.6.3-040603-generic) works perfectly.

Kernel 4.6.4 also works installs and works well. To install a new kernel, download three files for your architecture. For example, a 64-bit Linux Mint 18 system needs these three files:

  • linux-headers-4.6.4-040604-generic_4.6.4-040604.201607111332_amd64.deb (1.0M)
  • linux-headers-4.6.4-040604_4.6.4-040604.201607111332_all.deb (9.4M)
  • linux-image-4.6.4-040604-generic_4.6.4-040604.201607111332_amd64.deb (55M)

Place them in their own directory, and then open a terminal in that directory. Enter,

sudo dpkg -i *.deb

This saves typing. The kernel will install. Be careful to download the correct set of files since several architectures are lumped together in the same directory on the web site. It can be easy to accidentally download an incorrect file and then wonder why it will not install.

In my case, I use the generic kernels. The low latency kernels are better suited for music production and recording systems.

Does Linux Mint 18 Install and Boot from the Samsung 950 Pro NVMe?


From the start, the Linux Mint 18 installer automatically recognized the 256G Samsung 950 Pro NVMe M.2 (Non-volatile Memory Express) module in a PCIe adapter and installed to it. 100% compatibility without any issues.


This speedy, little wonder is one of the best upgrades you can add to your system, and it is 100% compatible with Linux Mint 18.

After installation, Linux Mint 18 booted straight from the NVMe module and into a working login screen. And in case you are wondering about NVMe performance — yes, it’s very fast. The entire LM18 system feels instantly responsive.


The Disks benchmark shows that the Samsung 950 Pro 256G NVMe M.2 easily achieves the maximum 2.3GB/s reads and 0.03 average access times in Linux Mint 18. Write benchmarks are not possible here since this is mounted as the system drive.

When setting up the NVMe installation, I chose to manually configure the installation partitions. Linux Mint 18 sees the NVMe SSD as /dev/nvme0n1, and this is important for specifying the boot loader’s location. Make sure that the boot loader installs to the NVMe device, not the installation USB or another drive.

In my case, I created two primary partitions on the NVMe SSD:

 /dev/nvme0n1p1 Root
 /dev/nvme0n1p2 swap

And then, I set the boot loader for /dev/nvme0n1.


Linux Mint 18 installation showing 950 Pro partition configuration. /sev/sdb is the installer USB. /dev/nvme0n1 is the 950 Pro.

Linux Mint 18 booted perfectly after installation.

Important Note: BIOS was set to Legacy Mode (not UEFI), and all Secure Boot options were disabled in BIOS. SATA mode was set to AHCI.

BTRFS (The Butter/Better/B-Tree File System)

At last! btrfs is available as a format option for system installations. The B-tree Filesystem (or Butter Filesystem or Better Filesystem, whatever you prefer since nobody can seem to agree) is a modern filesystem that aims to replace the older ext3/ext4. Looking at the specifications, it offers improvements that increase data reliability.

btrfs has been around for a while, but it was an optional installation. Now, it is considered stable and included as part of the 16.04 package. You can still use ext4 and others if you wish, so you still have formatting options.

Personally, I have had excellent results with btrfs, and I like the improvements it brings. It’s worth learning about since it appears to be the next Linux staple along with the reliable ext3/ext4.

Here is a quick, nontechnical (2012) introduction to btrfs.

Installation Issues

What could possibly go wrong?

Not Detecting Solid State Drives

I tried installing Linux Mint 18 on systems with SSDs, but the LM18 installation refused to detect the SSDs even though they were visible in BIOS. The same happened with Xubuntu 16.04. Older distributions, such as Linux Mint 17.3 and Xubuntu 14.04.3 detected the SSDs fine. What’s the problem?

It turns out that in all systems with SSDs, BIOS was set to AHCI mode, which is usually what you want these days. However, to make Linux Mint 18 see the SSDs, I had to set the SATA mode to Legacy IDE (sometimes called Native IDE depending upon the motherboard). Linux Mint 18 does not seem to like AHCI with my hardware, and, thus, refuses to recognize the SSD drives during installation.

Setting the SATA mode to Legacy IDE fixed this problem. Linux Mint 18 as well as Xubuntu 16.04 detected the SSDs properly with Legacy IDE mode, and installation continued.

Installation and system usage are still fast with Legacy IDE, and I do not notice any performance degradation during everyday usage. It seems strange that a modern, 2016 Linux distribution requires Legacy IDE mode in order to install, but oh, well. I would prefer AHCI since that is the newer standard, but I am still happy.

Using a Local Repository

As far back as Ubuntu 10.10, any Ubuntu-based distribution could use the same local repository (created with debmirror) by pointing its sources.list (Ubuntu) file to the ftp server hosting the local repository. Any Ubuntu-based distribution would grab software updates from there instead of wasting duplicate Internet bandwidth.

It was a simple process up to Linux Mint 17.3, but Linux Mint 18 gave me problems. Despite following the same local repository setup procedure, Linux Mint 18 would not update from a local repository even though it would update fine from an Internet repository. All update packages were ignored, and Mint complained about a missing Packages file even though it existed. Xubuntu 16.04 also had the same issue.

This problem was a stumper. After lengthy trial and error, I finally noticed a hidden directory named .temp in the dists directory of the local repository. I deleted this .temp directory and updated the local repository again, and it worked! Updating the local repository by itself was not enough. .temp had to go. No idea why, but it seems .temp contained files that were interfering with the update process.

Local repository updates now work with Linux Mint 18 and Xubuntu 16.04. One issue may be due to the updated version of apt 1.2.12, which adds more security restrictions to system updates compared to the older apt program running on previous versions of Linux Mint and Xubuntu. Since updates worked after deleting .temp, I suspect that the local repository was at fault.


Assuming you already have a local repository, if you wish to set up Linux Mint 18 to use it, open /etc/apt/sources.list.d/official-package-repositories.list (for Linux Mint) in a text editor (use sudo) and comment out all Internet-based lines.
Local file repository access looks something like this:

deb [arch=amd64] file:///media/repos xenial main restricted universe multiverse
deb [arch=amd64] file:///media/repos xenial-security main restricted universe multiverse
deb [arch=amd64] file:///media/repos xenial-updates main restricted universe multiverse
deb [arch=amd64] file:///media/repos xenial-backports main restricted universe multiverse

FTP looks something like this:

deb [arch=amd64] xenial main restricted universe multiverse
deb [arch=amd64] xenial-security main restricted universe multiverse
deb [arch=amd64] xenial-updates main restricted universe multiverse
deb [arch=amd64] xenial-backports main restricted universe multiverse

These are for the four main xenial sources, but you can add other repositories as you need.

Notice the [arch=amd64]? This tells Mint to grab the 64-bit architecture files only. If you are running a 64-bit Linux system and have a 64-bit local repository, then apt-get will spew several i386 errors if it cannot find the 32-bit updates. Since I am using a 64-bit system, there is no need to have the 32-bit updates, so [arch=amd64] prevents the i386 errors from appearing.

R.A.T.7 and M.M.O.7 Mice

Linux Mint (as well as Xubuntu 16.04) still requires a custom xorg.conf file to prevent a nonresponsive mouse buttons if using the Mad Catz M.M.O.7 mouse or the Saitek R.A.T.7 mouse. This has been a recurring issue over the years with these mice, and it continues today. However, the solution is the same. Copy these lines into /etc/X11/xorg.conf

 Section "InputClass"
 Identifier "Mouse Remap"
 MatchProduct "Saitek Cyborg R.A.T.7 Mouse"
 MatchIsPointer "true"
 MatchDevicePath "/dev/input/event*"
 Option "Buttons" "17"
 Option "ButtonMapping" "1 2 3 4 5 0 0 8 9 7 6 12 0 0 0 0 0"
 Option "AutoReleaseButtons" "13 14 15"
 Option "ZAxisMapping" "4 5 6 7"

 Section "InputClass"
 Identifier "Mouse Remap"
 MatchProduct "Mad Catz Mad Catz M.M.O.7 Mouse|M.M.O.7"
 MatchIsPointer "true"
 MatchDevicePath "/dev/input/event*"
 Option "Buttons" "24"
 Option "ButtonMapping" "1 2 3 4 5 0 0 8 9 10 11 12 0 0 0 16 17 7 6 0 0 0 0 0"
 Option "AutoReleaseButtons" "20 21 22 23 24"
 Option "ZAxisMapping" "4 5 6 7"

If xorg.conf does not exist, create a new file. This prevents the nonresponsive mouse buttons effect and eliminates the need to log out and log back in to make the mouse function properly.


A superb mouse, but Linux still has problems with it after all these years.


And also the Cyborg R.A.T.7.

Link Aggregation

Still working on this one. While link aggregation works if configured manually from a terminal upon each system boot, the bond will not persist across reboots, and shutdown times can take up to five minutes. For now, a single network interface is used.

New Network Names

Linux Mint 18, like Xubuntu 16.04, uses Predictable Network Interface Names to name network interface devices. While this has been around for a while, the 16.04 series is the first time that I have seen this used by default on a Linux desktop distribution.

This means that your network devices are named something cryptic like enp1s0, ens1, and enp6s0 instead of something friendly like eth0, eth1, and eth2.

While the theory is sound for systems with many network interface devices, the implementation is confusing for my humble system and makes little sense, so I chose to turn it off and return to the traditional eth0 naming to avoid rewriting scripts.

While there are several techniques that reportedly disable the device names, the only one that worked for me in Linux Mint 18 and Xubuntu 16.04 was to set net.ifnames=0 on the kernel command line in grub.

Open /etc/default/grub in a text editor (as root), and change this line,


to this:


Run sudo update-grub so the changes will take effect. Reboot. Enter ifconfig in a terminal, and you should see the classic eth0, eth1, eth2, eth3 names as before.

Disable IPv6

Like Xubuntu 16.04, emphasis is placed on IPv6. IPv6 does not work for me (always times out, network not supported), so I must disable it and use IPv4. While editing sysctl.conf used to work in the past, Linux Mint 18 and Xubuntu 16.04 no longer acknowledge the changes across reboots.

The following traditional edits to /etc/sysctl.conf never worked for me with Linux Mint 18/Xubuntu 16.04 even though these lines correctly disabled IPv6 in LM17.3 and earlier:

 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1
 net.ipv6.conf.lo.disable_ipv6 = 1

To disable IPv6, open /etc/default/grub in a text editor (as root), and add ipv6.disable=1 to the boot command.

Change this line,


to this:


If also disabling the predictable device names, you can combine the two in one line:

GRUB_CMDLINE_LINUX="ipv6.disable=1 net.ifnames=0"

Run sudo update-grub to commit the changes. IPv6 should be disabled upon the next reboot. ifconfig will not show any IPv6 addresses if IPv6 is disabled. Only IPv4 appears.

VirtualBox 5.0

VirtualBox 5.0.24 refused to install due to a dependency error.


This error appears when trying to install VirtualBox 5.0.24 in Linux Mint 18 or Xubuntu 16.04. libvpx1 is required.

You need to manually install libvpx1, which is a VP8/VP9 codec.

Download libvpx1_1.3.0-3ubuntu1_amd64.deb (for 64-bit systems) and install it. (For 32-bit systems, use the i386 version.) Once done, VirtualBox will install.


After libvpx1 installed. VirtualBox 5.0.24 will now install.

Since my repository was not working at the time, I had to manually download and install this file in order to install VirtualBox. Some repositories have libvpx1, and a few do not — at least at the time of installation.


So far, Linux Mint 18, is stable and feature-packed to make it the best version yet. Aside from the issues mentioned above, everything else works, and I have encountered no problems. Install and go. From software to hardware compatibility, using this distribution has been a breeze these past few days, and it is hard to consider using anything else. I have been looking forward to Linux Mint 18 for quite a while now, and the finished product feels like the wait was worth it.

Overall, Linux Mint 18 feels more polished and refined to make it a better user experience than Linux Mint 17.3. It even works well as a guest OS in VirtualBox. I am discovering many positive things to say about Linux Mint 18, but that is for another time. Hopefully, these tips will help others who might be encountering similar installation issues.

Highly recommended.


Related: Linux Mint 18 System Settings


  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: