[[Vorlage(Getestet, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme starten: Ein Programm starten] [:Terminal: Ein Terminal öffnen] optional [:Editor: Einen Editor öffnen] optional }}} [[Inhaltsverzeichnis(3)]] [[Bild(virt_manager.png, 200, align=left)]] Der [http://virt-manager.org/page/Main_Page Virtual Machine Manager] {en}, kurz auch virt-manager oder VMM genannt, bietet eine einheitliche Benutzeroberfläche zum Erstellen und Verwalten von [:Virtualisierung:virtuellen Maschinen]. VMM setzt dabei auf [http://libvirt.org/index.html libvirt] {en} auf, d.h. es werden die Virtualisierung-Lösungen unterstützt, die libvirt auch unterstützt. Dies sind u.a. [:QEMU:], [:KVM:] und [wikipedia:Xen:], aber nicht [:VirtualBox:] oder [:VMware Player:]. VMM bietet sowohl ein [#gui grafische Benutzeroberfläche] als auch eine Reihe von [#shell Kommandozeilen-Programmen] an. VMM ist komplett in [:Python:] geschrieben. Die Besonderheit an VMM ist, dass er eine Art Zwischenschicht bildet, so dass die Verwaltung der virtuellen Maschinen einheitlich ist, egal welche Virtualisierungslösung eingesetzt wird, was den Administrationsaufwand verringert. Die Konfiguration wird dabei in XML-Dateien abgelegt, so dass dies nach Bedarf auch von Hand korrigiert werden kann. Die verwalteten virtuellen Maschinen können dabei auch auf einem anderen Rechner liegen (z.B. einem anderen Server), die Verbindung dorthin kann auch verschlüsselt erfolgen. = Installation = Es müssen folgende Pakete installiert werden [1]: {{{#!vorlage Paketinstallation virt-manager }}} Mit den Abhängigkeiten landen bereits alle nötigen Pakete auf dem Rechner, so dass VMM mit QEMU/KVM über [wikipedia:SPICE (Protokoll): SPICE] genutzt werden kann. Für weitere der oben genannten Virtualisierungslösungen muss man noch tätig werden, wovon in dieser Anleitung aber nicht ausgegangen wird. = Vorbereitung = Nach der Installation ist folgender Punkt zu erledigen, sonst kann VMM nicht genutzt werden. Man muss sich selbst der Benutzergruppe `libvirt` hinzufügen (siehe auch [:Benutzer_und_Gruppen:]); ebenso alle anderen Nutzer, die mit VMM neue virtuelle Maschinen erstellen und verwalten können sollen, und - eventuell - das Netzwerk einrichten. {{{#!vorlage Befehl sudo usermod -aG libvirt BENUTZERNAME }}} „BENUTZERNAME“ ist natürlich anzupassen. Jetzt ist der richtige Zeitpunkt für einen '''Neustart''' des Rechners, damit die Änderungen wirksam werden. = Benutzung = Wie bereits oben erwähnt besteht VMM aus einer grafischen Benutzeroberfläche und mehreren Kommandozeilen-Programmen. [[Anker(gui)]] == Grafische Benutzeroberfläche == [[Bild(vmm.png, 200, align=right)]] Die '''Virtuelle Maschinenverwaltung''' wird wie jede andere Anwendung auch wie in der eingesetzten Desktopumgebung üblich gestartet.[2] Es erscheint ein Übersichtsfenster, welches alle installierten bzw. unter Verwaltung stehenden virtuellen Maschinen und deren Status zeigt. Die Ansicht kann über das Menü ''"Anzeigen"'' angepasst werden. === Neue virtuelle Maschine einrichten === Zum Anlegen einer neuen virtuellen Maschine wählt man in der Werkzeugleiste das Symbol „Neu“ aus oder über das Menü ''"Datei"'' → ''"Neue virtuelle Maschine"''. Nun wird man in einem fünfschrittigen Dialog durch das Anlegen der virtuellen Maschine geführt. Im ersten Schritt wählt man die Art des Speicherortes des ISO-Image aus. Das ISO-Image bzw. die CD müssen dabei nicht unbedingt auf dem lokalen Rechner liegen - sie müssen lediglich auf einem „Laufwerk“ liegen, auf das man Zugriff hat. Für den Einstieg empfiehlt es sich lokal zu üben. Im zweiten Schritt wird das ISO-Image ausgewählt und die Art des installierten Betriebssystems gewählt. Dies hat einen gewissen Einfluss auf die Art, wie die virtuelle Maschine konfiguriert wird. Die virtuelle Maschine wird über diese Typen definiert. Wenn die automatische Erkennung nicht klappt, entfernt man das Kreuzchen vor der ''"Automatischen Erkennung …"'' und fängt im Feld darüber an zu tippen. Soll bspw. Ubuntu installiert werden so reicht bereits „ub“ um eine Liste mit den aktuell unterstützten Versionen anzuzeigen. Wenn aktuellere Versionen als das eingesetzte Ubuntu des Wirtes nicht in der Liste stehen, so wählt man den neuesten Eintrag. Für alte, nicht mehr unterstützte Versionen kann man das Kreuzchen bei ''"Abgekündigte Betriebssysteme anzeigen"'' setzen, wobei sich hier empfiehlt die Netzwerkkarte zu entfernen (vgl. [#Hardware-veraendern Hardware verändern]), damit diese Systeme nur offline betrieben werden können. {{{#!vorlage Hinweis Kommt es bei der Installation von Linux-Varianten zu Problemen bzw. hängt sich die Installation auf, so kann man versuchen, unter ''"… Betriebssystem, das Sie installieren wollen"'' eine allgemeinere Variante zu wählen also z.B. ''"Generic Linux 2018"'' statt ''"Ubuntu 18.04"''. Bei Windows Installation sollte man immer die korrekte Variante wählen, da hier dann die spezifischen Besonderheiten der verschiedenen Windows-Versionen berücksichtigt werden (z.B. in Bezug auf ACPI). }}} Im dritten Schritt gibt man an, wie viel RAM der virtuellen Maschine zur Verfügung stehen soll. Außerdem kann man hier festlegen wie viele CPUs eine virtuelle Maschine haben soll. Im vierten Schritt legt man fest, in welches virtuelle Laufwerk die Installation erfolgen soll. Dazu wählt man die Größe und ggf. einen individuellen Speicherort. Auch in diesem Schritt gilt, dass die Datei nicht auf der lokalen Maschine liegen muss, es können auch andere, externe Laufwerke sein, auf die man Zugriff hat. Es ist grundsätzlich auch möglich, eine VM ohne virtuelle Harddisk anzulegen (vgl. [#VM-fuer-Livesystem VM für Livesystem]). Im fünften Schritt legt man den Namen der virtuellen Maschine fest. Dieser kann beliebig vergeben werden; sinnigerweise sollte er jedoch die Art oder den Zwecke enthalten, damit man nicht erst nach dem Start der Maschine merkt, dass man die falsche gestartet hat. Hier hat man auch die Möglichkeit die Netzwerk-Einstellung festzulegen, sofern man spezielle Anforderungen hat. Der Standard ist ''"Virtual Netzwerk 'Default': NAT"'' und ermöglicht Netzwerkzugriff und Internetverbindung ohne weiteres Zutun. Wählt man ''"Konfiguration bearbeiten vor der Installation"'' so wird nach Klick auf ''"Fertig"'' noch die Hardwareübersicht angezeigt und man hat so noch die Möglichkeiten fürs Feintuning. Macht man von dieser Möglichkeit Gebrauch, so startet man die VM dann über ''"Installation beginnen"'', ansonsten startet nach Klick auf ''"Fertig"'' die Virtuelle Maschine und dessen Installation. Noch ein kleiner Hinweis: Nach der Installation von Ubuntu wird zu einem Neustart aufgefordert. Dabei wird das Betriebssystem fast heruntergefahren und es wird ein Hinweis angezeigt, dass man das Installationsmedium entfernen möge. Je nach Einstellung des Bildschirms und der Größe der VM kann es sein, dass man diesen Satz nicht lesen kann. Sollte einem das Warten also ungehörig lange vorkommen, einfach mal ENTER drücken. === Netzwerk einrichten === Es gibt mehrere Möglichkeiten, später die virtuelle Maschine mit einem realen Netzwerk / Internet zu verbinden. Per Voreinstellung setzt VMM ein virtuelles Netzwerk im Adressraum 192.168.122.0/24 ein, dass per [wikipedia:Network_Address_Translation: NAT] mit der realen Netzwerkkarte verbunden ist. Mit dieser Konfiguration kann jede virtuelle Maschine ins Internet, es sind keine weiteren Schritte notwendig. Grundsätzlich besteht auch die Möglichkeit, dass die virtuelle Maschine sich per Bridge direkt in das reale Netzwerk einklinkt. Dazu muss aber zuerst die Bridge eingerichtet werden, was etwas Handarbeit erfordert. '''Veraltete''' Anleitungen findet man im Englischen Wiki [ubuntu:KvmWithBridge:] oder auch im [http://wiki.libvirt.org/page/Networking#Debian.2FUbuntu_Bridging libvirt-Wiki] {en} === Virtuelle Maschine starten und steuern === Bereits eingerichtete, virtuelle Maschinen können von Hand gestartet werden. Dazu wählt man im Hauptfenster die gewünschte VM und klickt nun auf ''"Öffnen"''. Nun erscheint ein neues Fenster für die VM. Ein Klick auf ''"Start"'' startet die Maschine und die Bildschirmausgabe erscheint im Fenster. Über den Punkt ''"Virtuelle Maschine"'' kann man die laufende VM steuern, z.B. pausieren, wiederaufnehmen und beenden. Der Punkt ''"Ausschalten erzwingen"'' entspricht dabei einem "harten" Ausschalten, also quasi so, als ob die Stromversorgung eines realen Computers unterbrochen wird. Daher sollte man diesen Punkt nur wählen, wenn die VM sich auf normalem Wege nicht mehr herunterfahren lässt. === Hardware verändern === Man kann mit Hilfe des virt-managers auch die Hardware der VM im Nachhinein ändern. Dazu klickt man im Hauptfenster auf die gewünscht VM und diese zumindest öffnen (Ausführen optional). Nun klickt man auf ''"Anzeigen"'' → ''"Details"''. In der Liste kann man nun eine Hardware-Komponente auswählen und - falls möglich - deren Eigenschaften ändern. Über die Schaltflächen ''"Gerät hinzufügen"'' und ''"Remove"'' kann man Hardware-Komponenten "ein-" bzw. "ausbauen". Die Änderungen sind teilweise auch im laufenden Betrieb möglich. {{{#!vorlage Hinweis Der über den Wert für ''"Aktuelle Zuweisung"'' definierte Speicher wird beim Starten der virtuellen Maschine sofort alloziert, egal ob dieser komplett gebraucht wird oder nicht! Erst bei Bedarf wird bis auf den Wert für ''"Maximale Zuweisung"'' ausgeweitet. }}} Zurück zur VM kommt man über ''"Anzeigen"'' → ''"Konsole"''. === Tastaturkommandos senden === Sehr praktisch ist die Funktion, Tastaturkommandos zu senden, besonders wenn diese normalerweise der "Hotkey" des Virtualisierers ist. So ist es mit QEMU / KVM normalerweise nicht möglich [[Vorlage(Tasten,strg+alt+f1)]] etc. zu senden, da mit [[Vorlage(Tasten,strg+alt)]] der Fokus des Virtualisierers verlassen wird. Alle Tastenkombinationen, die gesendet werden können, findet man im Menü ''"Taste senden"''. === VM für Livesystem === Die grafische Einrichtung einer VM, in der immer nur das Livesystem gestartet wird, erfordert ein wenig Nacharbeit. Sie erfolgt ähnlich einer normalen VM, jedoch bei Schritt 4 von 5 entfernt man Kreuzchen bei ''"Speicherplatz für diese virtuelle Maschine aktivieren"''. Nach dem ersten Lauf wird jedoch die Verbindung zum CD-ROM getrennt. Vor dem zweiten Start öffnet man die VM (nicht ausführen), wählt ''"Anzeigen"'' → ''"Details"'', wählt in der linken Seitenleiste ''"SATA CD-ROM 1"'' und kann dann rechts im Hauptfenster bei Quellpfad nochmal das Dateisystem nach der ISO ''"durchsuchen"''. Anschließend muss man noch auf ''"Apply"'' klicken um die Änderung zu speichern. Diese Verbindung hält dann bis zum Löschen der ISO oder der VM. === Austauschverzeichnis zwischen Wirt und Gast einrichten === [[Bild(Dateisystemdurchgang.png 400 right)]] Davon ausgehend, dass beide Systeme Ubuntu verwenden, wird die VM geöffnet, aber nicht gestartet. Dann kann man wie unter [#Hardware-veraendern Hardware verändern] beschrieben ein ''"Gerät hinzufügen"'' und wählt in der Seitenleiste `Dateisystem` aus und im Hauptfenster * als '''Treiber''' ''virtio-9p'' * als '''Quellpfad''' das gewünschte Verzeichnis des Wirtes * als '''Zielpfad''' bspw. ''/share''. Nach dem Einschalten des Gastes muss zunächst ein Verzeichnis als Einhängepunkt erstellt werden und anschließend kann das angegebene Verzeichnis eingebunden werden. Auf der Kommandozeile wären für das angegebene Beispiel folgende Befehle nötig: {{{#!code bash $ mkdir /tmp/share $ sudo mount -t 9p -o trans=virtio,version=9p2000.L /share /tmp/share }}} === Mit anderen Rechnern verbinden === Wie oben bereits erwähnt kann VMM auch virtuelle Maschinen auf anderen Rechner verwalten. Um sich mit diesem zu verbinden, klickt man auf ''"Datei -> Verbindung hinzufügen …"''. Hier besteht die Wahl zwischen einer [:SSH:]-verschlüsselten Verbindung und Absicherung über ein x509-Zertifikat. Natürlich müssen für beide Methode die entsprechenden Konfigurationen vorher angelegt sein. Für die Erstellung einer neuen VM ist der oben beschriebene Weg ggf. erweitert. {{{#!vorlage Hinweis Damit die Administration auf anderen Rechner funktioniert, muss dort auch '''libvirt-clients''' installiert sein und der Remote-Benutzer muss dort auch Mitglied der Gruppe `libvirt` sein. }}} === Vollbildmodus === In der rechten Ecke der Werkzeugleiste befindet sich das Symbol, um in den Vollbildmodus zu wechseln. Beim Wechsel wird eine kleine Leiste mit zwei Symbolen als kleiner Hinweis kurz ein- und dann ausgeblendet. Sie ist erreichbar, wenn man die Mitte des oberen Bildschirmrandes mit der Maus abfährt. Hier kann man eine Tastenkombination an die VM senden oder zum Fenstermodus zurückkehren. == Kommandozeile == Bei der Installation von VMM werden drei Kommandozeilen-Programme mit installiert, welche ebenfalls der Verwaltung von virtuellen Maschinen dienen: === Virt-image === Mit Hilfe dieses Programm ist es möglich, eine neue virtuelle Maschine für den VMM anzulegen. Anlegen heißt in hier, dass eigentlich "nur" die XML-Datei angelegt wird, die die virtuelle Maschine beschreibt, für die Installation ist [#virt-install virt-install] zuständig. Die XML-Datei findet man dann unter '''/etc/libvirt/''', also z.B. '''/etc/libvirt/QEMU''', wenn QEMU eingesetzt wird. virt-image kann mit einer Reihe von Optionen aufgerufen werden, welche die Konfiguration der virtuellen Maschine definieren. Diese sind recht ausführlich in der [:man:Man-Page] von virt-image inkl. einiger Beispiele beschrieben. === Virt-install === virt-install dient der Installation von neuen virtuellen Maschinen für VMM. Die Optionen entsprechen denen der grafischen Benutzeroberfläche und sind sehr ausführlich in der [:man:Man-Page] inkl. einiger Beispiele beschrieben. Einige Optionen entsprechen denen von [#virt-image virt-image]. virt-install kann direkt ausgeführt werden, es muss vorher kein Image via virt-image angelegt werden. === VM für Live-DVD === Möchte man in einer virtuellen Maschine immer nur die Live-DVD starten, so kann man das auch schnell im Terminal einrichten. Der folgende beispielhafte Aufruf von virt-install erzeugt eine entsprechende virtuelle Maschine [3]: {{{#!vorlage Befehl virt-install --hvm --name Live-DVD --ram 4096 --video qxl --channel spicevmc --nodisks --livecd --cdrom /media/iso/ubuntu-22.10-desktop-amd64.iso --network network:default --osinfo detect=on,name=ubuntu22.04 }}} Alle Optionen sind in der Manpage erklärt. === Virt-clone === Wie der Name schon vermuten lässt, dient dieses Programm dem Klonen von vorhanden virtuellen Maschinen. Dabei werden alle Parameter übernommen. Die Parameter, welche einmalig sein müssen (z.B. die UUID der virtuellen Maschine oder die MAC-Adresse der Netzwerkkarte) ersetzt virt-clone selbstständig. Eine Übersicht über alle Optionen von virt-clone findet man nach dem Aufruf von ``virt-clone -h`` oder in den [:man:Man-Pages], in denen auch einige Beispiele enthalten sind. = Problemlösung = == Der Mauszeiger verschwindet == Hat man eine VM ausgewählt, bei der entweder die virtuelle Konsole aktiv ist oder aber nicht reagiert, so scheint es, dass der Mauszeiger verschluckt wurde. Dabei ist er nur von der VM gefangen, wird in dieser nur nicht dargestellt. Den Fokus zurück ins Wirtssystem erhält man mit Tastenkombination [[Vorlage(Tasten ,strg+alt)]]. == Zwischenablage funktioniert nicht == Zunächst muss sichergestellt werden, dass im VMM als Anzeige Spice mit Video QXL konfiguriert ist. Weiterhin muss dann in der virtuellen Maschine das Paket ``spice-vdagent`` installiert werden.[1] Siehe auch: https://unix.stackexchange.com/questions/109117/virt-manager-copy-paste-functionality-to-the-vm == Fehler beim Öffnen von VMM == Nach der Installation kann es ggf. zu folgender Fehlermeldung kommen: {{{ Unable to connect to libvirt qemu:///system. Stellen Sie sicher, dass der »libvirtd«-Dienst läuft. }}} Dann kann man zunächst mit `groups` kontrollieren, ob der aktuelle Benutzer auch in der Gruppe "libvirt" eingetragen ist. Es kann helfen, mit {{{#!vorlage Befehl systemctl enable --now libvirtd }}} den Dienst permanent zu aktivieren und sofort zu starten. = Links = == intern == * [:virt-manager - UEFI und Secure Boot verwenden:] == extern == * [http://docs.fedoraproject.org/de-DE/Fedora/12/html/Virtualization_Guide/chap-Virtualization_Guide-Managing_guests_with_the_Virtual_Machine_Manager_virt_manager.html Das Verwalten von Gästen mit dem Virtual Machine Manager] {de} - Fedora Dokumentation * [http://www.admin-magazin.de/Das-Heft/2012/06/Virtuelle-Maschinen-mittels-VNC-und-Spice-bedienen Virtuelle Maschinen mittels VNC und Spice bedienen] {de} - Michael Kofler, ADMIN Magazin * [http://www.linux-kvm.org/page/SPICE Example using SPICE and QXL for improved Graphics experience in the guest] {en} - RedHat Emerging Technology Project #tag: Emulation und Virtualisierung, Python, Budgie, GNOME, MATE, Unity, Xfce