So mancher von uns hat das Problem, dass man leider nicht alle Programme unter FreeBSD laufen lassen kann.
Mir geht es da genauso. 2 Programme gibt’s halt nicht unter FreeBSD und die wine-/PlayonBSD- Unterstützung ist hier nicht komplett. Also, nicht dass der Leser glauben mag, ich lehne diese ab. Nein, nur es laufen halt nicht alle Funktionen der Programme, wenn ich diese unter wine laufen lasse. Besonders die regelmäßigen Updates, die man halt doch braucht, gehen nicht.
Also habe ich mir eine Windows10 VM unter bhyve gebaut. Wie ich das gemacht habe, findet ihr unter diesem Artikel und unter diesem.
Wie man mittlerweile weiß, endet der Support für Windows10 im Oktober 2025. Und man kann jetzt nach Vogel-Strauß-Methode, den Kopf in den Sand stecken und abwarten, bis das Ende naht oder man macht das Upgrade auf Windows11.
Ich habe mit entschieden das Upgrade zu wagen, nachdem das TPM-Modul mittlerweile auch erkannt wird und Windows mich darauf aufmerksam gemacht hat, dass einem Upgrade nichts mehr im Wege steht. Hier die Konfiguration meiner bhyve-Windows10-VM.
loader="uefi"
cpu=4
cpu_sockets=1
cpu_cores=2
cpu_threads=2
memory=16G
graphics="yes"
graphics_port="5910"
graphics_listen="127.0.0.1"
graphics_res="1920x1080"
graphics_wait="auto"
xhci_mouse="yes"
disk0_dev="file"
disk0_type="nvme"
disk0_name="windows10.img"
network0_type="virtio-net"
network0_switch="public"
network0_mac="xx:xx:xx:xx:xx:xx"
bhyve_options="-AHP -l tpm,passthru,/dev/tpm0 -l com1,/dev/nmdm0A"
uuid="c430fa0f-3ad1-1xx9-axx6-0024xxxxxd30"
utctime="no"
Ich habe die Daten aus Sicherheitsgründen etwas angepasst, den man soll ja im Netz nicht alles ungefiltert abspeichern. Die Struktur der Daten ist aber richtig.
Zunächst fährt man die VM runter und erstellt einen Snapshot von der VM
# vm snapshot windows10
Wenn man nun die Info der VM aufruft, kann man den Snapshot unten finden:
# vm info windows10
------------------------
Virtual Machine: windows10
------------------------
state: stopped
datastore: default
...
snapshots
home/freebsd/bhyveVMs/windows10@2024-09-15-16:12:27 37.2G So. Sep. 15 16:12 2024
Schnell an’s Werk dachte ich mir und klone nun die VM.
# vm clone windows10@2024-09-15-16:12:27 windows11
Fertig? Das ist ja einfach, dachte ich mir und startete die VM und führte das Upgrade durch.
Das Upgrade verlieft mit mehreren Reboots erfolgreich durch und siehe da Windows11 startete mit meinen lokalen Zugängen. Das war mir wichtig, denn ich wollte den lokalen Admin und meinen lokalen Benutzer nicht verlieren. 😉
Alles lief prima, nur merkte ich, dass diese Version von Windows11 nicht mehr aktiviert war und eine nachträgliche Aktivierung war wegen der Lizenz nicht mehr möglich (Hä?). 🙁
Nach einer kleinen Recherche, habe ich heraus gefunden was der Grund für diesen Fehler war.
Beim Klonen einer VM wird die uuid in der neuen VM in der Konfiguration beim Neustarten neu erstellt. Genauer gesagt wird in die neue Konfiguration keine uuid eingetragen und somit beim ersten Starten der VM neu erstellt.
Man möchte anscheinend so eine neu Hardware-ID für das OS simulieren.
Die uuid soll dafür sorgen, dass das OS glaubt es läuft noch auf „bestimmter Hardware“. Eine neue uuid bedeutet, dass sich etwas geändert hat. Windows spricht hier von einem „neuen Mainboard“.
Damit das Upgrade klappt muss man einfach, nachdem man die VM geklont hat, die uuid von der Windows10-VM in die Konfiguration der Windows11-VM übertragen, bevor man die VM das erste Mal startet.
In meinem Beispiel bin ich in den Ordner gegangen, in dem bhyve die VMs ablegt, und habe dort mit folgenden Befehl die uuid übertragen.
# grep uuid ./windows10/windows10.conf >> ./windows11/windows11.conf
Da in der neuen bhyve-Konfiguration noch keine uuid steht, wird diese übernommen.
Die VM kann man nun starten. Ich habe noch einmal überprüft, ob die Windows10 Maschine noch aktiviert ist und dann das Upgrade erfolgreich durch geführt.
So kann man zumindest unter bhyve ganz einfach von Windows10 auf Windows11 wechseln.
Viel Erfolg! 🙂