VirtualBox on Linux Mint 21.1
VirtualBox enables a Linux user to host multiple guest operating systems as virtual machines. Useful for experimenting with different Linux distros and configurations!
In this HOWTO I install VirtualBox on a Linux Mint HOST and create a Linux Mint GUEST virtual machine.
Note: Another virtualization setup that I actually prefer is a combo of KVM + QEMU + libvirt. But sometimes developers offer pre-configured VirtualBox images of their projects, making use of VirtualBox a useful shortcut.
1. BIOS support
Confirm that virtualization support is enabled in your system BIOS. If so, the following commands will return some output:
- for an Intel processor ...
$ grep --color vmx /proc/cpuinfo
- for an AMD processor ...
$ grep --color svm /proc/cpuinfo
If there is no output, the processor might still be capable of virtualization, but the option is disabled. Check in the BIOS and enable it if available.
2. Install Virtualbox on HOST
Kernel modules for VirtualBox are built via Dynamic Kernel Module Support (DKMS). After installing VirtualBox below, the vbox
modules should be auto-built and -loaded.
Install dkms
and linux-headers
...
$ sudo apt update && sudo apt install dkms linux-headers-generic
Install VirtualBox ...
$ sudo apt install virtualbox virtualbox-qt virtualbox-guest-additions-iso virtualbox-dkms
Reload the current shell and confirm the new group has been added to the user's assigned groups ...
$ su - $USER
$ id
Or restart the machine.
3. Launch Virtualbox
Run ...
$ VirtualBox
Note: With the current release of VirtualBox, I immediately ran into the issue of it using a difficult-to-view colour scheme: light grey foreground text on a white background. Unlike other QT apps, VirtualBox is not respecting my system's GTK dark theme.
(Sort of) Fix: Start VirtualBox with a usable colour scheme (black text foreground/white background) ...
$ VirtualBox -style Fusion %U
4. Create GUEST
Default Machine Folder where Virtual Machine (VM) images are stored is ~/Virtualbox VMs
. This can be modified in File->Preferences->General
.
See the User Manual for creating a GUEST virtual machine. I download a Linux Mint install image ISO to create a new Mint GUEST.
5. Guest additions
Guest Additions is an ISO image file included in the VirtualBox package, and is installed inside the virtual machine GUEST after the operating system is installed. It enables extra features such as the ability to tweak display settings and add a shared folder between HOST and GUEST.
Launch the new Linux Mint GUEST.
Open a terminal on GUEST, refresh package listings, and install build packages ...
$ sudo apt update && sudo apt install dkms linux-headers-generic
In the Linux Mint GUEST window, load Devices->Insert Guest Additions CD Image ...
and click Run
.
Assign your USERNAME to the vboxsf
group ...
$ sudo adduser USERNAME vboxsf
Reboot GUEST.
6. Display
With the GUEST powered off, tweak display settings by going to Machine->Settings->Display
to add more video memory and enable 3D acceleration.
Display and resolution can be changed when running a graphical environment.
7. Shared folder
Create a shared folder on HOST. Make it accessible to GUEST virtual machines by going to Machine->Settings->Shared Folders
. Click on Adds new shared folder
, set the Folder Path
, and select Auto-Mount
.
8. SSH from HOST to GUEST
Host-only networking with Virtualbox was a big help getting this properly configured.
I want to SSH from my HOST to GUEST. Default configuration supplies GUEST with a NAT interface for internet access but no HOST<->GUEST connectivity.
A solution for local access is creating a host-only adapter.
8.1 On the HOST
In the Tools
sidebar, click the Menu icon and select Network
. Click Create
and a new host-only network card - vboxnet0
- is configured with default address 192.168.56.1
and DHCP Server
enabled.
8.2 On the GUEST
Select the GUEST virtual machine and in Machine->Settings->Network
click on Adapter 2
, click on Enable Network Adapter
and Attached to Host-only Adapter
, and select vboxnet0
.
Start the GUEST.
Install the SSH server ...
$ sudo apt install openssh-server
Confirm the new interface has been created ...
$ ip a
There should now be 2 ethernet interfaces: enp0s3 and enp0s8 (actual numbers may differ). Host-only adapter interface is assigned an address (example: 192.168.56.101
) and GUEST can now be accessed via SSH from the HOST.
» Next: Virtualization in Void Linux using KVM + QEMU + libvirt
« Previous: Re-install Linux Mint 21.1 to an existing LVM Logical Volume on LUKS