Last year in April I switched from Linux Mint via a short detour to Pop_OS to Manjaro Linux as my host OS. The reasons I chose Manjaro Linux were its up-to-date kernel and software and its well-rounded selection of software packages. However, the latest and greatest kernel and software can come at a price of being less stable. In this post I like to weigh in the pros and cons for Manjaro Linux and what you might want to consider before jumping on the wagon.
Manjaro Linux is based on Arch Linux, a highly configurable and tunable Linux distribution that has found many followers among advanced Linux enthusiasts. Arch Linux also has one of the best online documentations of any Linux distro (which is useful for Manjaro). But Arch Linux is cumbersome to setup and configure as everything needs to be explicitly specified.
Manjaro, on the other hand, comes with loads of preinstalled software packages and convenience features to deliver a ready-made desktop operating system. It still has plenty of options to tune and the software and kernel versions are mostly identical with Arch Linux. Beware that updates in the Arch Linux repository can take a short time to trickle down to Manjaro. All in all Manjaro Linux is like a fully pre-configured Arch Linux distro.
Both Manjaro Linux and Arch Linux are “rolling distros“. This means they are constantly updated to the latest versions. You never have to upgrade the distribution to a newer release. Compare that with the normal bunch of “release-based” Linux distributions like Ubuntu, Fedora, Centos, Linux Mint, etc. Some distributions make it relatively easy to upgrade (see Linux Mint or Fedora), but it can get quite challenging.
A rolling distro saves you the time and the worries associated with distribution upgrades. As long as you apply the regular updates, Manjaro will always be up-to-date. This sounds great, but it has its downsides:
- Updates to the latest kernels and software releases can suddenly break features or even render the system unstable / unbootable.
- Frequent, sometimes lengthy updates.
- About once a month there is a huge update (500MB-1GB).
- Disk space fills up with downloaded package files, requiring regular cleanups.
- Software updates can lead to changes in the way applications work, or changes in the GUI that you may not like.
When you run Manjaro Linux as a host for VFIO passthrough, you want to make sure that kernel or package updates don’t break your VM or impact its performance. That is not always easy. You can hold back packages for update, or even choose an older kernel.
Let’s face the truth: Linux servers always run release-based distributions, be it Redhat/Centos, Ubuntu/Debian, or Suse. The less software/kernel changes, the more stable the server. This is why servers usually only get security patches. Feature updates or upgrades are carefully planned and implemented after lengthy testing.
Manjaro Linux does offer a way to freeze the kernel to a specific release. It offers LTS or “Long Term Support” kernels alongside the latest kernel releases. You can install multiple kernels and select the kernel to boot with.
Most users will want to use an LTS kernel.
Pacman & Co.
Those of you coming from Ubuntu/Debian/Linux Mint or Redhat/Fedora/Centos are in for a surprise. Since Manjaro and Arch Linux are rolling distros, they use their own package manager.
But that’s not all. Manjaro / Arch Linux have a set of commands for creating / modifying grub files and initram files that are different from other distros. There are even some differences between Manjaro and Arch Linux – look at the mhwd command found in Manjaro Linux.
Aside from some syntax differences, there is little difference to other distributions. It’s still worth noting as instructions for creating a passthrough VM are different. You will also need to learn how to recover disk space by cleaning old package downloads.
Manjaro offers a whole range of desktop environments, more than I care to list here. Let’s put it this way: there are more options than I ever tried out. In addition, it offers Openbox, FluxBox, IceWM, Awesome and i3 as window managers. Enough to make your head spin.
Latest and Greatest
Choosing Manjaro Linux over most release-based distributions such as Ubuntu or Debian allows you to get the latest kernel and package releases. As of this writing, the latest stable Manjaro kernel is 5.12.9-1, the latest LTS kernel is 5.10.42-1.
The current Ubuntu LTS release 20.04 uses a 5.4 kernel, as does Linux Mint that is based on Ubuntu LTS. The latest Ubuntu 21.04 release, however, comes with a 5.11 kernel, but it doesn’t have the long term support. Fedora kernels are similarly up-to-date. For example, both Fedora 34 and 33 use a 5.12.11 kernel.
According to Distrowatch, most of the software packages under Manjaro are up-to-date. If you require recent versions of applications, Manjaro Linux is a good choice. Another option would be Fedora, which is sort of the testing ground for RHEL RedHat Enterprise Linux.
Why I Chose Manjaro
After building a new AMD Ryzen 3900X / X570 based system, I needed a more up-to-date kernel and QEMU version than what shipped with Linux Mint, my previous mainstay OS. I had tested Manjaro for about a half a year as a Linux gaming VM which worked fine.
Manjaro offers much the same software repertoire as Ubuntu and Linux Mint (or perhaps Fedora, for that matter). And it basically works out of the box.
Particularly helpful was that Manjaro provides a current version of libvirt and virt-manager, which makes configuring a VM easier.
My User Experience
After more than one year using Manjaro Linux as host OS, I’m positively surprised at it’s stability. I have expected more hiccups or crashes or “VM not loading” instances.
That is not to say there weren’t such occasions. The upgrade from QEMU 4.2 to QEMU 5.0 last April was a nightmare. New features like io_uring caused havoc. It took weeks until that was fixed. Of course, downgrading the software would remedy the problem, but you have to know the culprit (kernel, QEMU, virt-manager, libvirt, ?).
There were some other issues, one related to a kernel update. That is why until today I run a 5.4 LTS kernel. Though I do plan to upgrade to the latest LTS kernel soon.
There may have been one or two more instances where my manual intervention was necessary to fix things, but it was nothing that I couldn’t figure out.
I actually intended to use Manjaro as a stopgap until Linux Mint 20 was out. But the system has been running stable since at least June or July last year (about a year) and I didn’t feel an urgent need to change.
Manjaro Linux provides up-to-date kernels and software packages without the need to ever upgrade the system. On the downside, software updates can and will break things, it’s just a question of when or how often.
If you want to use Manjaro Linux as your host operating system, you should be familiar with Linux and the command line. That will help you fix issues when needed. This goes especially for running virtual machines with GPU passthrough (VFIO). Changes in QEMU, libvirt or the kernel can easily impact VM performance or prevent it from booting.
If you are confident in your Linux skills and want or need the latest kernel and packages, then Manjaro Linux is a good option.
If you rather prefer stability and peace of mind, or if you are new to Linux, you may be more comfortable with a release-based distribution such as Linux Mint, Ubuntu, Fedora etc.
Bear in mind that new virtualization features and improvements in the kernel or software have often very little impact on real-life VM performance. For me, making the right hardware choices as well as proper configuration make much more of a difference. As always, YMMV.
See also my post on installing Manjaro Linux Kernel 5.10 and how I solved some LVM issues.