SmartOS – Installing Windows 2008 or 2012

Installing Windows 2008, 2008R2, 2012 or 2012R2 in a KVM (on SmartOS) with paravirtualizion drivers for storage and networking is possible but requires some extra steps. You need to load additional drivers to add support in Windows for the paravirtualized devices.

Start with creating the future Windows KVM.

Below is an example json file for a fairly basic virtual machine:

{
"brand": "kvm",
"vcpus": 1,
"alias": "win",
"autoboot": false,
"ram": 1024,
"disks": [
{
"boot": true,
"model": "virtio",
"size": 25600
}
],
"nics": [
{
"nic_tag": "admin",
"model": "virtio",
"ip": "192.168.10.69",
"netmask": "255.255.255.0",
"gateway": "192.168.10.1"
}
]
}

Save the example to win.json and create the virtual machine with:

vmadm create -f win.json

You should get a message like:

Successfully created VM <UUID>

The UUID of your virtual machine will be something like e08f3e67-f602-4238-8295-4503d00253c8.

Now prepare to install Windows:
Place a copy of the Windows ISO in /zones/<UUID>/root/
Place a copy of the vm-tools iso for the relevant Windows version in /zones/<UUID>/root/

You can find the vm-tools for the relevant Windows version on https://download.joyent.com/pub/vmtools/

Boot the created virtual machine
Boot the virtual machine with the Windows and vm-tools iso attached.

vmadm boot <UUID> order=cd,once=d cdrom=/win2012-64bit.iso,ide cdrom=/me-ws2012std-20130712.iso,ide

Connect to the console of the virtual machine with VNC.
You can use project fifo or you can use a vnc viewer on your desktop.

If you don’t use the project fifo webinterface you will need to find out which ip and port to connect VNC with. Run vmadm info to find out:

vmadm info <UUID>

In the last lines of the output the host and port will be mentioned.

  "vnc": {
    "host": "192.168.10.10",
    "port": 37792,
    "display": 31892
  },

In the above example you would need to connect to 192.168.10.10 on port 37792

Install Windows
Perform a Windows installation as required. At a certain point you will not be able to progress because there will be no disk available. The correct driver, needed for detecting the disk, hasn’t been loaded yet.

We will continue by loading the required network and storage drivers.

1) Select the “Load driver” option.
2) Use the browse dialog to browse to the “cdrom” containing the drivers.
3) Make use of this opportunity to install the virtio network driver first. Expand drivers, NetKVM, Vista, amd64 and click OK.
4) You are presented with the Red Hat Virt IO Ethernet Adapter Driver. Click Next to load this driver.

5) After loading the network driver choose “Load Driver” again.
6) Use the browse dialog to expand drivers, viostor, Win7, amd64 and click OK.
7) This time the Red Hat VirtIO SCSI Controller should be presented. Click Next to load this driver.

After loading the VirtIO SCSI driver you should see the disk you added to the virtual machine.
Select this disk as the target for your Windows installation.

From here on it is a Windows 2008 / 2012 installation as usual.