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:
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.
