Example: Microsoft Windows image

This example creates a Windows Server 2012 qcow2 image, using the virt-install command and the KVM hypervisor.

  1. Follow these steps to prepare the installation:

    1. Download a Windows Server 2012 installation ISO. Evaluation images are available on the Microsoft website (registration required).

    2. Download the signed VirtIO drivers ISO from the Fedora website.

    3. Create a 15 GB qcow2 image:

      $ qemu-img create -f qcow2 ws2012.qcow2 15G
      
  2. 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 \
      --os-distro windows --os-version 2012
    

    Use virt-manager or virt-viewer to connect to the VM and start the Windows installation.

  3. Enable the VirtIO drivers. By default, the Windows installer does not detect the disk.

  4. Load VirtIO SCSI drivers and network drivers by choosing an installation target when prompted. Click Load driver and browse the file system.

  5. Select the E:\virtio-win-0.1XX\viostor\2k12\amd64 folder. The Windows installer displays a list of drivers to install.

  6. Select the VirtIO SCSI drivers.

  7. Click Load driver and browse the file system, and select the E:\NETKVM\2k12\amd64 folder.

  8. Select the network drivers, and continue the installation. Once the installation is completed, the VM restarts.

  9. Define a password for the administrator when prompted.

  10. Log in as administrator and start a command window.

  11. Complete the VirtIO drivers installation by running the following command:

    C:\pnputil -i -a E:\virtio-win-0.1XX\viostor\2k12\amd64\*.INF
    
  12. 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
    
  13. 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

    • Network adapter to configure: Red Hat VirtIO Ethernet Adapter

    • 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