Install windows DomU for xVM on Nevada 75a

1. Configure the vnc password and default nic for xend service.

    # svccfg -s xvm/xend setprop config/vncpasswd="abc123"
    # svccfg -s xvm/xend setprop config/default-nic="bge0"
    # svcadm refresh xvm/xend
    # svcadm restart xvm/xend

The NIC must support the latest version of GLD (version 3), such as bge, e1000g, xge, nge,
and rge devices. The way to determine if a NIC is GLDv3, run the dladm(1M) command with the 'show-link', and look for links that are not of type 'legacy'. In my case, my NIC device is bge0.

Refer to "Download, Installation, and Configuration Information"

2. Use virt-install(1M) to install the windows domain.

    # export DISPLAY=:0.0
    and you need enable your Xserver access from localhost

    # virt-install -n winxp --hvm -r 512 --vnc -f /export/winxp/winxp-disk.raw -s 10 -c /windows/media.iso
    # vncviewer :0

This will create a fully virtualized guest domain named as "winxp", 512M memory, 10G disk space. And then start to launch the installer in the installation CD image. With virt-install(1M), you DON NOT need qemu-img utility (get it from blastwave) to create the domain disk file.

Refer to "Using virt-install to Install a Domain"

3. After the initial installation is finished, that domain is poweredd off, to start it again

    # xm start winxp
    # vncviewer :0
While the post installer still needs load something from the CD image, while seems that the newly created domain does not remember its CDROM configuration. So I created a python configuration file ("xm block-attach" maybe a better solution), following the instructions in "Instant Windows—Recipe for Running Windows as a Guest on Solaris xVM", the only difference is I changed the vif to [ '' ] .

    # xm shutdown winxp
    # xm delete winxp
    # xm new winxp.hvm
    # xm start winxp

4. Finish the post installation of windows, and don't forget to install the security patches and antivirus software 🙂