Vultr and Virtio Part 1 – Creating a Custom Windows ISO
In the past, I’ve had difficulty creating Windows virtual machines with Vultr and other VPS providers that require a custom ISO with VirtIO drivers. This post is primarily a how‑to so I can follow the process again in the future, but hopefully others will find it useful as well.
This is the first in a two‑part series and covers creating and uploading the custom ISO. The follow‑up post will cover using that ISO to create a VM.
Requirements
- Base Windows ISO
- ImgBurn (or similar)
- VirtIO drivers
Acquire Your Base ISO
To create a custom ISO you’ll need a vanilla version of the Windows OS you plan to install. At the time of writing, Microsoft provides free evaluation ISOs which can be used temporarily or activated later with a valid licence key.
Evaluation and download options are available at:
- Microsoft Evaluation Centre: https://www.microsoft.com/en-us/evalcenter/
- Windows Server: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016
- Windows 10 Enterprise: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise
Microsoft will request contact details before allowing downloads. If you prefer not to use your primary email address, temporary email services can be useful:
Download the Latest VirtIO Drivers
The most reliable source for Windows VirtIO drivers is the Fedora Project:
VirtIO-Win downloads documentation
Download the latest stable VirtIO ISO appropriate for your Windows version.
Download and Install ImgBurn
ImgBurn is used to combine the Windows installation files and VirtIO drivers into a single bootable ISO.
It can be downloaded from http://www.imgburn.com/index.php?act=download.
Putting It All Together
Once you’ve downloaded and installed all the components, follow these steps to produce a custom Windows ISO containing the VirtIO drivers. These steps assume all files are staged under a directory called customiso.
- Extract the contents of the Windows ISO to \customiso\Windows
- Extract the contents of the VirtIO ISO to \customiso\Windows\virtio
- Open ImgBurn
- Select Create image file from files/folders

- Add the customiso directory as the source

- Specify the output file path and ISO filename

- Configure the Options tab as shown below

- Configure the Labels tab

Under Advanced → Bootable Disc, configure the boot image. The Boot Image should be set to:
\customiso\Windows\boot\etfsboot.com

All other settings can be left at their defaults
- Click Build

When the ImgBurn process completes, you will have a bootable Windows ISO with VirtIO drivers embedded.
Upload to Vultr
There are several ways to upload the ISO into your Vultr account:
- Dropbox: simple, but limited by the 2 GB storage cap on free accounts
- Amazon S3 or Google Cloud Storage: suitable if you already use these services
- Temporary web server: often the simplest approach
In my case, I uploaded the ISO to an existing Linux web server using scp:
scp Windows10Enterprise_vultr.iso user@server_ip:/var/www/html
Once uploaded:
- Navigate to the ISO section in the Vultr control panel

- Click Add ISO

- Provide the public URL of the uploaded ISO

- Click Upload
After the upload completes, the ISO will be available for VM creation. The next post in this series will cover deploying a Windows VM using the custom ISO.
