Ubuntu Server herunterladen

Als erstes benötigt man eine aktuelles ISO-Image von Ubuntu, welches man von der Ubuntu-Homepage herunterladen kann.

Virtuelle Maschine erstellen

Nun muss die Hyper-V-Maschine erstellt werden. Die gezeigten Schritte gelten aber auch für ältere Versionen von Windows Server bzw. Windows 10. Ich verwende hier einen 2016er-Server.

Virtuelle Festplatte erzeugen

Bevor die VM im Hyper-V-Manager angelegt wird, sollte die virtuelle Festplatte (vhdx) manuell mittels PowerShell erzeugt werden. Dieser Microsoft-Artikel erklärt dabei die Hintergründe: Für Linux-VMs sollte eine Block Size von 1 MB verwendet werden, da ansonsten mehr Speicherplatz auf dem Host-Betriebssystem belegt wird. Da beim Hyper-V-Manager keine benutzerdefinierte Block Size bei der Erstellung von virtuellen Festplatten angegeben werden kann, ist hier der kleine Umweg über die PowerShell notwendig.

Dazu die PowerShell mit Admin-Rechten starten. Folgender Befehl legt dann die virtuelle Festplatte mit einer Größe von 20 GB (oder größer) an:

New-VHD -Path "D:\Hyper-V\Virtual Hard Disks\Ubuntu1804.vhdx" -SizeBytes 20GB -Dynamic -BlockSizeBytes 1MB
Eine virtuelle VHDX mit Hilfe von PowerSehll erzeugen
Eine virtuelle VHDX mit Hilfe von PowerSehll erzeugen

Anlegen der virtuellen Maschine

Nachdem wir die virtuelle Festplatte erstellt haben, könne wir jetzt mit der Erstellung der eigentlicher virtuellen Maschine beginnen. Dazu einfach den Assistetnt unter Aktion > Neu > Virtueller Computer… aufrufen.

Assistent zur Erstellung einer VM starten

 Als erstes müssen wir uns für einen Namen entscheiden:

Name VM

Nun müssen wir uns für eine Generation entscheiden:

Generation der VM festlegen

Bei der 1. Generation wird eine „legacy“-Hardware verwendet. D.h.: es können 64-Bit, sowohl auch 32-Bit-Systeme installiert werden. 

Bei der 2. Generation wir eine „UEFI“-Hardware verwenden. Es wird dringend empfohlen nur 64-Bit Systeme zu installieren. 

Da Ubuntu ab Version 14.04 Generation 2 kompatibel ist, wählen wir hier die entsprechende Option.

Als nächstes wird festgelegt, wie viel Speicher der virtuellen Maschine zur Verfügung stehen soll. 2048 MB (= 2 GB) sollte für den Anfang vollkommen ausreichen. Sollte der Ubuntu-Server z.B.: als LAMP-Server verwendet werden, dann sollte man entsprechen mehr RAM zur Verfügung stellen.

Zuweisen von Arbeitsspeicher

Da die VM nachher auch Netzwerkzugang benötigt, wird hier ein Netzwerkadapter angegeben. Dabei handelt es sich um einen sog. virtuellen Switch.

Zuweisung Netzwerkkarte

Jetzt müssen wir unsere erstellte VHDX mithilfe von PowerShell angegeben werden. Also entscheiden wir uns für die Option Vorhandene virtuelle Festplatte verwenden und geben die entsprechende vhdx-Datei an.

Vorhandene VHDX angeben

Der letzte Schritt des Assistenten fasst nochmals alle gewählten Optionen zusammen. Passt alles, wird mit einem Klick auf Fertig stellen der Assistent abgeschlossen.

Einstellungen der virtuellen Maschine anpassen

Direkt nach der Erzeugung und vor dem ersten Start der virtuellen Maschine werden direkt noch einige Einstellungen vorgenommen/optimiert (Rechtsklick auf VM > Einstellungen…)

Als erstes wird die Option Sicheren Start aktivieren eingeschaltet. Als Vorlage muss hier Microsoft UEFI-Zertifizierungsstelle gewählt werden, da Ubuntu später sonst nicht gestartet werden kann.

VM-Einstellungen: Sicherheit

Da die erzeugte virtuelle Maschine standardmäßig kein DVD-Laufwerk besitzt, wird hier ein solches hinzugefügt. Dazu einfach den Eintrag DVD-Laufwerk markieren und auf Hinzufügen klicken. Daraufhin kann gleich die zuvor heruntergeladene ISO-Datei angegeben werden, so dass sich diese beim ersten Start der VM „im Laufwerk befindet“.

VM-Einstellungen: DVD-Laufwerk

Nachdem wir die Startreihenfolge geändert haben (DVD-Laufwerk auf Pos.1) können wir die virtuelle Maschine starten und mit der Installation beginnen.

Ubuntu 18.04 konfigurieren

Systemupdates

Als erstes bringen wir das System auf den neusten Stand. Dazu werden erst einmal die Paketquellen aktualisiert:

apt-get update

Anschließend werden evtl. vorhandene Updates abgerufen:

apt-get upgrade

Um auch evtl. vorhandene System-Upgrades zu erhalten, wird noch folgender Befehl ausgeführt:

apt-get dist-upgrade

Falls hier Upgrades gefunden und installiert werden, können nicht mehr benötigte Pakete automatisch entfernt werden:

apt-get autoremove

Nach den Updates sollte die virtuelle Maschine neu gestartet werden:

reboot now

Optimierung für virtuelle Umgebung

Um das System noch bessern an die virtualisierte Umgebung anzupassen, werden nun noch die dafür vorgesehenen Kernel-Module installiert:

apt-get update
apt-get install --install-recommends linux-virtual
apt-get install linux-tools-virtual linux-cloud-tools-virtual
reboot now

Optimierung des I/O-Schedulers

Ein modernes Betriebssystem ist darauf ausgelegt, möglichst viele I/O-Operationen parallel auszuführen. Der Linux-Kernel kennt dazu verschiedene Scheduling-Modi. Hier soll nicht weiter auf die Details eingegangen werden, allerdings sollte der zu Grunde liegende Hypervisor diese I/O-Operationen optimieren und nicht das Gast-Betriebssystem selbst.

Um diese Einstellung einzurichten, muss der Bootloader optimiert werden. nano ist in diesem Fall ein einfacher Text-Editor unter Linux:

nano /etc/default/grub

Hier suchen wir nun nach der folgenden Zeile:

GRUB_CMDLINE_LINUX_DEFAULT=""

und ändern diese zu:

GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop"

Mit dieser Einstellung weisen wir die virtuelle Maschine an, sämtliche I/O-Operationen an den darunter liegenden Hyper-V-Hypervisor zu übergeben, der dann für einen optimierten Ablauf sorgt. Dadurch sollte sich die Performance der virtuellen Maschine geringfügig verbessern.

Die Datei wird in nano durch die Tastenkombination STRG+O gespeichert. Anschließend kann der Texteditor durch STRG+X verlassen werden.

Damit die Änderungen wirken, muss der Bootloader neu geladen und das System neu gestartet werden:

update-grub
reboot now

Fragen? Wünsche? Anregungen?