This example creates a Windows Server 2012 qcow2 image, using the virt-install command and the KVM hypervisor.
- 
Download a Windows Server 2012 installation ISO. Evaluation images are available on the Microsoft website (registration required).
 - 
Download the signed VirtIO drivers ISO from the Fedora website.
 - 
Create a 15 GB qcow2 image:
$ qemu-img create -f qcow2 ws2012.qcow2 15G - 
Start the Windows Server 2012 installation with the virt-install command:
 
# virt-install --connect qemu:///system \
  --name ws2012 --ram 2048 --vcpus 2 \
  --network network=default,model=virtio \
  --disk path=ws2012.qcow2,format=qcow2,device=disk,bus=virtio \
  --cdrom /path/to/en_windows_server_2012_x64_dvd.iso \
  --disk path=/path/to/virtio-win-0.1-XX.iso,device=cdrom \
  --vnc --os-type windows --os-variant win2k12 
Use virt-manager or virt-viewer to connect to the VM and start the Windows installation.
- 
Enable the VirtIO drivers. By default, the Windows installer does not detect the disk.
 - 
Load VirtIO SCSI drivers and network drivers by choosing an installation target when prompted. Click Load driver and browse the file system.
 - 
Select the E:\virtio-win-0.1XX\viostor\2k12\amd64 folder. The Windows installer displays a list of drivers to install.
 - 
Select the VirtIO SCSI drivers.
 - 
Click Load driver and browse the file system, and select the E:\NETKVM\2k12\amd64 folder.
 - 
Select the network drivers, and continue the installation. Once the installation is completed, the VM restarts.
 - 
Define a password for the administrator when prompted.
 - 
Log in as administrator and start a command window.
 - 
Complete the VirtIO drivers installation by running the following command:
 
C:\pnputil -i -a E:\virtio-win-0.1XX\viostor\2k12\amd64\*.INF
- To allow the Cloudbase-Init to run scripts during an instance boot, set the PowerShell execution policy to be unrestricted:
 
C:\powershell
C:\Set-ExecutionPolicy Unrestricted
- Download and install the Cloudbase-Init:
 
C:\Invoke-WebRequest -UseBasicParsing https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi -OutFile cloudbaseinit.msi
C:\.\cloudbaseinit.msi
- In the configuration options window, change the following settings:
 
Username: Administrator
Serial port for logging: COM1
- 
When the installation is done, in the Complete the Cloudbase-Init Setup Wizard window, select the Run Sysprep and Shutdown check boxes and click Finish.
 - 
Wait for the machine shutdown.
 - 
Your image is ready to upload to the Image service:
 
$ openstack image create --disk-format qcow2 --file ws2012.qcow2 WS2012