Heim > Artikel > System-Tutorial > Leitfaden zum Konfigurieren und Installieren von Windows-Betriebssystemen in KVM für Ubuntu
Warum sich mit der virtuellen KVM-Maschine die Mühe machen?
Aufgrund von Firmenangelegenheiten in letzter Zeit habe ich nicht viel Zeit zum Schreiben, deshalb werde ich als Ausgleich einfach einen technischen Artikel schreiben.
Die Sache ist so: Unser Unternehmen hat eine kleine Sache, die auf einem eingebetteten System basiert und nicht zur Android- oder iOS-Plattform gehört. Nun, was bedeutet das? Das bedeutet, dass die Sprache für die Entwicklung dieses kleinen Dings die Sprache C ist, nicht Java, Objective-C oder Swift. Wir benötigen also einen Cross Compiler, auch Cross-Compilation-Umgebung genannt, um diesen Code zu kompilieren.
Tatsächlich gehört die von Xcode kompilierte iOS-App auch zur Kategorie der Cross-Compilation.
Diese Cross-Compilation-Umgebung ist jedoch nur für die Windows-Plattform verfügbar! Tatsächlich scheinen neben GCC die nützlichsten Cross-Compilation-Umgebungen die unter Windows zu sein. Es wird geschätzt, dass viele Studenten, die eingebettete Systeme spielen, wissen sollten, dass die Keil- und IAR-Serien heutzutage in der Branche häufig verwendet werden. Leider sind beide Windows-spezifisch und es gibt keine macOS- oder Linux-Versionen.
Warum macht mich Windows so unglücklich? Denn um die Arbeitseffizienz zu verbessern, verwenden wir normalerweise nur Mac anstelle von Windows, es sei denn, die von uns verwendete Branchenanwendungssoftware muss unter Windows laufen. Wir haben also im Grunde keine untätigen und wohlhabenden Windows-Hosts, nein! So etwas wie „grundsätzlich nein“ gibt es überhaupt nicht.
Und was den Server betrifft, erzählen Sie mir nichts über Windows Server. Als verrückter Benutzer von macOS und Ubuntu ist es für mich unmöglich, einen Windows Server auf Bare Metal auszuführen. Wir betreiben nur Linux auf dem Server und sind an nichts anderem interessiert.
Dann stellt sich die Frage: Wir haben ein automatisiertes Kompilierungssystem, das auch als CI-System (Continuous Integration) bekannt ist und Atlassians Familien-Bucket verwendet: Bitbucket, Bamboo, JIRA und Confluence usw., die alle auf dem Docker-Virtualisierungscontainer der Linux-Plattform laufen .
Jetzt wollen wir den Compiler für diese kleine Sache automatisieren, um die Arbeitskräfte besser freizugeben und es in Zukunft einfacher zu machen, den Inhalt jeder Veröffentlichung zu verfolgen und zu verwalten. Das erste zu lösende Problem ist: Wir haben keinen Windows-Server.
Da Virtualisierung mittlerweile so beliebt ist, nutzen wir den vorhandenen Ubuntu-Server, um ein Windows zu virtualisieren. Okay, los geht's!
Was ist KVM?
Der vollständige Name von KVM lautet: Kernel-basierte virtuelle Maschine. In einem einfachen Satz handelt es sich um ein Virtualisierungsverwaltungssystem, das auf dem Linux-Kernel basiert.
Diese Funktion ist seit der Linux-Kernel-Version 2.6.20 integriert. Verstehen Sie einfach, dass Docker eine Virtualisierung auf der Anwendungsebene ist, während KVM eine Virtualisierung auf der Systemebene ist.
Der Unterschied besteht darin, dass der Inhalt der Docker-Virtualisierung den Kernel mit dem Host teilen muss, was bedeutet, dass nur Systeme vom Typ Linux ausgeführt werden können.
KVM virtualisiert den gesamten Host, sodass verschiedene Betriebssysteme installiert werden können und nicht auf Linux selbst beschränkt ist. Wenn ich später einen Anfall habe, werde ich sehen, ob ich macOS unter Ubuntu virtualisieren kann. Auf diese Weise ist kein separater Mac-Host erforderlich, um die iOS-App automatisch zu kompilieren.
KVM installieren
Ich verwende hier die LTS-Version von Ubuntu 16.04. In Anbetracht der Langzeitnutzung und Stabilität wähle ich grundsätzlich nur die LTS-Version. Die anderen Versionen sind nicht allzu unterschiedlich, also beziehen Sie sich einfach darauf.
Der erste Schritt besteht darin, die KVM-bezogenen Paketdateien zu installieren. Da mein Server ausschließlich über die Befehlszeile verfügt und der X-Desktop nicht installiert ist, habe ich den Parameter --no-install-recommends hinzugefügt. Andernfalls werden Pakete wie virt-viewer installiert, deren Abhängigkeiten X11 und viele Grafikbibliotheken umfassen, die nicht benötigt werden. Wenn Sie jedoch das Desktop-System aktivieren, müssen Sie diesen Parameter nicht hinzufügen.
$ sudo apt-get install --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker
Lassen Sie uns überprüfen, ob alles in Ordnung ist
$kvm-ok
INFO: /dev/kvm existiert
KVM-Beschleunigung kann verwendet werden
Sehr gut, alles läuft gut, lasst uns ein weiteres Brückennetzwerk einrichten. Tatsächlich ist dies nicht notwendig, es hängt von Ihrem Nutzungsszenario ab.
KVM erstellt selbst ein virbr0-Bridge-Netzwerk, aber dies ist ein NAT-Netzwerk und es gibt keine Möglichkeit, mit anderen Hosts im LAN zu kommunizieren, also seien Sie nicht faul und bauen Sie selbst ein Bridge-Netzwerk auf.
Die Referenzkonfiguration ist wie folgt:
$ cat /etc/network/interfaces
# Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen
# und wie man sie aktiviert. Weitere Informationen finden Sie unter Schnittstellen (5).
Quelle /etc/network/interfaces.d/*
# Die Loopback-Netzwerkschnittstelle
auto lo
iface lo inet loopback
# Die überbrückte Netzwerkschnittstelle
auto br0
iface br0 inet static
Adresse 1.2.3.4
Netzmaske 255.255.255.0
Gateway 1.2.3.1
DNS-Nameserver 1.2.3.1
bridge_ports enp9s0
bridge_stop off
bridge_fd 0
bridge_maxwait 0
Starten Sie das Netzwerk neu und überprüfen Sie den Bridge-Status:
$ sudo systemctl Netzwerk neu starten
$ sudo brctl show
Brückenname, Bridge-ID, STP-fähige Schnittstellen
.BR0 8000.F079593874D9 Nein ENP9S0virbr0 8000.525400087ef2 ja virbr0-nic
OK, alles ist in Ordnung und Sie können mit der Erstellung des virtuellen Hosts beginnen.
Erstellen Sie einen virtuellen Host
KVM hat erst den ersten Schritt abgeschlossen, wir müssen noch einen virtuellen Host erstellen, bevor wir fortfahren können.Bevor wir beginnen, müssen wir ein paar Dinge vorbereiten:
1.Windows-Installationsabbild
2.Virtio ISO und Disketten-Image
3.VNC-Client (im Lieferumfang von macOS enthalten)
Ich verwende hier die Virtio-Version 0.1.126-2. Die Betriebssystemversion ist: Ubuntu 16.04.1 LTS.
Alles ist bereit. Verwenden Sie den Befehl virt-install, um die virtuelle Maschine zu erstellen:
virt-install
--Name win10
--Erinnerung 2048
--vcpus sockets=1,cores=1,threads=2
--cdrom=/path/to/windows_10.iso
--os-variant=win8.1
--disk /path/to/win10/win10.qcow2,bus=virtio,size=40
--disk /path/to/virtio/virtio-win-0.1.126_amd64.vfd,device=floppy
--network Bridge=br0,model=virtio
--graphics vnc,password=Passw0rd,port=5910
--hvm
--virt-type kvm
Grundsätzlich sind alle Konfigurationsinformationen oben aufgeführt. Die Konfiguration der virtuellen Informationsmaschine ist wie folgt:
2G Speicher1 CPU, 1 Kern, 2 Threads
1 CDROM (Windows-Installations-CD)
40-GB-Festplatte (Systemfestplatte)
1 Diskettenlaufwerk (Virtio-Treiber)
Öffnen Sie einen VNC-Remotedesktop auf Port 5910
Wenn Sie den Befehl richtig eingegeben haben, sollten Sie eine Rückmeldung ähnlich der folgenden erhalten:
Installation wird gestartet...
Domain erstellen...
Domain-Installation ist noch im Gange. Warten auf den Abschluss der Installation.
Um es einfach auszudrücken: Die virtuelle Maschine wurde erstellt, aber da es keine grafische Oberfläche gibt, gibt es keine Möglichkeit, fortzufahren. Sobald wir VNC verbunden haben, können wir fortfahren. Diese Aufforderung wird nur einmal angezeigt. Nach der Installation des Systems tritt diese Startwartesituation nicht mehr auf.
Installieren Sie Windows 10
Obwohl wir bei der Erstellung der virtuellen Maschine die Verwendung von Port 5910 für die Bereitstellung des VNC-Remotedesktops angegeben haben. Auf diesen Port kann jedoch nicht direkt zugegriffen werden, da er standardmäßig an 127.0.0.1 gebunden ist, was bedeutet, dass auf ihn nur lokal zugegriffen werden kann. Wir müssen zuerst den lokalen Remote-Port dem lokalen Port zuordnen.ssh -L 5910:127.0.0.1:5910 Server
Dann drücken Sie unter macOS ⌘ + Leertaste, um Spotlight aufzurufen, und geben Sie dann Folgendes ein:
vnc://127.0.0.1:5910
Geben Sie im Popup-Fenster das Passwort ein: Passw0rd
Dann können Sie das Windows-System problemlos installieren. Wenn die Festplatte nicht erkannt wird, müssen Sie den Treiber manuell laden und Laufwerk A und das entsprechende Windows-Verzeichnis auswählen. Wenn die Netzwerkkarte keinen Treiber hat, gilt die gleiche Methode.
Anbei ist ein Screenshot der abgeschlossenen Installation:
Das obige ist der detaillierte Inhalt vonLeitfaden zum Konfigurieren und Installieren von Windows-Betriebssystemen in KVM für Ubuntu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!