Änderungsstand: 2025-10-01
Info am Anfang – Auf CachyOS habe ich Probleme WinBoat zuverlässig am Laufen zu halten. Es könnte an meine Kernel-Optimierungen liegen oder am System selbst. Da ich es nicht zwingend benötige, suche ich auch nicht nach Fehlern.
WinBoat auf CachyOS:
Warum tue ich mir das an – wo ich doch eigentlich glücklich damit bin, Windows komplett den Rücken gekehrt zu haben? Ganz einfach: Ich programmiere ab und zu in VBA. Und dafür brauche ich – leider, leider – dieses Microsoft Office. Auch wenn ich es gefühlt nur alle halbe Jahre mal starte, ganz ohne geht’s eben doch nicht.
Neuer Stand – – > es geht auch ohne – man muss nur wollen 🙂
Vorarbeit:
sudo pacman -Syu docker docker-compose freerdp
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
sudo usermod -aG kvm $USER
newgrp kvm
sudo chown root:kvm /dev/kvm
sudo chmod 660 /dev/kvm
ls -l /dev/kvm
Ich musste anschließend einmal neu starten, weil der Prüfmechanismus von WinBoat partout nicht glauben wollte, dass Docker korrekt installiert ist. Der folgende Befehl war bei mir dann wohl überflüssig – aber sicher ist sicher:
Gegebenenfalls noch:
echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf
WinBoat:
Download hier: https://github.com/TibixDev/winboat?tab=readme-ov-file
oder hier: https://www.winboat.app
oder als native Installation (z.B. auf Arch-Linux):
paru -S winboat-bin
Auf der Download-Seite unter Releases das AppImage herunterladen. Danach Rechtsklick → Eigenschaften → Reiter Berechtigungen → Häkchen bei „Datei als Programm ausführen“. Und dann: ablegen, durchatmen, starten.

Hat man dieses Bild ohne Fehler geht es auch schon weiter.

Hier wählte ich ein eigenes Image. Es sollte aber auch komplett ohne Image funktionieren – Internetverbindung vorausgesetzt.

Hier meine Anmeldedaten eingeben. Der verwendete User wird schon erkannt.

Nun noch geeignete Werte verwenden (etwas realistisch sollte es dann doch sein).

Ok – es geht los.

Installation beendet.

Nun kann WinBoat entweder einen vollständigen Windows-Desktop starten oder einzelne Windows-Apps direkt ausführen – ganz ohne den Umweg über den Desktop. Da ich mich jedoch mit meinem Microsoft-Konto anmelde, benötige ich beim ersten Start den vollständigen Desktop.

Nun noch schnell registrieren, ein paar Windows-Updates durchlaufen lassen – und fertig. Das Office-Paket kann ich nach der Anmeldung direkt installieren, da es in meiner damaligen Lizenz bereits enthalten war.
Fazit:
Ich bin echt positiv überrascht. Keine Sorge – ich bin nicht rückfällig geworden, Windows bleibt weiterhin da, wo es hingehört: weit weg von meinem Hauptsystem. Aber was WinBoat hier abliefert, ist wirklich der Hammer.
Die Geschwindigkeit ist einfach nur irre. Man vergisst fast, dass da im Hintergrund eine komplette Windows-VM läuft. WinBoat setzt auf FreeRDP, und das macht sich bemerkbar – alles fühlt sich flüssig, direkt und irgendwie… verdächtig „echt“ an.
Klar, meine Hardware ist aktuell, aber trotzdem: Das, was hier an Performance rauskommt, lässt so ziemlich alles alt aussehen, was ich bisher an Remote- oder Virtualisierungslösungen gesehen habe. Und wenn man dann noch bedenkt, dass Windows eigentlich nur im Container läuft, dann ist das schon ziemlich beeindruckend.
Kurz gesagt: Ich mag Windows immer noch nicht – aber WinBoat? Das Teil hat mich wirklich beeindruckt.
Nur für den Fall der Fälle:
paru -Rns winboat-bin
sudo nano clean_winboat_full.sh
#!/bin/bash
# Skript: clean_winboat_full.sh
# Zweck: Sämtliche WinBoat-Reste im Home-Verzeichnis und systemweit entfernen!
# Achtung: Das Skript löscht sich selbst nicht!
# Name des Skripts selbst
SELF="$(realpath "$0")"
echo "Suche nach WinBoat-Resten im Home-Verzeichnis..."
mapfile -t home_files < <(find ~ -iname '*winboat*' ! -path "$SELF")
echo "Suche nach WinBoat-Resten im System (/opt, /usr/share, /usr/local)..."
mapfile -t system_files < <(sudo find /usr/local /opt /usr/share -iname '*winboat*')
all_files=("${home_files[@]}" "${system_files[@]}")
if [ ${#all_files[@]} -eq 0 ]; then
echo "Keine WinBoat-Reste gefunden."
exit 0
fi
echo "Folgende Dateien/Ordner wurden gefunden:"
for f in "${all_files[@]}"; do
echo " $f"
done
echo
read -p "Möchtest du alle diese Dateien/Ordner löschen? (Y/n) " confirm
confirm=${confirm,,} # Kleinbuchstaben
if [[ "$confirm" == "y" || "$confirm" == "" ]]; then
# Home-Verzeichnis löschen
for f in "${home_files[@]}"; do
if [ -d "$f" ]; then
rm -rf "$f" && echo "Ordner gelöscht: $f"
else
rm -f "$f" && echo "Datei gelöscht: $f"
fi
done
# Systemweite Dateien löschen
for f in "${system_files[@]}"; do
if [ -d "$f" ]; then
sudo rm -rf "$f" && echo "System-Ordner gelöscht: $f"
else
sudo rm -f "$f" && echo "System-Datei gelöscht: $f"
fi
done
echo "Alle WinBoat-Reste wurden entfernt."
else
echo "Löschvorgang abgebrochen."
fi
sudo chmod +x clean_winboat_full.sh
./clean_winboat_full.sh
docker system prune -a
Achtung! Alle Docker werden gelöscht!