Windows Server 2025 on Ugreen NAS: Fixing annoying CPU Compatibility via CLI

I’ve been testing Windows Server 2025 in my HomeLab, specifically running on a Ugreen NAS. While Ugreen’s hardware is fantastic for storage, its virtualization manager (based on KVM/QEMU) sometimes applies default CPU settings that newer Windows kernels dislike.

Requirement – Preperation for Windows Server 2025 on Ugreen NAS

This is the lab setup:

  • UGREEN NASync DXP4800 Plus 4-Bay 10GbE NAS
  • Windows Server 2025 ISO File from November 2025
  • Most recent virtio-win ISO file – link
  • A Windows Server 2025 VM configured like this
    • All devices set to virtio
    • 2 CPU / 8 GB RAM
    • UEFI enabled
  • Completed the Windows Server 2025 installation (no patching, no domain join)
Windows Server 2025 on Ugreen NAS Preperation using the UI
Windows Server 2025 VM Settings Ugreen KVM

Problem – Issue with Windows Server 2025 on Ugreen NAS

I am getting the below error message after I installed a Windows Server 2025 on the Ugreen NAS using the integrated Virtualization solution. “BdsDxe: failed to load Boot0002 “UEFI Misc Device … Not found”

vm solution on ugreen 4800 plus issues v0 gjc3ekxxn13g1
vm solution on ugreen 4800 plus issues v0 gjc3ekxxn13g1

This happens in a reproducible way when domain joining a Window Server 2025 after installing it on the UGREEN NASync DXP4800 Plus.

Introduction: When the UI Isn’t Enough

We live in a modern world where web interfaces usually solve 90% of our problems. But as an IT Architect, I often say: “To fix the last 10%, you have to go back to the roots.”

If you are experiencing instability or boot issues with your Windows Server 2025 VM on Ugreen, the GUI won’t save you. You need to get your hands dirty with virsh (the command line interface for KVM).

This guide walks you through manually forcing the CPU model to a compatible standard (Skylake-Client-IBRS) to ensure stability. More details about this setting and values can be found here.

The Problem: Windows Server 2025 & KVM Defaults

By default, the virtualization manager might set your CPU mode to host-passthrough. Theoretically, this is great because it passes the host’s exact CPU features to the VM.

However, in practice—especially with the strict hardware requirements of Windows Server 2025—this “pass-through” can cause feature mismatches or instruction set errors on certain NAS CPUs. The fix is to define a “Custom” CPU model that presents a standard, stable architecture to the Windows OS.

The fix – Changing the default settings before the domain join

Prerequisites

Before we dive into the terminal, ensure you have:

  • SSH Access enabled on your Ugreen NAS.
  • Root credentials (you need full permissions).
  • The VM Name: Know what you named your VM in the web interface (e.g., “WinServer2025”).

Warning: We are editing XML configurations directly. A typo here can prevent the VM from starting. Proceed with caution.

Enable SSH for fixing Windows Server 2025 on Ugreen NAS
Enable SSH for fixing Windows Server 2025 on Ugreen NAS

Step-by-Step Implementation for Windows Server 2025 on Ugreen NAS

1. Connect via SSH

Open your terminal (I recommend Windows Terminal, obviously) and connect to your NAS.

ssh root@<IP-Address-of-Your-NAS>
# Enter your password when prompted

2. Identify the UUID (Don’t Trust the Name)

In KVM, the “Name” column often just displays the UUID. To be professionally competent, we verify we are touching the right machine. We don’t want to accidentally edit a Debian container when we mean to fix Windows.

List all VMs:

sudo virsh list --all
sudo list all VMs
sudo list all VMs

You will see a list of UUIDs. Test them until you find the one matching your Windows Server title:

sudo virsh dumpxml <UUID-FROM-LIST> | grep title 

Look for output like: <title>Windows Server 2025</title> Once found, copy that UUID.

grep UUID title to identify Windows Server 2025
grep UUID title to identify Windows Server 2025

3. Shut Down the VM

You cannot change virtual hardware while the machine is running.

sudo virsh shutdown <YOUR-WINDOWS-UUID>
shutdown Windows Server 2025 VMs
shutdown Windows Server 2025 VMs

Verify it is strictly “shut off”:

sudo virsh list --all
powered off Windows Server 2025 VMs
powered off Windows Server 2025 VMs

4. Edit the XML Configuration

Now for the “traditional” part. We will use vi to edit the configuration.

sudo virsh edit <YOUR-WINDOWS-UUID>

Instructions for vi:

  1. Scroll down using arrow keys until you find the <cpu ...> block.
  2. It likely looks like this (Default):XML<cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='6' threads='1'/> </cpu>
  3. Press i to enter Insert Mode.
  4. Replace that block with the following “Stable” configuration:XML<cpu mode='custom' match='exact' check='none'> <model fallback='allow'>Skylake-Client-IBRS</model> <topology sockets='1' dies='1' cores='6' threads='1'/> </cpu> (Note: Ensure cores='6' matches your actual assigned core count!)
  5. Press Esc, then type :wq and hit Enter to save and quit.
config file change to run Windows Server 2025 VMs
config file change to run Windows Server 2025 VMs

5. Restart and Verify

Power the machine back up:

virsh start <YOUR-WINDOWS-UUID>

Why Skylake-Client-IBRS to run Windows Server 2025 on Ugreen NAS

Skylake-Client-IBRS is a “safe harbor” CPU model in the virtualization world. It includes modern instruction sets required by Windows Server 2025 but abstracts away the specific quirks of the physical NAS processor. It also includes IBRS (Indirect Branch Restricted Speculation), which is critical for security mitigations (Spectre/Meltdown) that Windows expects to see present.

Conclusion

Deploying operating systems on edge appliances like Ugreen NAS requires a blend of modern ambition and traditional Linux skills. By manually defining the CPU topology in the XML, we trade a bit of “native performance” (passthrough) for guaranteed stability.

For an Architect, stability always wins.

Next steps for you: Check your Windows Event Logs inside the VM after booting. If the “Hardware Error” events are gone, you have successfully stabilized your build.

Happy Home-Labing!

If you have any questions please don’t hesitate to reach out to me on LinkedIn, Bluesky or check my newly created Adaptive Cloud community on Reddit.

LinkedIn: https://www.linkedin.com/in/andreas-hartig/
Bluesky: https://bsky.app/profile/hartiga.de
Adaptive Cloud community on Reddit: https://www.reddit.com/r/AdaptiveCloud/

References & Further Reading

As an architect, I believe in showing my work. Below are the official documentation sources used to validate this solution, along with links to connect with me for further discussion.

Technical Documentation

Spread the knowledge
Avatar for Andreas Hartig
Andreas Hartig - MVP - Cloud and Datacenter Management, Microsoft Azure

Related Posts

Azure Arc Agent 1.54 Stuck IT System Engineer Dragon concerned

Azure Arc Agent 1.54 Stuck? Fixing the WSUS Deadlock and Moving to 1.6x

Is your Azure Arc Agent 1.54 stuck and not updating? If that is the case you are in trouble. Azure Arc enabled servers operate on a strict twelve month support…

Spread the knowledge
Read more
IT operations dragon and the IT System Engineer dragon looking at a whiteboard showing Why Windows Server 2025 and WSUS are fine

Azure Arc – Enable Azure Arc Auto Updates using WSUS and GPOs

While our first part focused on the cloud-native way using Azure Portal and Policy, many IT administrators still prefer or require the reliability of on-premises control. In a traditional IT…

Spread the knowledge
Read more
WSUS Data Flow System Engineer with IT Architect and CISO

Windows Server 2025 – Part 9 (WSUS on Windows Server 2025)

WSUS on Windows Server 2025 continues In the previous parts of my Windows Server 2025 series, where I focused heavily on cloud-native management and the new features of Windows Server…

Spread the knowledge
Read more
Azure Arc Enable Azure Arc Auto Updates using Azure Portal

Azure Arc – Enable Azure Arc Auto Updates using Azure Portal

Azure Arc Auto Updates is key, as the foundation of your hybrid cloud strategy and it’s single contral plane in Azure is the Connected Machine Agent. While we often focus…

Spread the knowledge
Read more
CISO dragon and my IT architecture dragon looking at AGPM replacement

AGPM is End of Life on 14 April 2026

AGPM is End of Life on 14 April 2026. Microsoft’s Advanced Group Policy Management (AGPM) reaches its official End of Life (EOL) on April 14, 2026. After this date, the…

Spread the knowledge
Read more
Winget and IaC SystemEngineerDragon

WinGet and IaC – Take Winget to the next level

WinGet and IaC are maybe your next step to automate your environment. In the past, managing third-party applications on Windows meant 3rd party tools or gathering MSI installers on network…

Spread the knowledge
Read more