Last Updated on April 19, 2021
This is a weekly blog looking at the Lenovo M93 Ultra Small Desktop PC running Linux.
In this week’s blog, we look at some of the ways you can run programs from different operating systems on the Lenovo M93. We examine hardware virtualization, dual booting, as well as using a compatibility layer.
To recap, our Lenovo M93 has an Intel i5-4590T processor with 4 cores. It uses the Intel Haswell chipset, comes with 16GB of DDR4 RAM, and a 240GB SSD.
Virtualization with VirtualBox
In computing, virtualization refers to the act of creating a virtual version of something, including virtual computer hardware platforms, storage devices, and computer network resources. The host machine is the Lenovo M93 running the Manjaro distribution. The guest machine is the virtual machine. The words host and guest distinguish the software running on the M93 from the software that runs on the virtual machine.
With the Lenovo M93 we received a Windows 10 Professional license. But Microsoft’s licensing arrangements don’t permit you to install it to a virtual machine even if (like us) you’ve wiped Windows 10 from the machine. But if you’ve decided to retain Windows as your host operating system, VirtualBox will let you easily experiment with a variety of Linux distributions. You can simultaneously run software written for one operating system on another. The software takes care of allocating parts of the CPU, RAM, storage disk, and other components so that a virtual machine can use them to run properly. The virtual OS thinks that it’s running on a real system, but it runs just like any other program on your computer.
Or if, like us, you’re running Linux as the host operating system, virtualization lets us experiment with other Linux distributions, and other operating systems like FreeBSD and Solaris. If you’ve got a spare Windows license, you can use that as the guest operating system.
Many Mini PCs ship with 4GB or 8GB of RAM. That amount of RAM isn’t sufficient to run VirtualBox for our needs. Remember the system RAM is shared between the host and guest operating systems. Allocating 2-4GB of RAM to each just isn’t enough for many activities. Fortunately, our Lenovo M93 has 16GB of RAM. That’s sufficient RAM to run 1-2 virtual machines comfortably (more if the guest operating system is not going to use X or Wayland).
We also recommend adding swap to your system, preferably via a file rather than a dedicated swap file. While the Lenovo has 16GB of RAM, we still recommend creating an 8GB swapfile with the following commands:
$ sudo fallocate -l 8G /swapfile
$ sudo mkswap /swapfile
$ sudo chmod u=rw,go= /swapfile
$ sudo swapon /swapfile
$ sudo bash -c "echo /swapfile none swap defaults 0 0 >> /etc/fstab"
With the Lenovo’s 16GB RAM (and taking into account some of that RAM is shared with the graphics), we recommend allocating 4GB of RAM to the guest operating system as we plan on running 2 guests concurrently, retaining the rest of the available RAM for the host operating system.
Before using virtualization, we need to access the Lenovo’s BIOS and enable virtualization. The steps are simple:
- Press F1 at bootup to access the PC BIOS;
- Navigate to ‘Advanced’ menu;
- Select ‘CPU setup’;
- Enable Intel Virtualization Technology;
- Enable VT-d;
- Press F10 to save the changes.
This procedure isn’t necessary if you have updated the BIOS to the latest version (as virtualization is already enabled). As supplied, the machine has a Windows utility to upgrade the BIOS to the latest version.
We installed 4 guest operating systems. Specifically, Ubuntu, Fedora, openSUSE and MXLinux. These are some of the best known Linux distributions.
After installing a guest operating system, we add VirtualBox Guest Additions where it isn’t already installed with the latest version. VirtualBox Guest Additions is a collection of device drivers and system applications designed to achieve closer integration between the host and guest operating systems.
For example, on the Ubuntu guest, we need to install some packages before we can run the installation routine for the Guest Additions. Specifically, that’s gcc, make and perl. Install them with the command:
$ sudo apt install gcc make perl
We can then install the Guest Additions. We always recommend installing Guest Additions, as it improves performance, especially graphics, and a lot more besides.
You have to be realistic about what you can do with the guest operating system. The Lenovo M93 is low power but it’s still more than capable of running multiple guest operating systems with good performance providing you have more than 8GB of RAM. Just don’t try things like video editing on the guest operating system. And we limit ourselves to 2 guest operating systems at a time. It’s a great way of experimenting with different operating systems without needing to mess around with partitions or opening up the machine.
There’s alternatives to VirtualBox. There’s VMWare Workstation, VMWare Workstation Player, QEMU, KVM and others. For our purposes, we usually focus on VirtualBox.
Complete list of articles in this series:
|Lenovo M93 Ultra Small Desktop PC|
|Week 6||Recording video using OBS Studio|
|Week 5||We put the M93 through some light gaming|
|Week 4||Multiple operating systems running on the Lenovo M93|
|Week 3||Video and audio are tested on the Lenovo machine|
|Week 2||Benchmarking the Lenovo M93 Ultra Small PC with other low power machines|
|Week 1||Introduction to the series including wiping Windows and installing Manjaro|
This blog is written on the Lenovo M93 Ultra Small Desktop PC.