DecaTec

Programmieren, Fotografie, Home-Server und einiges mehr

Ubuntu Server als Hyper-V Gastsystem installieren und optimal einrichten

Der folgende Artikel beschreibt die Installation und optimale Einrichtung eines Ubuntu Servers als Gastsystem in einer Hyper-V Umgebung unter Windows.
Die Motivation dazu entspringt der Tatsache, dass ownCloud ab Version 8.1 Windows als Hosting-Plattform nicht mehr unterstützt. Über die Beweggründe dieser Entscheidung lässt sich streiten, sicher ist jedoch, dass man sich nun nach Alternativen umsehen muss, wenn man ownCloud zuvor auf einem Windows-Server gehostet hat.
Eine Möglichkeit besteht darin, einen Linux-Server unter Windows mittels Hyper-V zu virtualisieren. Neben der Einrichtung einer virtuellen Maschine (VM) und der Installation von Ubuntu sind allerdings einige weitere Schritte notwendig, um den optimalen Betrieb des Linux-Servers zu gewährleisten.

Der Artikel beschreibt daher detailliert die Installation und Einrichtung eines Ubuntu Servers als Hyper-V Gastsystem. Vorkenntnisse mit Linux sind sicherlich von Vorteil, aber nicht notwendig. Die Anleitung richtet sich explizit an Linux-Anfänger, daher werden alle Schritte/Entscheidungen ausreichend erklärt.
Nutzt bei Fragen oder Unklarheiten bitte die Kommentar-Funktion, damit ich euch hier weiterhelfen kann.

Update (22.04.2016): Der Artikel wurde grundlegend überarbeitet und zeigt nun die Einrichtung und Erst-Konfiguration von Ubuntu Server 16.04 (LTS) („Xenial Xerus“).

Update (27.07.2016): Befehle zur Optimieren der virtuellen Umgebung speziell an Ubuntu 16.04 angepasst.

Update (31.01.2016): Informationen zum „Sicheren Start“ unter Windows 10/Windows Server 2016 aktualisiert.

Warum Ubuntu Server auf Hyper-V?

Aus folgenden Gründen fiel hier die Entscheidung bewusst auf die Kombination von Hyper-V-Virtualisierung und Ubuntu Server als Gastsystem:

Hyper-V

Bei Hyper-V handelt es sich um einen Typ-1 Hypervisor, d.h. das Gastsystem läuft direkt auf der Hardware des Host-Systems. Andere Virtualisierungssoftware, wie z.B. das populäre VirtualBox, setzten als Typ-2 Hypervisor auf dem Host-Betriebssystem auf. Mit Hyper-V fällt damit diese Zwischenschicht weg. Daher sollte ein virtuelles System schneller und weniger fehleranfällig laufen.
Darüber hinaus kann eine virtuelle Maschine unter Hyper-V sehr einfach mit Windows-Bordmitteln gesichert und wieder hergestellt werden.

Die einzige Einschränkung von Hyper-V stellt die nicht vorhandene Fähigkeit dar, USB-Geräte des Host-Systems direkt an die virtuellen Maschinen weiter zu reichen (USB Passthrough).

Die Konfiguration/Einrichtung der Linux-VM ist allerdings unabhängig von der verwendeten Virtualisierungssoftware. Daher lässt sich diese Anleitung zum größten Teil auch bei der Verwendung anderer Programme wie VirtualBox oder VMWare anwenden. Bei Schritten, die nur unter Hyper-V durchzuführen sind, wird im Artikel darauf hingewiesen.

Ein nicht zu unterschätzender Vorteil bei der Arbeit mit virtuellen Maschinen ist zudem, dass eigentlich alle Virtualisierungslösungen das Konzept der Prüf- bzw. Speicher-Punkte nutzen. Dadurch kann man zu einem beliebigen Zeitpunkt einen Snapshot der VM erstellen. Falls dann im weiteren Verlauf der Installation/Konfiguration etwas schief läuft, kann man ganz einfach zu einem vorherigen Snapshot zurückkehren. Dies ist in den meisten Fällen schneller und einfacher, als das System wieder „gerade zu biegen“. Daher empfehle ich regelmäßig Prüfpunkte zu speichern (z.B. immer wenn ein wichtiger Teil der Konfiguration abgeschlossen wurde). Alle überflüssigen Snapshots können am Ende der Einrichtung der Linux-VM wieder gelöscht werden.

Ubuntu Server

Als Gastsystem kommt Ubuntu Server zu Einsatz. Man könnte auch andere Linux-Distributionen (wie z.B. Debian) verwenden, allerdings bietet Hyper-V die beste Unterstützung für Ubuntu (siehe TechNet-Artikel). Da keine Desktop-Oberfläche benötigt wird, fällt die Wahl auf die Server-Version von Ubuntu.

Download Ubuntu Server

Für die Installation benötigt man ein ISO-Image des Betriebssystems, welches man von der Ubuntu-Homepage herunterladen kann. Ich habe mich hier für die momentan aktuellste Version 16.04 LTS  („Xenial Xerus“) (64 Bit) entschieden. Dies ist eine LTS-Version (Long Term Support), d.h. diese Version wird ab Release vier Jahre lang unterstützt. Gerade bei der Einrichtung eines Linux-Servers, der später beispielsweise dazu dient, eine ownCloud zu hosten, empfiehlt sich besonders der Einsatz einer LTS-Version.

Hyper-V Maschine erstellen

Wir beginnen mit dem Anlegen der virtuellen Maschine.

Als Hyper-V-Host kommt Windows 10 (64 Bit) zum Einsatz. Alle Punkte sind jedoch auch mit Windows 8/8.1 oder Windows Server 2012 (R2) realisierbar.

Virtuelle Festplatte erzeugen

Zunächst sollte eine neue virtuelle Festplatte mit Hilfe der PowerShell erzeugt werden. Die Begründung liefert Microsoft in diesem TechNet-Artikel: Für Linux-VMs sollten die virtuellen Festplatten eine BlockSize von 1 MB verwenden, da diese ansonsten mehr Speicherplatz auf dem Host-System benötigen. Der Hyper-V-Manager unterstützt beim Anlegen von virtuellen Festplatten keine Angabe einer benutzerdefinierten BlockSize. Daher wird die Festplatte mit folgendem Befehl über die PowerShell erzeugt:

Virtuelle Festplatte über PowerShell anlegen

Virtuelle Festplatte über PowerShell anlegen

Damit wird eine dynamisch erweiterbare Festplatte mit der Größe von 30 GB und einer BlockSize von 1 MB erzeugt. Dynamisch erweiterbar heißt in diesem Fall, dass die HDD nicht von Anfang an 30 GB Speicherplatz auf dem Host-System belegt, sondern nur so viel Platz benötigt wie die auf der HDD gespeicherten Daten.

Erzeugen der virtuellen Maschine

Nun kann die virtuelle Maschine im Hyper-V-Manager erzeugt werden. Dazu wählt man Aktion > Neu > Virtueller Computer... Ein Assistent führt durch die Erstellung der VM:

Namen und Pfad angeben: Hier wird der Name der VM festgelegt (in diesem Fall UbuntuServerTest – ich gebe dem virtuellen Computer immer den gleichen Namen wie der virtuellen Festplatte um Verwechselungen auszuschließen). Ebenfalls kann der Pfad angegeben werden, an dem die virtuelle Maschine gespeichert werden soll. Alle meine VMs werden unter D:\VMs gespeichert, daher belasse ich den Standard-Pfad.

Name und Pfad der VM

Generation angeben: In diesem Schritt wird die Generation der VM festgelegt. Generell ist es hier egal, welche Generation man wählt, dennoch bieten VMs der Generation 2 mehr Virtualisierungsfeatures. Daher empfehle ich hier die Option Generation 2.
Wichtig: Nachdem die virtuelle Maschine erstellt wurde, kann diese Option nicht mehr verändert werden. Eine Generation 1 VM kann nicht in eine Generation 2 VM überführt werden und anders herum.

Generation der VM festlegen

Speicher zuweisen: Hier wird dem virtuellen System Arbeitsspeicher zugewiesen. Die Option Dynamischen Arbeitsspeicher für diesen virtuellen Computer verwenden kann aktiviert bleiben, dann wird der VM je nach Bedarf mehr oder weniger Speicher zugeteilt. Unter Arbeitsspeicher beim Start trägt man am besten 1024 MB ein, dies sollte in jedem Fall ausreichend sein.

Zuweisen von Arbeitsspeicher

Netzwerk konfigurieren: Wenn die VM Internet-Zugriff haben soll, ist hier ein virtueller Switch anzugeben. Falls noch kein virtueller Switch vorhanden ist, muss dieser noch angelegt und konfiguriert werden. Zu diesem Thema kann ich folgenden Artiel empfehlen: Virtual Switch: Netzwerke in Hyper-V konfigurieren

Netzwerkkonfiguration

Virtuelle Festplatte verbinden: Hier gibt man die zuvor mit PowerShell erzeugte virtuelle Festplatte an (hier D:\VMs\Virtual Hard Disks\UbuntuServerTest.vhdx).

Virtuelle Festplatte angeben

Der letzte Schritt zeigt noch einmal eine Zusammenfassung an, bevor mit Fertig stellen der virtuelle Computer erzeugt wird.

Zusammenfassung des Assistenten

Anpassungen der Einstellungen der VM

Vor dem Starten der VM müssen noch einige Einstellungen angepasst werden (Rechtsklick auf virtuellen PC > Anpassen…):

Arbeitsspeicher: Hier lassen sich nun weitere Optionen zum dynamischen Arbeitsspeicher angeben. Hier empfehle ich die Einstellungen Minimaler RAM: 512 MB (die Hälfte des Arbeitsspeichers beim Start) und Maximaler RAM: 2048 MB (das Doppelte des Arbeitsspeichers beim Start).
Die restlichen Optionen können auf den Standard-Werten bleiben.

Einstellungen - Arbeitsspeicher

Prozessor: Hier lässt sich die Anzahl der virtuellen Prozessoren angeben. Hier sollte man mindestens 2 wählen. Ich nehme hier meist die Hälfte des maximalen Wertes (bei einer Quad-Core CPU mit Hyperthreading ist der maximale Wert 8, also wähle ich hier 4).

Einstellungen - Prozessor

SCSI-Controller: Hier muss noch ein virtuelles DVD-Laufwerk hinzugefügt werden, vom dem das Betriebssystem installiert werden kann. Dazu einfach DVD-Laufwerk aus der Liste wählen und auf Hinzufügen klicken.

Einstellungen - DVD-Laufwerk hinzufügen

Anschließend kann man die zuvor herunter geladene Image-Datei wählen (in diesem Fall ubuntu-16.04-server-amd64.iso). Danach sollte man die Änderungen zunächst mit der Schaltfläche Anwenden speichern.

Einstellungen - Image-Datei für die Installation angeben

Firmware: Hier muss das soeben angelegte DVD-Laufwerk unter Startreihenfolge an den ersten Platz in der Liste verschoben werden. Somit wird sicher gestellt, dass der virtuelle PC von diesem Medium gestartet wird.

Einstellungen - Firmware

Sicherheit: Die Option Sicheren Start aktivieren muss hier ausgeschaltet werden, da ansonsten die virtuelle Maschine unter Linux nicht ordnungsgemäß funktioniert – z.B. konnte ich die Erfahrung machen, dass dann keine Eingaben per Tastatur/Maus in der VM möglich sind.
Wenn als Hyper-V-Host Windows 10 oder Windows Server 2016 zum Einsatz kommt, kann diese Option aktiviert bleiben. Allerdings muss man dann unter Vorlage den Eintrag Microsoft UEFI Certificate Authority wählen.

Wenn es keine Optionen-Gruppe Sicherheit gibt (z.B. unter Windows Server 2012 R2), dann findet man die Einstellungen zum sicheren Start unter Firmware (allerdings ohne weitere Einstellmöglichkeiten).

Einstellungen - Sicherheit

Alle anderen Einstellungen können zunächst einmal auf den Standardwerten belassen werden. Meist zeigt sich erst beim Arbeiten mit der VM, welche Änderungen hier noch notwendig sind (z.B. Anpassungen der Arbeitsspeicher-Einstellungen, falls man besonders RAM-lastige Anwendungen laufen lassen will). Diese Änderungen können aber jederzeit zum einem späteren Zeitpunkt vorgenommen werden.

Installation des Gast-Betriebssystems

Damit ist die Erstellung des virtuellen PCs abgeschlossen und es folgt die Installation von Ubuntu Server. Vorher ist es allerdings empfehlenswert, einen Prüfpunkt (Snapshot) des virtuellen Systems anzulegen (Rechtsklick auf VM > Prüfpunkt). Falls bei der Installation des Gast-OS etwas schief gehen sollte, kann man einfach wieder den Anfangszustand wiederherstellen (Rechtsklick auf den Prüfpunkt > Anwenden).

Nun verbindet man sich mit der VM (Rechtsklick > Verbinden…). Hier öffnet sich zunächst ein Fenster mit der Information, dass der virtuelle PC ausgeschaltet ist. Daher wählt man Aktion > Starten um mit der Installation von Ubuntu zu beginnen:

Zunächst wählt man Install Ubuntu Server.

Install Ubuntu Server

Im nächsten Schritt wählt man die Sprache: German – Deutsch.

Ubuntu Setup - Sprache

Die darauf folgende Warnung, dass die Übersetzung des Installers noch nicht vollständig lokalisiert wurde, kann man mit Ja bestätigen.

Ubuntu Setup - Warnung nach Sprachwahl

Es folgt die Gebiets-Auswahl (Deutschland).

Ubuntu Setup - Wahl des Standortes

Der Installer kann probieren, das Tastaturmodell anhand von Tastatureingaben automatisch zu erkennen. Hier sollte man Nein wählen, wenn man sich nicht durch viele Dialoge wühlen will, die zu bestimmten Tastatureingaben auffordern.

Ubuntu Setup - Automatische Erkennung des Tastaturmodells

Dadurch muss man das Tastaturmodell manuell wählen. Zunächst gibt man das Herkunftsland der Tastatur an (German).

Ubuntu Setup - Herkunft der Tastatur

Danach folgt die Angabe der Tastaturbelegung (German)

Ubuntu Setup - Tastaturbelegung

Nach einer kurzen Wartezeit folgt die Eingabe des Rechner-Names. Dies ist der Name des Rechners im Netzwerk. Hier empfiehlt es sich, den gleichen Namen wie beim Anlegen der VM anzugeben – nur ohne evtl. vorhandene Leerzeichen (in diesem Fall also UbuntuServerTest).

Ubuntu Setup - Name des Rechners

Anschließend folgt das Anlegen des ersten Benutzers. Der installer fragt hier zunächst nach dem vollständigen Namen des Users:

Ubuntu Setup - Name des Benutzers

Im nächsten Schritt wird ein Benutzernamen des Kontos zu vorgeschlagen. Diesen Vorschlag muss man allerdings nicht annehmen, sondern kann einen ganz anderen Benutzernamen angeben. In diesem Fall nenne ich den Benutzer einfach testuser.

Ubuntu Setup - Benutzername

Im nächsten Schritt folgt das Vergeben eines Passworts für den soeben angelegten Benutzer. Aus Gründen der Sicherheit sollte man hier auf jeden Fall ein (sicheres) Passwort vergeben. Dieses Passwort muss darauf hin erneut eingegeben werden, um einen Tippfehler auszuschließen.

Ubuntu Setup - Passwort

Der Installer fragt daraufhin, ob der persönliche Ordner des Benutzers verschlüsselt werden soll. Wenn keine besonderen Sicherheits-Anforderungen bestehen, kann man hier Nein wählen.

Ubuntu Setup - Verschlüsselung des persönlichen Ordners

Es folgt die Abfrage der zu verwendenden Zeitzone. Diese Angabe ist meist korrekt und kann mit Ja bestätigt werden.

Ubuntu Setup - Zeitzone

Im nächsten Schritt wird die Festplatte formatiert. Falls man keine speziellen Anforderungen hat, sollte man hier Geführt – gesamte Platte verwenden und LVM einrichten wählen.

Ubuntu Setup - Partitionierungsmethode

Mit LVM ist hier der Logical Volume Manager gemeint: Dies ist eine Abstraktionsebene zwischen der Festplatte (bzw. Partitionen) und dem Dateisystem. Der Vorteil von LVM ist v.a. der, dass Partitionen (im Kontext von LVM „Logical Volumes“ genannt) dynamisch verändert werden können. Man kann z.B. Partitionen nachträglich ohne viel Aufwand verkleinern/vergrößern, oder auch ein Logical Volume auf eine weitere Festplatte ausweiten.

Nun wählt man die zu partitionierende Festplatte aus. Falls man mehrere Festplatten verwendet, sollte man sicherstellen, dass man in diesem Schritt die richtige wählt!

Ubuntu Setup - Festplatte zur Partitionierung wählen

Nach der Wahl der Festplatte kann man die Frage, ob die Änderungen auf die Speichergeräte geschrieben werden sollen und LVM eingerichtet werden soll, mit Ja beantworten.

Ubuntu Setup - Bestätigung der LVM-Einrichtung

Nun kann man festlegen, ob der Gesamte freie Festplatten-Speicher für die Partitionierung verwendet werden soll. Dazu trägt man einfach das Kürzel max in das Eingabefeld ein.

Ubuntu Setup - Partitionsgröße festlegen

Es folgt eine Warnung, dass die Firmware des Rechners den Installer im UEFI-Modus gestartet hat, aber festgestellt wurde, dass scheinbar weitere Betriebssysteme auf der Festplatte vorhanden sind, die mit einer Installation von Ubuntu im UEFI-Modus Probleme bereiten könnten. Da wir allerdings Ubuntu als einziges OS installieren wollen, können wir diese Meldung mit Ja beantworten.

Ubuntu Setup - UEFI-Installation erzwingen

Es folgt noch einmal eine Zusammenfassung der Partitionierung. Falls man diesem Vorschlag noch ändern möchte (z.B. ein anderes Dateisystem auf der root-Partition verwenden möchte), sollte man hier zunächst Nein wählen. Anschließend kann man jede Partition noch einmal einzeln bearbeiten.
Für eine virtuelle Maschine ist jedoch die vom Installer vorgeschlagene Partitionierung meist ausreichend, so dass man diese einfach bestätigen kann.

Ubuntu Setup - Zusammenfassung der Partitionierung

Es folgt die Angabe eines Proxy-Servers für den Zugriff auf das Internet. Im Normalfall ist hier nichts einzugeben, es sei denn, man befindet sich wirklich hinter einem Proxy-Server.

Ubuntu Setup - Proxy-Server

Der Installer fragt nach einer kurzen Wartezeit, ob Aktualisierungen für das System automatisch abgerufen werden sollen. Da wir selbst darüber entscheiden wollen, welche Updates zu welchem Zeitpunkt eingespielt werden, wählen wir hier Keine automatische Aktualisierungen.

Ubuntu Setup - Automatische Aktualisierung

Im folgenden Schritt kann man angeben, welche weitere Software neben dem Basissystem installiert werden soll. Da der Server zunächst mit einer minimalen Konfiguration laufen soll, wählen wir hier lediglich OpenSSH server. Dieser ist für den späteren Zugriff per SSH (PuTTY) auf die virtuelle Maschine notwendig. Standardmäßig ist hier noch standard system utilities gewählt und kann aktiviert bleiben.

Die einzelnen Punkte können mit der Leertaste an- oder abgewählt werden. Die Installation wird daraufhin mit Enter fortgesetzt.

Ubuntu Setup - Softwareauswahl

Zum Schluss informiert der Installer, dass das Installationsmedium entfernt wird und das System neu gestartet werden muss.

Ubuntu Setup - Installation abschließen

Nach dem Neustart des System kann man sich mit dem angelegten User (testuser) und dem angegebenen Passwort am System anmelden.

Erste Anmeldung nach Installation

Optimieren der Hyper-V Einstellungen

Damit ist das Gastsystem zunächst einmal installiert. Dennoch ist für den optimalen Betrieb noch eine Änderung an den Hyper-V-Einstellungen der VM notwendig. Dazu fahren wir den virtuellen Computer mit folgendem Befehl herunter (dazu muss erneut das Passwort des Users angegeben werden – mehr zum Befehl sudo folgt später):

Nachdem die VM herunter gefahren wurde, öffnen wir noch einmal die Einstellungen des virtuellen PCs. Unter Netzwerkkarte > Erweiterte Features wählen wir die Option Statisch für die MAC-Adresse. Dies sorgt dafür, dass die MAC-Adresse nicht mehr dynamisch aus dem Hyper-V-Adresspool zugewiesen wird, sondern die virtuelle Maschine immer die gleiche MAC-Adresse aufweist.

Dieser Schritt ist empfehlenswert, da es sonst u.U. Probleme mit der virtuellen Maschine im Netzwerk geben könnte.

EinstellungenVM - Statische MAC-Adresse zuweisen

EinstellungenVM – Statische MAC-Adresse zuweisen

Danach sollte auch gleich ein neuer Prüfpunkt angelegt werden, der dann das installierte Grundsystem beinhaltet (Rechtsklick auf VM > Prüfpunkt).

Einrichtung des Ubuntu Servers

Nun folgen die Schritte, um den Ubuntu Server optimal für den Betrieb als Hyper-V Gastsystem einzurichten. Dazu meldet man sich nach dem Start der virtuellen Maschine wieder mit dem bekannten Benutzer an.

Exkurs: Root-Rechte

Was unter Windows der Administrator ist, ist unter Linux der Benutzer Root. Nur dieser hat die maximalen Rechte am System. Diese Root-Rechte werden demnach auch benötigt, um z.B. Software zu installieren oder systemweite Änderungen vorzunehmen. Nun ist der während der Installation eingerichtete User auch automatisch Root-Benutzer des Systems. Allerdings hat man keine Root-Rechte, bis man diese explizit anfordert. Dies geschieht, indem man den auszuführenden Befehl ein sudo schreibt, wie beispielsweise bei dem bereits bekannten Befehl:

Es erfolgt die (erneute) Abfrage des Passwortes des entsprecheden Benutzers, bevor der Befehl ausgeführt werden kann (das System merkt sich dieses Passwort temporär für eine gewisse Zeit, so dass dieses nicht bei jedem Befehl mit sudo erneut eingegeben werden muss). Dies ist vergleichbar mit dem Befehl Als Administrator ausführen unter Windows.

Die im Folgenden aufgeführten Schitte erfordern oftmals Root-Rechte. Damit nicht vor jeden Befehl ein sudo eingetippt werden muss, kann man sich bis zur Abmeldung des Benutzers dauerhaft Root-Rechte verschaffen:

Dennoch sollte man sich dessen bewusst sein, dass man mit Root-Rechten die „ultimative Macht“ über das System hat, d.h. man kann den Rechner auch durch das unüberlegte Ausführen von Befehlen lahmlegen. Daher sollte man immer nur dann mit Root-Rechten am System angemeldet sein, wenn dies auch wirklich erforderlich ist.

Nach den Veränderungen am System mit Root-Rechten medet man sich mit dem Befehl exit wieder ab. Nun ist man immernoch mit dem gleichen User angemeldet (testuser), jedoch besitzt dieser keine Root-Rechte mehr. Bei der erneuten Eingabe von exit meldet man sich ganz vom System ab. Dies sollte man aus Sicherheitsgründen immer machen, wenn man nicht mehr aktiv mit dem System auf der Konsole arbeitet.

Systemupdates

Nun gilt es erst einmal, Ubuntu auf den neusten Stand zu bringen. So zeimlich alle Programme und auch Betriebssystem-Komponenten sind sog. Pakete. Über den Paket-Manager apt können diese verwaltet werden.

Zunächst werden die Paketquellen aktualisiert:

Danach können die Updates herunter geladen und installiert werden:

Nachfragen, ob die Updates wirklich installiert werden sollen, können mit J bestätigt werden. Beim ersten Mal kann dieser Vorgang einige Zeit in Anspruch nehmen.

Anschließend wird zur Sicherheit noch folgenden Befehl ausgeführt, um evtl. vorhandene System-Updates zu beziehen:

Nach dem Einspielen der Updates kann können noch alle Pakete deinstalliert werden, die als Abhängigkeiten installiert wurden, aber nicht mehr benötigt werden. Dadurch lässt sich meist einiges an Speicherplatz frei räumen:

Abschließend wird das System neu gestartet:

Hyper-V Integrationsdienste

Nun sollte kontrolliert werden, ob die Hyper-V Integrationsdienste korrekt in der virtuellen Maschine eingebunden sind. Dies ist nicht notwendig, wenn eine andere Virtualisierungsumgebung (z.B. VirtualBox) zum Einsatz kommt.

Zunächst verwenden wir den Befehl lsmod, der alle geladenen Kernel-Module auflistet.

Hyper-V Integration Services

Hyper-V Integration Services

Werden hier die Module hv_storvsc, hv_netsvc, hv_utils und hv_vmbus aufgelistet, wurden die Integrationsdienste bereits korrekt installiert und eingerichtet. Dies sollte nach der Installationsanleitung eigentlich immer der Fall sein.

Falls diese Module nicht aufgelistet werden, müssen diese manuell geladen werden. Dazu bearbeiten wir folgende Datei. Dadurch öffnet sich der Texteditor (nano).

Hier fügen wir die folgenden Zeilen hinzu:

Gespeichert wird die Datei mit STRG+O. nano wird danach mit STRG+X beendet.
Um die Änderungen dem System bekannt zu machen, ist folgender Befehl auszuführen, gefolgt von einem Neustart:

Anschließend sollten die Module beim Systemstart korrekt geladen werden.

Optimierungen für virtuelle Umgebung

Für LTS-Versionen: Um Ubuntu weiter zu optimieren, besorgen wir uns danach die Kernel-Module, die für den Betrieb in einer virtuellen Umgebung optimiert sind. Da wir eine LTS-Version einsetzen, gibt es hierfür spezielle Module, die genau für unsere Version optimiert sind:

Anschließend werden noch weitere Hyper-V-Tools installiert, die das Zusammenspiel zwischen Ubuntu und dem Hyper-V-System erleichtern. Diese Schritte sind mit anderer Virtualisierungs-Software nicht notwendig, bzw. hier müssen andere Tools installiert werden.

Laut einem TechNet-Artikel beinhalten diese Pakete beispielsweise den VSS Snapshot Daemon, der für Live-Backups des virtuellen Linux-Systems benötigt werden.

Zum Schluss suchen wir noch einmal nach Updates und starten den Rechner neu:

 

Wenn keine LTS-Version zum Einsatz kommt (z.B. 15.10), dann werden die allgemeinen Pakete installiert. Anstatt der oben genannten Befehle wird daher folgendes ausgeführt:

Optimierung des I/O-Schedulers

Ein Betriebssystem ist u.a. dafür zuständig, I/O-Operationen zu optimieren und auszuführen. Der Linux Kernel kennt dabei vier verschiedene Scheduling-Modes. Jeder davon hat seine Vor- und Nachteile, was an dieser Stelle jedoch nicht weiter behandelt werden soll. Eigentlich soll ja nicht das Gastsystem für die optimierten I/O-Operationen zustanding sein, sondern nur der Hyper-V-Hypervisor.

Um dies zu erreichen, muss man den GRUB-Bootloader anpassen:

Hier suchen wir nach der Zeile

und ändern diese zu

Mit dieser Änderung weisen wir das Gastsystem an, sämtliche I/O-Operationen an den darunter liegenden Hypervisor zu übergeben, der dann seinerseits für einen optimierten Ablauf sorgt. Dadurch erhöht sich im allgemeinen die Performance der virtuellen Maschine.

Wir speichern (STRG+O) und beenden nano (STRG+X). Anschließend sollte man noch ein Update von GRUB durchführen und das System neu starten:

Nach diesem Schritt ist das Gassystem für den Betrieb in einer Hyper-V-Umgebung optimiert und einsatzbereit.

Zugriff auf die virtuelle Maschine mit SSH

Damit man sich nicht immer über den Hyper-V-Manager auf die VM verbinden muss, sondern der Zugriff auf von anderen Computern im lokalen Netzwerk aus stattfinden kann, muss zum Schluss noch der Zugriff per SSH eingerichtet werden. Der OpenSSH Server wurde ja bereits bei der Installation des Betriebssystems mit installiert.

Um sich nun von anderen Windows-Rechnern per SSH auf den virtuellen Computer zu verbinden, empfehle ich das Programm PuTTY. Dies kann direkt über die PuTTY Download-Seite heruntergeladen werden (putty.exe) und irgendwo auf dem System gespeichert werden (z.B. auf dem Desktop). Nach dem Start von PuTTY ist der Rechnername (UbuntuServerTest) oder die IP der virtuellen Maschine anzugeben.

Putty-Konfiguration für die virtuelle Maschine

Putty-Konfiguration für die virtuelle Maschine

Nach einem Klick auf Open erscheint noch eine Hinweismeldung, dass der Computer, zu dem eine Verbindung aufgebaut werden soll, unbekannt ist. Durch die Bestätigung mit Ja weißt man PuTTY an, sich diesen Computer zu merken und bei erneutem Verbindungsaufbau nicht mehr nach zu fragen.

Anschließend ist man per SSH mit der virtuellen Maschine verbunden und kann sich gewohnt anmelden. Das Verbindungs-Fester des Hyper-V-Managers wird dadurch nicht mehr benötigt.

Virtuelle Maschine nach Anmeldung mit PuTTY

Virtuelle Maschine nach Anmeldung mit PuTTY

Links

, , , , ,

Kommentare: 25

  • Nils K. sagt:

    Hallo Jan,

    ich muss mal ein großes Danke aussprechen für diese tolle Anleitung. Alles perfekt beschrieben. So macht es auch für mich als Anfänger viel Spaß!

    Gruß
    Nils

  • Hallo Jan,

    ich kann mich Nils nur anschließen! Das kann selbst ich nicht besser machen!

    Gruß Michael

  • Henry sagt:

    Hallo,

    danke für die Anleitung und vor allem für die Einstellungen bezüglich Ubuntu, leider konnte ich das System nicht unter „Generation 2“ installieren, ich hatte immer den Fehler „Boot failed. EFI SCSI Device“. Mit der Generation 1 ging es…

    Grüße

    • Jan sagt:

      Hallo Henry und danke für das Lob!

      Hast du die Option Sicherer Start aktivieren in dem VM-Einstellungen deaktiviert (siehe letzter Punkt unter Anpassungen der Einstellungen der VM im Artikel)? Wenn die Option aktiviert ist führt dies mit Generation 2 VMs zu Problemen beim Booten.

      Gruß,
      Jan

      • Henry sagt:

        Ah Fuck, ich glaube du hast recht…. 🙂 das kann die Ursache sein.
        Ich probiere es die Tage nochmal, mein Pentium G3220 ist ein bisschen träge..

        Danke dir!

        • Jan sagt:

          Hi Henry,

          ein G3220 ist doch für solche Sachen mehr als ausreichend. Mein Home-Server läuft auch nur mit einem Core i3 3220…
          Melde dich einfach nochmal, falls es trotz deaktivierter Option immer noch nicht laufen sollte.

          Gruß,
          Jan

  • Eddie sagt:

    Klasse Anleitung. Vielen Dank!!!

  • Henere sagt:

    Servus, danke für die Anleitung.
    Du schreibst weiter oben, „kann die VM einfach gesichert werden“.
    Da ich nun seit 2 Wochen versuche, eine Ubuntu-VM live zu sichern udn alle Versuche misslingen, wollte ich mal fragen, wie DU das gelöst hast. Es soll eine Live-Sicherung werden, ohne die VM runterfahren zu müssen.
    Es gibt von MS Integrationsdienste für Linux, hast DU die installiert ?

    Danke und Grüße, Henere

    • Henere sagt:

      Habs gelöst… es muss noch:
      apt-get install linux-tools-4.2.0-35-generic linux-cloud-tools-4.2.0-35-generic
      ausgeführt werden, dann klappts auch mit dem Backup der Live-Maschine.

      Grüße, Henere

      • Jan sagt:

        Hallo Henere,

        genau, mit diesen Paketen wird das Live-Backup (z.B. über die Windows Server Sicherung) möglich. Es gibt von diesen Paketen allerdings auch Versionen, die auf virtuelle Umgebungen optimiert sind. Im Artikel empfehle ich auch, diese zu installieren: apt-get install linux-tools-virtual linux-cloud-tools-virtual.

        Beim Live-Backup einer Linux-VM sollte nur beachtet werden, dass die Backups Dateisystem-konsistent sind, aber nicht Anwendungs-konsistent, weil es sich eben nicht um ein richtiges VSS Backup handelt.
        In einer „professionellen“ Umgebung, wo eine solche VM u.U. auch mal unter Last gesichert werden muss (Webanwendungen, Datenbanken, viele User gleichzeitig, etc.), sollte man daher überprüfen, ob diese Art des Backups ausreicht.

        Gruß,
        Jan

        • Henere sagt:

          Servus Jan, leider reichen die von Dir angegebenen Pakete nicht aus um die VSS-Sicherung ausführen zu können. Die Prozesse
          hv_vss_daemon
          /hv_kvp_daemon
          Laufen nicht. Und die kommen erst dazu wenn man:
          apt-get install linux-tools-4.2.0-35-generic linux-cloud-tools-4.2.0-35-generic
          ausführt…. Das hat mich 2 Wochen meines Lebens gekostet, bis ich da endlich dahinter gestiegen bin, warum die Linuxhobel nicht gesichert werden können.

          Grüße, Henere

          • Jan sagt:

            Hallo Henere,

            ich vermute mal, dass du Ubuntu 14.04 LTS einsetzt. Hier ist in der Tat die Installation weiterer Pakete notwendig (siehe hier, besonders Punkt 5).
            Der Artikel zielt auf die 15.04 ab – sorry, wenn dir da wichtige Informationen gefehlt haben.

            Heute (21.04) wird ja wohl die neue LTS-Version freigegeben (16.04, „Xenial Xerus“). Dies wird in Zukunft wohl die Version sein, die man einsetzen sollte. Ich werde den Artikel dahingehend noch überarbeiten.

            Gruß,
            Jan

          • Henere sagt:

            Ja, war 14.04. LTS

            Danke Dir !

  • Jan sagt:

    Ich habe den Artikel nun überarbeitet, so dass die Installation konkret mit Ubuntu Server 16.04 LTS gezeigt wird.
    Viel hat sich im Vergleich zu Version 15.10 nicht geändert, daher dürfte es hauptsächlich für Leute interessant sein, die von 14.04 LTS kommen.

  • Kurt sagt:

    Hallo

    Danke für die Super Anleitung, bei mir kommt jetzt beim rebooten folgende Fehlermeldung:
    Failed to finalize DM devices, ignoring

    und das System braucht ewig bis es neu startet.

    LG, Kurt

    • Jan sagt:

      Hallo Kurt,

      bleibt deine VM beim Shutdown/Reboot hängen (dieses Phänomen konnte ich auch schon – wenn auch selten – beobachten), oder läuft alles durch und dauert nur etwas länger?
      Anscheinend kann diese Meldung mehrere Ursachen haben. Ist es eine Generation 1 oder 2 VM? Hast du irgendwelche „Spezialitäten“ am Laufen, wie z.B. Verschlüsselung? Den Befehl update-grub hast du sicherlich ausgeführt, oder?

      Gruß,
      Jan

  • Hendrik sagt:

    Hallo Jan,

    Super Anleitung, hat mir sehr gut gefallen!

  • Daniel sagt:

    Hi! Danke für Anleitung und die geleistete Arbeit!!

    Aber leider bootet nach der Installation mein Ubuntu nicht.

    Ich habe einen Microserver (16GB RAM und XEON Prozessor), dort läuft Windows Server 2012 Standard R2 mit der Hyper-V Rolle (BIOS Modus). Auf dem Hyper-V habe ich dann einen Windows Server 2012 R2 Standard als Domänencontroller und einen Windows Server 2012 R2 als WSUS. Die Maschinen laufen problemlos als Generation 2 Maschinen mit aktiviertem SecureBoot. Nun wollte ich noch einen Ubuntu Server nach der hier gegebenen Anleitung aufsetzen. Die Installation läuft problemlos durch, aber nach dem Neustart habe ich nur ein verzerrtes Hyper-V logo, so als sei die Grafikkarte defekt.
    Die Windows Maschinen laufen problemlos.
    Werde mal einen Versuch mit der „Generation 1“ versuchen, wobei ich lieber den Ubuntu Server in der Generation 2 laufen hätte. Hat jemand noch eine Idee? SecureBoot für die Ubuntu Maschine ist natürlich off.

    VG Daniel

    • Daniel sagt:

      Sorry, nachdem ich nun eine VM in der Gen1 installiert habe und nur einen schwarzen Bildschirm hatte als ich mich per Hyper-V verbinden wollte, habe ich es mal einfach per Putty versucht… und siehe da, es ging…. also nochmal alles in Generation 2 versucht, das Bild war wieder dasselbe wie oben beschrieben, aber per putty komme ich drauf.
      Ich hätte erwartet dass ich per hyper-v-manager auch die textbasierte Oberfläche angezeigt bekomme.

      Also alles gut, es gab nie ein Problem 😉

      VG Daniel

      • Jan sagt:

        Hi Daniel,

        sich mit dem Hyper-V-Manager auf Linux-VMs zu verbinden hat auch bei mir nie korrekt funktioniert. Hier kam es immer zu diversen Fehlern – meistens aber nur, dass Zeilen abgeschnitten oder nur teilweise angezeigt wurden. So heftige Fehler wie bei dir konnte ich noch nicht feststellen. Ich hätte nun erwartet, dass zumindest das Hyper-V-Logo vom Host „kommt“ – hier ist der korrekte Treiber für die Grafik installiert?
        Aber ganz ehrlich: Wenn es über putty geht, dann würde ich es so lassen. Mach ich mittlerweile auch so, über den Hyper-V-Manager verbinde ich mich nur, wenn ich eine VM neu aufsetze und SSH noch nicht konfiguriert ist.

        Gruß,
        Jan

        • Daniel sagt:

          Hi, ist zwar schon etwas hin, aber ich wollte nochmal kurz eine Rückmeldung geben.
          Das verzerrte Hyper-V Logo ist äußerst irritierend und tritt nach wie vor auf, jedoch scheint es lediglich ein temporäres Darstellungsproblem zu sein. Wechselt man z.B. mit ALT+F2 die Konsole, dann ist man im Geschäft und kann auch beliebig zwischen den Konsolen wechseln. Ist neulich ein Kollege drauf gekommen… LINUX Grundlagen hat er gesagt ;-P

          So long!

          • Jan sagt:

            Hi Daniel,

            das ist vielleicht ein guter Tipp. Danke dafür.
            Da ich mich immer mit PuTTY auf die Linux-VMs verbinde, bin ich in dieses Problem allerdings noch nie reingelaufen.

            Gruß,
            Jan

  • Sniffles sagt:

    Hi, auch von mir, ein grosses Danke für die Anleitung! Hätte ich die früher gefunden, hätte ich mir viele Nerven sparen können.

    Eine Frage hätte ich aber trotzdem noch; Mein Server, ein ML110 G9, hat 4 x 2TB Platten, welche mit einem Host Bus Adapter (H240), als RAID 5 konfiguriert sind. Dieses soll als Datenspeicher dienen und dafür habe ich eine separate, virtuelle Platte erstellt.

    Den Hyper V Server habe ich auf 2 x 500GB (RAID 1), installiert (eigene xvhd). Soweit klappt alles, aber irgendwie gibt’s Probleme bei der Festplatten Kapazität.

    Es erscheint eine Meldung, dass die Festplattenkapazität zu Neige geht… und ich steh momentan auf dem Schlauch, wo ich den Konfigurationsfehler gemacht habe.

    Hat jemand evtl. eine Idee woran es liegen könnte?

    • Jan sagt:

      Hi,

      Kommt die Meldung auf dem Hyper-V Server? Wie sind die Datenplatten in die Linux-VM eingehängt?
      Ich befürchte fast mal, dass das Problem erst einmal nichts mit dem Hyper-V Gast (Linux) zu tun hat.

      Gruß,
      Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.