VirtualBox
Unter Linux hat VirtualBox den besten Ruf als kostenlose Out-of-the-box-Virtualisierungslösung für den Desktop, weil sich die in Deutschland entwickelte, später von Sun, dann von Oracle übernommene Software besonders einfach einrichten und adminstrieren lässt.
Die frühere Unterscheidung zwischen Open-Source-Edition und kommerzieller Version ist seit VirtualBox 4 entfallen. Das Programm ist wird seither frei und quelloffen verteilt.
Um USB-Unterstützung (ab Version 5 auch USB 3.0) zu aktivieren, muss bei Hersteller Oracle ein Extension Pack heruntergeladen und anschließend in der VirtualBox-GUI unter Datei->Globale Einstellungen->Zusatzpakete ausgewählt werden. Diese Erweiterung steht nach wie vor unter einer proprietären Lizenz, ist aber für Bildung und persönliche Nutzung kostenfrei.
Die VirtualBox Guest Additions sorgen für eine bessere Einbindung in das Hostsystem – u.a. bessere Grafik-Unterstützung sowie gemeinsame Zwischenablage. Sie sind in einer ISO-Datei enthalten, die man im Host einspielt und dann im Gast mounten kann. Wer das nicht auf der Kommandozeile erledigen will, nutzt die grafische VirtualBox-Anwendung, klickt dort auf „Geräte > Gasterweiterungen einlegen …“, um den Setup-Dialog zu starten.
Installation
sudo apt-get install virtualbox virtualbox-guest-additions-iso
Troubleshooting Kernel-Module und Secure Boot
VirtualBox benötigt drei Kernel-Module, die nicht Teil des Linux-Kernels sind und deshalb separat geladen werden müssen. Bei Kernel-Updates kümmert sich dkms darum, dass diese Module neu gebaut und geladen werden. Diesen Vorgang kann man bei Problemen auch selbst anstoßen:
sudo apt install --reinstall virtualbox-dkms
Dennoch kann es nach Upgrades von Ubuntu-Rechnern mit Secure Boot passieren, dass die Kernel-Module nicht geladen werden können. Der Systemd-Journal-Eintrag lautet:
modprobe vboxdrv failed. Please use ‚dmesg‘ to find out why
Findet man dann mit sudo dmesg | tail
im Nachrichten-Puffer des Kernels eine Fehlermeldung, die eine fehlende Signatur moniert, muss man (sofern Secure Boot nicht deaktiviert werden kann/soll) die Module manuell signieren.
Zunächst wählt man ein neues Passwort, dass später für den Schlüssel verwendet wird, und zwar so, dass es nicht in der .bash_history aufgezeichnet wird:
$ read -s SIGN_PIN
Jetzt das Passwort eintippen und mit Enter die Eingabe abschließen. Danach die folgenden Variablen setzen:
$ export SIGN_PIN
$ VERSION="$(uname -r)"
Als nächstes wird in das Verzeichnis gewechselt, in welchem dkms die Module erstellt hat, und per Schleife werden diese Module signiert:
$ cd /lib/modules/"$VERSION"/updates/dkms
$ for i in *.ko ; do sudo --preserve-env=SIGN_PIN /usr/src/"$VERSION"/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der "$i" ; done
Danach sollten sich die Module wieder laden lassen:
$ modprobe vboxdrv
$ modprobe vboxnetadp
$ modprobe vboxnetflt
… und VirtualBox funktioniert wieder!
Quellen: Bug ticket at VirtualBox, Debian wiki on SecureBoot
Alternativen
Auch die kommerzielle VMWare sowie die Open-Source-Lösungen Xen und KVM können CPU-Erweiterungen zur Virtualisierung nutzen.