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 which require the creation of a custom ISO that includes the virtio drivers. To remedy this, I decided to write a how-to on the process, so I’d be able to follow it again in the future. Hopefully, others will find this useful as well.

This will be the first in a two-part series and will cover creating and uploading the custom ISO. The following post will cover using that ISO to create a VM.

Requirements

  1. Base Windows ISO
  2. ImgBurn (or similar)
  3. Virtio drivers

Acquire Your Base ISO

To create a custom ISO you’ll need a vanilla version of the Windows OS you are planning to install. At time of writing, you can get most ISOs for free from Microsoft, and either use the trial version for a short while or purchase your own licence. ISOs can be downloaded here:

  1. Evaluation Centre: https://www.microsoft.com/en-us/evalcenter/
  2. Windows Server: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016
  3. Windows 10: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise

Microsoft will ask you for your details before allowing you to download any of the above ISOs. Feel free to make something amusing up, and use a burner email service such as below so you don’t receive their spam:

  1. https://temp-mail.org/en/
  2. https://dropmail.me/en/
  3. https://www.33mail.com/

Download the Latest Virtio Drivers

The drivers themselves can be found in a number of places on the Internet, but the best place I’ve found has been the Fedora Project website: https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html

Download and Install ImgBurn

ImgBurn is required to pack your drivers and ISO into a single ISO package and is available here: http://www.imgburn.com/index.php?act=download

Putting It All Together

Once you have all of the various parts downloaded (and installed where necessary), you’ll need to perform the following steps to eventually end up with your custom ISO with virtio drivers. The below assumes you have saved the necessary components to a folder called customiso.

  1. Extract the contents of the Windows ISO you downloaded to \customiso\Windows
  2. Extract the contents of the virtio ISO you downloaded to \customiso\Windows\virtio
  3. Open ImgBurn
  4. Click Create image file from files/folders:
  5. Add your customiso folder as the Source:
  6. Add your output file path and filename:
  7. Set the options tab (on the right) as below:
  8. Set the labels tab as below:
  9. Set the Advanced/Bootable Disc tab as below (Boot Image should be in the folder \customiso\Windows\boot\etfsboot):

    All other settings can be left as default
  10. Click Build:

Once the ImgBurn process completes you will have your very own custom Windows ISO, complete with virtio drivers.

Upload to Vultr

There are a few ways to get your new ISO into your Vultr account:

  1. Dropbox: this is probably the easiest option, but your ISO will likely be too large for the 2GB limit most accounts start with. If you already have more, great, otherwise you’ll need to sign up for an Enterprise account (don’t worry, you can always sign up and get 1 month free, just make sure you cancel it before the month ends)
  2. Amazon S3 or Google Cloud Compute: I’ve never really played around with either of these options, but I’m guessing it would be quite similar to any other web server
  3. Vultr web server: I already had a web server up and running so this was the easiest option for me. I used scp to upload the ISO to the /var/www/html folder of a WordPress instance (probably don’t do this, it would be better to spin up a temporary web server somewhere and upload to that): scp -r Windows10Entprise_vultr.iso [user@destination_ip]:/var/www/html
  4. Once done, browse to the ISO section of the Vultr Servers page:
  5. Click Add ISO
  6. Enter the location of your ISO (if it’s in the same location I put it in above, then the URL will be similar to below):
  7. Click Upload

Once your upload is complete you can proceed to create your custom VM.

4 thoughts on “Vultr and Virtio Part 1 – Creating a Custom Windows ISO

  1. Hello,

    as per your tutorial
    I created a folder name customiso

    Extracted the contents of the Windows ISO to \customiso\Windows
    Extracted the contents of the virtio ISO to \customiso\Windows\virtio

    but, Then this page says in step 9

    Set the Advanced/Bootable Disc tab as below (Boot Image should be in the folder \customiso\boot\etfsboot

    are you sure?

    \customiso\boot\etfsboot

    or

    \customiso\windows\boot\etfsboot

    which is correct?

    extracted files will be under the windows folder correct?

    Do I need to copy the boot image to customiso directory?

    if your step is wrong, kindly edit the line…

    NB:

    I tried every online tutorial, nothing worked and got an error…
    Uploaded more than 5 ISO,

    so, now I saw your article, testing now…

    meanwhile, correct it if you are wrong.

    1. Hi Sibi, you are correct. Thanks for letting me know, I’ve updated with the correct information. Let me know if you were able to get your ISO working.

  2. hello i did as instructed but when i boot up i get an error “cdboot couldnt find bootmgr ” on vultr view console, did i do a wrong step? thank you

Leave a Reply

Your email address will not be published. Required fields are marked *