This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-users] Xen w/ IntelVT->Windows Success Report

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] Xen w/ IntelVT->Windows Success Report
From: Michael Walker <Michael.Walker@xxxxxxxxxxx>
Date: Mon, 12 Jun 2006 09:47:21 -0700
Delivery-date: Mon, 12 Jun 2006 09:48:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird (X11/20060420)


I've spent quite a few weeks trying to get a IntelVT enabled
system loaded with a Xen and then running a version of Windows
with the IntelVT support.

After many trials and tribulations - I thought it would be worth
writing up a little report in the hopes that it will help others
down this path.  Note I'm not going into the full details of how
to get a Xen system up & booted - there is plenty of information
on that in the WiKi's - I'm just offering what I thought was
interesting in getting Windows booted in a IntelVT/HVM enabled

1) Get a IntelVT enabled system and enable the settings in the BIOS:

 First you need a IntelVT enabled system, I have a very nice
 server system with 4 dual core Intel Xeon processors.  The
 Xeon's have the vmx capabilities, but you *must* also make
 sure that the IntelVT capabilities are enabled via the BIOS.
 The one other gotchya I ran into was that for my system after
 re-setting the BIOS you must power-cycle the system for the
 updated settings to take place.  If you do not, on this
 system, even though the BIOS says VT is enabled Xen will not
 recognize it as such (that cost me a couple of days =O).

2) Base system - Fedora Core 5 + Xen3.0-Unstable

 My base system was Fedora Core 5.  I tried to use the Xen3.0.2
 which is distributed with FC5, but that failed on this system,
 each time I attempted to boot a VT enabled system the whole
 system would crash.  No error to the console, nothing left for
 me to examine - just reboot.

 So - I next pulled the latest Xen-unstable development tree down
 using Mercurial and created a build workspace.  I installed
 the additional packages required for a HVM enabled build
 (libvncserver & dev86) and completed the default 'make world'
 followed by 'make install' and booted to that new Xen
 hypervisor and Domain0 kernel.

3) Once system has booted Xen - verify that VMX is enabled.

 Once the Xen0 enabled kernel has booted - you can verify that
 your Xen has found the IntelVT enabled bits by doing the

   [root@vermont ~]# xm dmesg | grep VMX
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   (XEN) VMXON is done
   [root@vermont ~]#

  You should have a VMXON for each reported processor.  If you
  have any other messages visit your BIOS settings.  There is
  no reason to go any further until you have VMXON reported -
  it just isn't going to work.

4) Create the Xen disk image & find a install media

 I created my Xen enabled disk image as follows:
     # mkdir -p /root/xenimages
     # cd /root/xenimages
     # dd if=/dev/zero of=WS128.img bs=1M count=4096

 For my install media I chose to use a iso image of the
 WinXP - ServicePack2 CDRom.  I copied this into the

 For some reason my cdrom device was not available when I was
 booted into the Xen-unstable kernel.  If it had been, I also
 could have installed with the media in the CDRom drive.

4) Create a HVM enabled Xen Configuration

 I created mine by starting with /etc/xen/xmexample.hvm and
 then modifying it as appropriate.  Following is my Xen
 configuration file:

   [root@vermont xen]# cat /etc/xen/winXP128
   kernel = "/usr/lib/xen/boot/hvmloader"
   memory = 512
   name = "WinXP128"
   cpus = ""
   vif = [ 'type=ioemu, bridge=xenbr0' ]
   disk = [ 'file:/root/xenimages/winXP128.img,ioemu:hda,w' ]
   on_poweroff = 'destroy'
   on_reboot   = 'destroy'
   on_crash    = 'destroy'
   device_model = '/usr/lib/xen/bin/qemu-dm'
   [root@vermont xen]#

 Note that the "boot='d'" designates that this Xen image
 should boot off of the 'cdrom image'.  This is required for
 the initial boot - and will be changed to "boot='c'" once the
 hard drive image has Windows installed on it.

 Also note that this image is set to place the console onto a
 VNC enabled terminal.

 You can also use SDL to access the graphics console - I did
 not try this since my system is in a lab and I wanted to
 remotely connect to my DomainU images.

5) Boot system and connect to terminal with VNC

 Now we're ready to boot the system.  Note that the terminal
 will be on a VNC console - so once the xen domain is created
 you need another window to attach with a vncviewer (either
 from the same system or from a different system).

     # xm create -c /etc/xen/winXP128
     Using config file "/etc/xen/winXP128".
     Started domain WinXP128

 Then in another terminal (on another machine if you like)
 connect to your <server> as follows:

    % vncviewer vermont:1

 My system is named vermont - you must provide whatever the
 server address for your system is.  Note that the VNC session
 number (:1 above) matches to the Xen Domain ID for
 the session you just created.  A 'xm list' on the
 Domain0 kernel will reveal what your current number is.

6) “Setup is Starting Windows” - install hangs

 This one got me for a long time.  I think the problem only
 occurs on system which have more then 4(maybe 8) cpus - so
 not everyone is seeing it.  The WindowsXP install starts,
 we get the 'BlueScreen' and some nice messages as hardware
 is probed out.  Then the install just hangs with the last
 message displayed in the bottom corner of:

    Setup is Starting Windows

 I was stuck here for a few days - until the following snippet
 was posted to the xen-devel alias to help me past this point:


  In that posting is the following little tidbit:

   > After passing the 1st screen of windows setup of install XP,
   > the first
   > thing you'll see at the bottom of the screen is the option to
   > press F6
   > if you need to install a SCSI or RAID controller. Don't press
   > F6. Press
   > F5 instead. This will take you to a separate menu of Hardware
   > Abstraction Layer's where you can choose an appropriate HAL
   > .The choices
   > are:
   > ACPI Multiprocessor PC
   > ACPI Uniprocessor PC
   > Advanced Configuration and Power Interface (ACPI) PC
   > Compaq SystemPro Multiprocessor or 100% Compatible PC
   > MPS Uniprocessor PC
   > MPS Multiprocessor PC
   > Standard PC
   > Standard PC with C-Step i486
   > Other
   > Select "Standard PC". This will allow the installation to
   > complete in
   > about 20 minutes.

  So - 'press F5' when it says 'press F6'.  Whooda thunk

7) Installing via VNC

 The next thing to work around is that driving WinXP through
 the vncviewer is a little tricky.  I found the following

    a) The mouse support is spotty (this is a known issue I've
       seen discussed).  This means that in order to
    do the install and initial setup I had to use just
    the keyboard and keyboard shortcuts (tab, ...).

    b) The vncviewer doesn't resize with the install window.
    At times during the install the graphics window would
    resize (standard windows stuff) but the vncviewer did
    not resize resulting in part of the window being
    truncated in the viewer.  I found that if I just quit
    the 'vncviewer' and restarted it - it would get the
    correct size.

8) Boot from disk image to complete install

 Windows Install initially formats your (virtual) hard
 drive and copies some files over.  It then reboots to that
 hard drive to complete the install.

 When the system reboots your virtual machine will terminate,
 at this point you want to update your Xen configuration
 file to boot from the hard drive.  So - this required
 updating the 'boot' entry in the winXP file as follows:


 Then boot the Xen domain and re-attach with VNC:

    [root@vermont xen]# xm create -c /etc/xen/winXP128
    Using config file "/etc/xen/winXP128".
    Started domain WinXP128

 And attach with the vncviewer:

    % vncviewer vermont:2

 Note that I am now attached at ':2' since that is the XenID
 this session was assigned on my system (xm list).

8) Once installed - using rdesktop

 Don't be too worried about the problems with the VNC console.
 You only really need to use it to do the initial install &
 setup.  Once that is done - you can use Windows Remote Desktop
 to connect to your virtual Windows machine.  And - on Linux
 (and other Unix's) there is a nice RDP client called rdesktop

 So - once your system has been installed you can enable the
 RemoteDesktop via the following tab in Windows:

  ControlPanel->System->Remote tab

 Enable that - and you can then connect to your client with
 Remote Desktop.  At this point you're good to go.

Well - that's it.

I've used the above to install both Windows Server 2003 & Windows
XP clients.  I've had multiple WinXP & WS2003 clients running
simultaneously - and they all seems great.

Hope this helps someone.



Xen-users mailing list