Windows Server 2025 on a VPS — Complete Setup Guide
A complete manual walkthrough for installing Windows Server 2025 on any Ubuntu 24.04 VPS — from choosing your server and downloading the ISO right through to a live RDP session. Every command is copy-paste ready. Takes 1–3 hours depending on your experience and server speed.
01Overview & What You’ll Need
This guide walks through the complete manual process of installing Windows Server 2025 on a Linux-based VPS. This is the technically involved approach — using SSH, command-line tools, and disk imaging to replace the Linux OS with Windows Server. If you’re comfortable with a terminal, it’s entirely achievable. If you’d rather not, skip to the bottom for our automated option.
Windows Server 2025 was released on 1 November 2024 and is Microsoft’s most recent server OS, based on Windows 11 24H2. It brings improved NVMe storage performance (up to 90% more IOPS), enhanced security with Credential Guard enabled by default, and better virtualisation support — making it an excellent choice for VPS deployments.
System Requirements
| Component | Minimum | Recommended for VPS |
|---|---|---|
| Operating System (base) | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS x64 ✓ |
| RAM | 8 GB | 16 GB for production workloads |
| vCPU | 2 vCPU (64-bit, 1.4 GHz+) | 4 vCPU for Desktop Experience |
| Disk Space | 60 GB SSD | 80–100 GB NVMe SSD |
| Network | SSH access (port 22) · Static IP | |
| SSH Client | PuTTY (Windows) or Terminal (macOS/Linux) | |
| Windows ISO | Evaluation ISO from Microsoft Evaluation Center (free 180-day eval) | |
The installation process completely replaces the operating system. Every file, application, and configuration currently on your VPS will be destroyed. Take a snapshot or backup before proceeding.
02Get Your VPS
You need a VPS running Ubuntu 24.04 LTS with at least 8 GB RAM and 60 GB disk. Any major provider works — Hetzner and Contabo offer the best value for the specs Windows Server 2025 requires. If you’re new to DigitalOcean, their $200 free credit for new accounts makes it free to test for months.
Once your VPS is provisioned with Ubuntu 24.04, make a note of:
- Your VPS IP address — shown in your provider dashboard
- Root password — set during provisioning
- Your disk device name — usually
/dev/sdaor/dev/vdadepending on the provider
03Prepare the Server
SSH into your Ubuntu VPS as root. If you’re on Windows use PuTTY; on macOS/Linux use Terminal.
Once logged in, update the system and install required tools:
Identify your disk device and note its name — do not use the wrong device or you will wipe the wrong disk:
DigitalOcean and OVH typically use /dev/sda. Hetzner uses /dev/sda on CX plans and /dev/nvme0n1 on NVMe plans. Contabo typically uses /dev/sda. Replace DISK in all commands below with your actual device name.
04Download the Windows Server 2025 ISO
Download the official Windows Server 2025 Evaluation ISO directly from Microsoft’s Evaluation Center — it is completely free for a 180-day evaluation period, no licence key required. The ISO is around 5.5 GB so this step will take several minutes depending on your server’s internet speed.
First, grab your direct download URL from the Microsoft Evaluation Center (register for free), then download directly to your server:
Mount the ISO to access its contents, and copy the VirtIO drivers (required for disk and network access on virtual hardware):
Download the VirtIO drivers ISO — these are essential for Windows to detect the virtual disk and network adapter on most VPS platforms. Without them, Windows will install but won’t have network access.
05Partition the Disk
Before writing the Windows image, you need to set up the partition table. We’ll use GPT partitioning with a small EFI System Partition (ESP), a Windows system reserved partition, and the main Windows partition.
Replace /dev/sda with your actual disk device throughout.
The next commands will wipe all existing data on the disk. Triple-check you have the correct disk device name from Step 3 before running these commands. There is no undo.
Format the EFI partition as FAT32:
06Write the Windows Image
Install the wimtools package to extract the Windows installation files from the WIM image inside the ISO, then apply it directly to the disk partition. This is more reliable than using dd as it correctly handles the Windows partition format.
Apply the Windows image. We target index 2 which is Windows Server 2025 Standard with Desktop Experience (GUI). Use index 1 for Server Core (command-line only):
Copy the boot files from the ISO to the EFI partition and configure the Windows bootloader:
Inject the VirtIO storage driver into the Windows image so the disk is detected at first boot:
If dism is not available on your Ubuntu system (it’s a Windows tool), you can inject drivers using wimlib-imagex instead: apt install wimtools, then use wimupdate to add the driver .inf files to the Windows image before applying it.
07Pre-Configure Static Network Settings
Unlike Linux, Windows on a VPS won’t automatically detect the correct network settings via DHCP in all cases. You can pre-configure a static IP response by creating an unattend.xml answer file that configures the network, disables the firewall for initial access, and sets the Administrator password.
Get your VPS network details from your provider dashboard before creating this file. You’ll need: IP address, subnet mask, gateway IP, and DNS servers.
Create the unattend.xml answer file that Windows reads on first boot to configure itself automatically:
cat > /mnt/windows/Windows/System32/sysprep/unattend.xml << 'EOF'
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup"
processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"
language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<Value>YourStrongPassword123!</Value> <!-- CHANGE THIS -->
<PlainText>true</PlainText>
</AdministratorPassword>
</UserAccounts>
</component>
<component name="Microsoft-Windows-International-Core"
processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"
language="neutral" versionScope="nonSxS">
<InputLocale>en-GB</InputLocale>
<SystemLocale>en-GB</SystemLocale>
<UILanguage>en-GB</UILanguage>
<UserLocale>en-GB</UserLocale>
</component>
</settings>
</unattend>
EOF
08Pre-Enable RDP & Disable Firewall
By default, Windows Server 2025 has RDP disabled and the firewall blocking port 3389. You can pre-configure both by editing the Windows registry from Linux before rebooting. This ensures you can connect immediately after first boot without needing console/VNC access.
Add a RunOnce registry entry to disable the Windows Firewall on first boot, which ensures RDP connectivity before you’ve had a chance to configure firewall rules:
09Unmount, Reboot & First Connection
With the image applied, drivers injected, bootloader configured, and RDP pre-enabled, it’s time to cleanly unmount everything and reboot into Windows.
Windows first boot takes 10–20 minutes as it completes hardware detection, driver installation, and initial setup. Then connect via RDP:
Once connected, run Windows Update immediately to get the latest security patches:
Change the Administrator password to something strong and then re-enable the firewall with RDP allowed:
10Troubleshooting Common Problems
Server won’t boot after reboot
The most common cause is an incorrect bootloader configuration. If your VPS provider supports it, boot into rescue mode, remount the partitions, and check the EFI/boot configuration. Alternatively, verify the disk device name was correct — using /dev/vda on a KVM VPS when you configured /dev/sda will cause boot failure.
RDP connects but black screen
This is normal on first boot. Windows needs up to 5 minutes to complete its initial setup after the first RDP connection. Disconnect and try again after 2–5 minutes. If it persists, check that the TermService (Remote Desktop Services) is running via the VNC/console.
No network after Windows boots
The VirtIO NetKVM driver wasn’t injected correctly, or Windows defaulted to DHCP but the VPS uses a static IP. Connect via VNC/console (most providers offer this), open Device Manager and install the network driver manually from the VirtIO ISO, then configure a static IP from Network Settings.
Activation & Licence
Your Windows Server 2025 Evaluation will run for 180 days before requiring activation. To check remaining evaluation time:
11Frequently Asked Questions
Is Windows Server 2025 free to use on a VPS?
Microsoft offers a free 180-day evaluation via the Microsoft Evaluation Center. After 180 days, you need a valid licence to continue using it. See our licensing disclaimer for details on purchasing a genuine licence.
Server Core or Desktop Experience — which should I choose?
For VPS use with RDP: choose Desktop Experience (index 2). This gives you the full Windows GUI, Server Manager, and all the tools you’d expect. Server Core (index 1) is command-line only and uses less RAM, but requires all management to be done via PowerShell remotely — it’s for advanced users only.
Why do I need VirtIO drivers?
Most VPS platforms (KVM-based) use virtualised hardware that Windows doesn’t have built-in drivers for. VirtIO drivers are open-source drivers from the Red Hat/Fedora project that give Windows fast, efficient access to the virtual disk (vioscsi/viostor) and network adapter (NetKVM). Without them, Windows either won’t see the disk during installation or won’t have network access after booting.
This looks very complex — is there an easier way?
Yes — that’s exactly what OS Installer is for. It automates this entire process: ISO download, driver injection, partitioning, bootloader configuration, and RDP setup — all from a simple web interface. You enter your VPS credentials, click Install, and come back in 45 minutes to a working Windows Server. See below.
Rather Skip All of That?
The manual process above takes 1–3 hours and requires solid Linux knowledge. OS Installer does the exact same thing automatically — in about 45 minutes, from a simple web form. No terminal. No driver hunting. No partitioning. Just enter your VPS details and click Install.
