This is a weekly blog looking at the HP EliteDesk 800 G2 Mini Desktop PC running Linux.
This week’s blog looks at some of the ways you can run programs from different operating systems on the HP EliteDesk 800 G2 Mini Desktop PC. We examine hardware virtualization, dual booting, as well as using a compatibility layer.
This machine was made available by Bargain Hardware. Bargain Hardware retails refurbished servers, workstations, PCs, and laptops to consumers and businesses worldwide. All systems are completely customisable on their website along with a vast offering of clean-pulled, tested components and enterprise replacement parts. They supply machines with a choice of Linux distros: Ubuntu, Debian, and Fedora.
Our HP EliteDesk has an Intel i5-6500T processor with 4 cores. It uses the Intel Skylake chipset, comes with 16GB of DDR4 RAM and a 256GB Samsung M.2 PCIe NVMe 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. For the purpose of this article, the host machine is the HP EliteDesk 800 G2 running the Manjaro distribution. The guest machine is the virtual machine. The words host and guest distinguish the software running on the HP EliteDesk from the software that runs on the virtual machine.
Our HP EliteDesk came supplied with a Windows 10 Professional license. We’re not allowed to use that license to install Windows to a virtual machine even though we wiped Windows 10 from the machine. That’s Microsoft licensing for you. But if you decide to keep Windows on the machine, you can try Linux distros using virtualization software such as VirtualBox. If you’re taking your first steps with Linux, this is a good route. You can experiment with lots of distros to find one that suits you best without running into unforeseen issues.
Software like VirtualBox allocates 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.
We use VirtualBox to test software on a variety of different distributions. Many have different package managers, focus on different desktop environments, and use different libraries. The sheer number of distros makes it extremely difficult (read impossible) for developers to offer distro specific packages for even the most popular ones.
With virtualization, you want as much RAM as possible, as you need RAM for the host operating system and the guest(s) operating systems. We see so many mini PC ships with 8GB of RAM (or less). But while 8GB is sufficient for many desktop uses, it’s frankly insufficient for virtualization.
Our HP EliteDesk came supplied with 16GB of RAM. That’s a sensible amount of RAM as there’s sufficient memory to run 1 or 2 guest operating systems. The EliteDesk can take a maximum of 32GB of RAM and that extra RAM does offer more possibilities. Ideally, we’d prefer keeping 16GB of RAM for the host, and 16GB of RAM for the virtual machine(s). Your requirements may differ of course.
We always recommend adding swap to your system, preferably via a file rather than a dedicated swap file. While our HP EliteDesk has 16GB of RAM, we still recommend creating an 8GB swapfile. This can be created from a shell 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 our HP’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 HP’s BIOS and enable virtualization. The steps are simple:
- Press F10 at boot up to access the PC BIOS;
- Navigate to ‘Advanced’ menu;
- Select ‘System Options’;
- Enable Intel Virtualization Technology (VTx);
- Enable Virtualization Technology for Directed I/O (VT-d);
- Press the Save button.
We installed 4 guest operating systems for testing purposes. Specifically, Ubuntu 20.10, Ubuntu 21.04, Linux Mint and elementary OS. Linux Mint and elementary OS are both Ubuntu-based distros. And Ubuntu 21.04 was released last month. Not a diverse bunch of distros we agree, but we seem to spend most of our time using Ubuntu.
After installing a guest operating system, we add VirtualBox Guest Additions where it isn’t already installed with its 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.
On the Ubuntu guests, 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 in many areas and offers additional functionality. Besides a big improvement in graphics capability, it adds shared clipboard/drag and drop functionality, shared folders, seamless app windows, seamless mouse integration, and more.
Here’s an image of Ubuntu 21.04 with Guest Additions installed.
We are impressed with the performance of the guest operating systems with the HP EliteDesk. Ideally, we prefer a machine with more than 4 cores, but as long as we’re sensible with the guest environments, performance is good. It offers an easy way to experiment with different operating systems without needing to delve around with partitions or open up the machine. The HP EliteDesk is well designed and easy to open and reconfigure though.
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:
|HP EliteDesk 800 G2 Mini Desktop PC|
|Week 6||Lightweight gaming on the HP EliteDesk|
|Week 5||Multiple operating systems running on the HP EliteDesk|
|Week 4||Hardware graphics acceleration when watching videos in Firefox|
|Week 3||Multimedia on the HP EliteDesk 800 G2 USFF PC|
|Week 2||Benchmarking the HP EliteDesk 800 G2 USFF PC with other machines|
|Week 1||Introduction to the series including wiping Windows and installing Manjaro|
This blog is written on the HP EliteDesk 800 G2 Mini Desktop PC.
|Read our complete collection of recommended free and open source software. Our curated compilation covers all categories of software.
The software collection forms part of our series of informative articles for Linux enthusiasts. There are hundreds of in-depth reviews, open source alternatives to proprietary software from large corporations like Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.
There are also fun things to try, hardware, free programming books and tutorials, and much more.