Inhaltsverzeichnis
Benötigte ISO's herunterladen
Fangen wir vorne an und besorgen uns erstmal die aktuellste Windows 10 iso offiziell von Microsoft. Dazu laden wir das Windows 10 Media Creation Tool herunter.


Wir wählen die Sprache und Architektur aus und klicken auf “Weiter”. Nun legen wir fest, dass wir eine ISO-Datei herunterladen möchten, legen den Speicherort fest und diese wird im Anschluss heruntergeladen.
Ich schreibe gerne immer noch die Version und das aktuelle Datum hinter den Dateinamen.
Jetzt brauchen wir noch die VirtIO Treiber. Diese benötigen wir um bei der Erstellung der VM bessere Einstellungen wählen zu können.
Kopiere dir den Download Link, entweder zur “latest Stable” oder der “most Recent” Version und klicke in Proxmox auf “Download from URL”. Füge ihn dort ein und benenne deine Datei am besten “virtio-win-latest.iso“.
Warum genau so? Das kläre ich in einem weiteren Beitrag sehr bald auf!
Sobald es Kommentare zum Video gibt, wird hier eine Auswahl angezeigt.






Den Guide als Video?
Erstellen der VM: "General"-Tab

Angekommen in General Tab definieren wir hier zuerst eine ID. Ein paar Worte dazu: Die ID ist da, damit Proxmox weiß um welche VM bzw welchen Container es sich handelt. Also eine Identifizierung für Proxmox selbst. Die ID lässt sich nicht auch im nachhinein nicht mehr so leicht ändern.
Bei den IDs sollte man sich jetzt also überlegen wie man seine VMs aufbaut. Natürlich kann man jede mögliche ID nehmen doch eine gewisse Struktur tut dem Auge und auch dem arbeiten mit und an der Shell später gut.
Eine Idee wäre es die ID gleichzusetzen mit der IP Adresse welche man der VM nachher zuweisen möchte. Also das Ende der IP Adresse. Für meinen Proxmox Server an dem wir aktuell arbeiten und den ich nur zu Test und Veranschaulichungszwecken aufgesetzt habe nehme ich jetzt mal die IP Range ab 170 aufwärts.
Aus dem Grund weise ich der VM jetzt die ID 171 zu. In meinem Router definiere ich später dann für die VM die feste IP-Adresse 10.0.1.171.
So weiß ich immer genau welche IP Adresse zu welcher VM bzw Container gehört und das macht mir das zugreifen per SSH bzw. Remote Desktop nachher deutlich einfacher.
Auch legen wir noch einen Namen fest, dieser ist nur für uns gedacht, das heißt Proxmox selbst ist es egal welchen Namen wir verwenden.
Mir sind keine internen Zuweisungen von Proxmox auf die Namen bekannt.
Daher lässt dieser sich auch im Nachhinein ganz einfach über den “Options” – Tab der VM anpassen.
Auch hier möchte ich nicht einfach irgendwas reinschreiben, ich strukturiere die Namen so, dass ich beginnend mit dem System welches die VM verwendet also hier Windows eine Abkürzung dafür nehme und das mittels Strich trenne um die VM zu benennen welchen Zweck diese hat.
Diese VM hat nur den Zweck zu zeigen wie man eine solche aufsetzt, also kurz gesagt nenne ich diese VM “win-test”.
Um ein weiteres Beispiel zu nennen würde eine Ubuntu VM die Grafana hostet “ubu-grafana” heißen. Lass deiner Phantasie freien Lauf und strukturiere deine IDs und Namen gleich von Anfang an.
Erstellen der VM: "OS"-Tab

Hier wählen wir zuerst die Windows Image aus die wir eben auf den Server hochgeladen haben.
Auf der rechten Seite wählen wir noch den Typ des Betriebssystems aus.
Das machen wir weil Proxmox dann schon einige Voreinstellungen für uns trifft.
Erstellen der VM: "System"-Tab

Wir hätten hier die Möglichkeit die Emulation der Grafikkarte auszuwählen. Wenn man bestimmte Auflösungen braucht, kann man mit “SPICE” herumspielen aber das ist für uns nicht relevant, wir lassen die Einstellung also auf “Default”.
Bei Machine haben wir die Optionen i440fx und q35. Das sind Chipsets und sie unterscheiden sich im Detail. Das aufzudröseln würde den Rahmen sprengen, wir schalten auf “q35”. Das kann uns auch Vorteile bringen wenn wir eine Grafikkarte an das System weiterreichen wollen.
Beim BIOS sieht es ähnlich aus. Performance-technisch unterscheidet sich das Default: SEABios nicht von OVMF (UEFI).
UEFI wird aufjedenfall dann gebraucht wenn du von einem PCI Gerät booten möchtest. Zum Beispiel eine nvme SSD. Auch unter SEABios wirst du diese SSD an das System weiterreichen können, so dass die VM vollen Zugriff darauf hat, aber du kannst nicht davon booten.
SEABios ist eine Art “traditionelles BIOS”. Traditionelles BIOS ist veraltet, wenn jetzt auch nicht unbedingt in der Emulation bzw. Virtualisierung. Wenn immer möglich verwende ich UEFI.
Für UEFI braucht man aber einen “EFI-Storage”. Eine “EFI-Disk” die wir anlegen. Das ist ein sehr kleiner Speicher. Vielleicht 4 MB, oder sowas in der Richtung.
Den SCSI Controller stellen, bzw lassen wir auf VirtIO SCSI. Die anderen Optionen hier zu durchleuchten würde technisch kompliziert werden und mit VirtIO SCSI fährt man sehr gut.
TPM lassen wir nach Möglichkeit aus, da es Nachteile bieten kann. Wenn du Windows 11 verwendest benötigst du es allerdings, das stellt Proxmox dir aber auch dann entsprechend ein.
Erstellen der VM: "Disks"-Tab

Kommen wir zu den Disks. Dem Speicherplatz deiner virtuellen Maschine.
Wir haben hier mehrere Optionen. IDE ist die letzte Option die wir wählen, IDE ist mit Abstand am langsamsten.
SCSI ist schneller und läuft ohne zusätzliche Treiber. Die beste Wahl ist hier dennoch VirtIO Block. VirtIO Block bietet die schnellste Schreibgeschwindigkeit, benötigt aber unter Windows zusätzliche Treiber. Diese haben wir eben zusammen heruntergeladen und auf den Server gespielt.
Wir wählen hier also VirtIO Block aus und den Speicherort, in diesem Fall haben wir nur local-lvm als Option. Zuletzt noch die Festplattengröße auswählen, ich definiere hier für das Testsystem mal 128 Gigabyte, was für unseren Zweck hier vollkommen ausreicht. Man kann im Nachhinein noch weiteren Speicher anhängen oder sogar eine dedizierte Platte bzw SSD an das System weiterreichen.
Auf der rechten Seite können wir mit den Cache noch etwas optimieren. Die Standardeinstellung, also kein Cache, bietet aber für Windows das beste Verhältnis aus Performance und Sicherheit.
Stellen wir den Cache auf “writeback” ist das die schnellste Option, doch bei einem Stromausfall oder ähnlichem können Daten verloren gehen.
Directsync wäre die sicherste Option aber gleichzeitig auch langsamste wenn man sie mit den anderen vergleicht.
Das nur kurz zum Cache. Den lassen wir also Standard auf No Cache.
Seit Proxmox Version 7 kann man über Bandwith auch Lese- und Schreibgeschwindigkeiten begrenzen, das kann bspw. hilfreich sein, wenn man sein NAS System priorisieren möchte.
Erstellen der VM: "CPU"-Tab

Im nächsten Schritt unter CPU sehen wir Sockets, das wäre die Anzahl der verbauten CPUs und nun definieren wir die Anzahl der Kerne. Zu beachten ist hier, dass Proxmox einen Virtuellen Kern ebenfalls als einen Kern zählt. Wenn du dir unsicher bist wieviele Kerne deine CPU hat dann sieh einmal im Hauptfenster unter deinem Server in der Summary nach. Ich habe hier 12 Kerne und möchte dem System in diesem Fall mal die Hälfte, also 6 zuweisen.
Anders als bei zum beispiel Unraid kann man hier Proxmox nicht sagen welche 6 Kerne genau es verwenden soll. Das teilt sich Proxmox dynamisch je nach Last selbst ein.
Kommen wir zum CPU Type. Du kannst dies auf Standard lassen, so dass deine CPU emuliert wird. Für die beste Performance reichst du aber am besten die CPU direkt an das System weiter, dafür scrollst in der Liste nach unten und wählst den Type “host”.
Den Nachteil den ich an der Sache sehe ist, wenn du deine VM mal exportieren und auf einem anderen Server installieren willst in dem eine andere CPU verbaut ist kann es hier zu Problemen kommen.
Das nachträgliche wechseln des CPU Typen kann funktionieren, wird aber nicht immer klappen.
Du solltest dir also genau überlegen ob du etwas Overhead durch die Emulation in Kauf nehmen möchtest oder ob du volle Performance willst und nicht vor hast die VM auf einem anderen Server mit anderer CPU zu installieren.
Letzteres ist bei mir nicht der Fall, ich wähle also Host.
Erstellen der VM: "Memory"-Tab

Zum Tab Memory gibt es nicht viel zu sagen, ich würde der Sauberkeit halber aber immer RAM korrekte Werte eintragen. Also zum beispiel 1024 für einen Gigabyte RAM, 2048 für zwei, usw.
Bei deutlich mehr Ram einfach den Taschenrechner öffnen und bspw. 1024 x 16 rechnen, wären 16.384 MB Ram, equivalent zu 16 ganzen Gigabyte.
Erstellen der VM: "Network"-Tab

Wir haben hier verschiedene Adapter Möglichkeiten. Die mit Abstand schnellste davon ist wieder VirtIO. VirtIO ist im Gegensatz zu den anderen Modulen nicht emuliert. Es ist Paravirtualisiert, einfach gesagt bedeutet das, dass der Adapter weiß er arbeitet in einer VM und leitet den Netzwerkverkehr zwischen der VM und dem Host System auf bestmögliche weise weiter.
Die anderen Optionen sind interessant für sehr alte Betriebssysteme die keine VirtIO Treiber unterstützen. Für Windows 10 allerdings sollte VirtIO IMMER die Erste Wahl sein.
Voreinstellungen und Starten der VM

Bevor wir die VM jetzt starten gehen wir einmal in den Options Tab und stellen ein, dass sie automatisch startet wenn der Server bootet.

Wir wechseln noch in den Hardware Tab und fügen ein neues Laufwerk hinzu. Suchen uns die VirtIO Treiber Disk raus, fügen diese hinzu und starten im Anschluss die VM.
Dazu wechseln wir in die Konsole und klicken in der Mitte auf “Start Now”.


Sollte die Aufforderung kommen per Tastendruck von CD bzw DVD zu booten kommen wir der Bitte natürlich nach, das sollte bekannt sein und auch der Installationsprozess von Windows selbst unterscheidet sich nicht.
Bis auf die Tatsache, dass wir die VirtIO Treiber laden müssen.
Wir klicken also auf Treiber laden und Durchsuchen, öffnen die VirtIO Disk und finden ganz oben amd64 und hier w10.
Mit einem Klick auf “OK” und “Weiter” werden diese geladen und unsere Disk erkannt.
Jetzt kann der Installationsprozess wie gewohnt fortgesetzt werden.
Innerhalb der VM: Treiber laden

Nach Abschluss der Installation haben wir noch kein Netzwerk.
Dafür installieren wir die kompletten VirtIO Treiber nun ein letztes mal.
Wir öffnen also den Explorer, navigieren zu Dieser PC, öffnen die Treiber CD und starten das Installationsprogramm “virtio-win-guest-tools”
Sollte die Installation hängen bleiben, dann liegt das an einem Bug der aktuell in beiden Chipsätzen bekannt ist. Um das zu beheben stoppen wir die VM über das Proxmox GUI und wechseln zum Hardware Tab. Bei Machine q35 wählen wir jetzt die Version 5.1 aus.
Nach dem Start der VM sollte alles wie gewohnt laufen.
Installiert sind alle Treiber und wir haben auch schon Internet in der VM.
Wenn man möchte können nun die Treiber und die Windows Disk im Hardware Tab wieder entmounted werden.
Remotedesktop aktivieren
Hier geben wir ipconfig ein und unsere Netzinterne IP Adresse wird angezeigt.
Wie bereits erwähnt würde ich an dieser Stelle der VM die IP Adresse 10.0.1.171 im Router zuweisen.
Wie das funktioniert ist aber wieder von Router zu Router unterschiedlich und da die VM hier ausschließlich der Veranschaulichung dient und gleich wieder gelöscht wird überspringe ich diesen Schritt jetzt.
Dennoch können wir nun von unserem Hauptrechner über Windows Remote Desktop auf die VM zugreifen, dafür geben wir die IP Adresse ein die uns in der IPConfig angezeigt wird.
Snapshot einer VM
Nun möchte ich dir noch kurz die Snapshots vorstellen.
Wenn man jetzt das Dokument löscht und dann einen Rollback auf den eben erstellten Snapshot durchführt wird sogesehen die Zeit zurückgedreht zu dem Punkt wo der Snapshot erstellt wurde.
Das Dokument ist dann wieder da.
Ich hoffe dir hat mein Beitrag für die perfekte Windows VM innerhalb Proxmox gefallen und ich würde mich freuen wenn du mir Feedback dalässt.
Wenn du meine Arbeit unterstützen möchtest kannst du das gerne tun indem du bei Amazon über diesen Link einkaufst. 🙂
- Chris
- März 15, 2022
- 6:55 pm
- No Comments