Talk:Xen Full Virtualization Example
From openSUSE
On my Kubuntu distro, the install script (xen binary install) put the example file in /etc/xen/xmexample.hvm instead of /etc/xen/examples/xmexample.hvm. Is /etc/xen/examples/xmexample.hvm correct on Suse ?
Is it possible to boot windows not from a disk image but from a hard disk partition ?
Workaround for the machine hanging
If the entire machine hangs when starting a fully virtualized guest (or if it fails to come up at all), it is most likely due to issues with the domain0 auto-ballooning and/or shadow paging code. As a result, the problems can be avoided by manually reducing the amount of memory allocated to domain0. This can be done by issueing the xm mem-set command or by adding dom0_mem parameter to the xen.gz line in the /boot/grub/menu.lst file. For example, the to reduce dom0 memory to 512 MB for the current boot only, type "xm mem-set 0 512" at the dom0 command line. To make that change permanent for all subsequent boots, add "dom0_mem=512M" at the end of the "kernel /boot/xen.gz" line in the Xen section of /boot/grub/menu.lst.
Error: (2, 'No such file or directory')
I followed the instructions but after I type xm create myfile.hvm I get this error:
Error: (2, 'No such file or directory')
Do you have any idea what would the problem be? A search on google didn't help much. I checked my HVM files and they seem fine to me.
Update: A simple reboot solved the problem, but now I have the following error:
Error: (111, 'Connection refused')
which I guess is due to the fact that xend is not up. If I try to run xend I get the following error:
ERROR: Could not obtain handle on privileged command interface (2 = No such file or directory)
Traceback (most recent call last):
File "/usr/sbin/xend", line 33, in ?
from xen.xend.server import SrvDaemon
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ?
import relocate
File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ?
from xen.xend import XendDomain
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ?
import XendDomainInfo
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 37, in ?
import image
File "/usr/lib/python2.4/site-packages/xen/xend/image.py", line 32, in ?
xc = xen.lowlevel.xc.xc()
RuntimeError: (2, 'No such file or directory')
Question: Do I need to boot with Xen kernel before running Xen? I can't try it, as if I do boot with Xen kernel, X gives errors on graphic card driver.
Full description of an hvm file=
# -*- mode: python; -*-
#============================================================================
# Python configuration setup for 'xm create'.
# This script sets the parameters used when a domain is created using 'xm create'.
# You use a separate script for each domain you want to create, or
# you can set the parameters for the domain on the xm command line.
#============================================================================
import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'
#----------------------------------------------------------------------------
# Kernel image file.
kernel = "/usr/lib/xen/boot/hvmloader"
# The domain build function. HVM domain uses 'hvm'.
builder='hvm'
# Initial memory allocation (in megabytes) for the new domain.
memory = 384
# A name for your domain. All domains must have different names.
name = "WindowsXP"
#-----------------------------------------------------------------------------
# the number of cpus guest platform has, default=1
#vcpus=1
# enable/disable HVM guest PAE, default=0 (disabled)
#pae=0
# enable/disable HVM guest ACPI, default=0 (disabled)
#acpi=0
# enable/disable HVM guest APIC, default=0 (disabled)
#apic=0
# List of which CPUS this domain is allowed to use, default Xen picks
#cpus = "" # leave to Xen to pick
#cpus = "0" # all vcpus run on CPU0
#cpus = "0-3,5,^1" # run on cpus 0,2,3,5
# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0' ]
# type=ioemu specify the NIC is an ioemu device not netfront
vif = [ 'type=ioemu, bridge=xenbr0' ]
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.
#disk = [ 'phy:hda1,hda1,r' ]
disk = [ 'file:/var/lib/xen/images/windisk.img,ioemu:hda,w' ]
#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits. There are three 'reasons'
# for a domain to stop: poweroff, reboot, and crash. For each of these you
# may specify:
#
# "destroy", meaning that the domain is cleaned up as normal;
# "restart", meaning that a new domain is started in place of the old
# one;
# "preserve", meaning that no clean-up is done until the domain is
# manually destroyed (using xm destroy, for example); or
# "rename-restart", meaning that the old domain is not cleaned up, but is
# renamed and a new domain started in its place.
#
# The default is
#
# on_poweroff = 'destroy'
# on_reboot = 'destroy'
# on_crash = 'destroy'
#
# For backwards compatibility we also support the deprecated option restart
#
# restart = 'onreboot' means on_poweroff = 'destroy'
# on_reboot = 'restart'
# on_crash = 'destroy'
#
# restart = 'always' means on_poweroff = 'restart'
# on_reboot = 'restart'
# on_crash = 'restart'
#
# restart = 'never' means on_poweroff = 'destroy'
# on_reboot = 'destroy'
# on_crash = 'destroy'
on_poweroff = 'destroy'
on_reboot = 'destroy'
on_crash = 'destroy'
#============================================================================
# New stuff
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
#-----------------------------------------------------------------------------
# Disk image for
cdrom='/dev/sr0'
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c) or CD-ROM (d)
boot='d'
#-----------------------------------------------------------------------------
# write to temporary files instead of disk image files
#snapshot=1
#----------------------------------------------------------------------------
# enable SDL library for graphics, default = 0
sdl=1
#----------------------------------------------------------------------------
# enable VNC library for graphics, default = 1
vnc=0
#----------------------------------------------------------------------------
# enable spawning vncviewer(only valid when vnc=1), default = 1
vncviewer=0
#----------------------------------------------------------------------------
# no graphics, use serial port
#nographic=0
#----------------------------------------------------------------------------
# enable stdvga, default = 0 (use cirrus logic device model)
stdvga=0
#-----------------------------------------------------------------------------
# serial port re-direct to pty deivce, /dev/pts/n
# then xm console or minicom can connect
serial='pty'
#----------------------------------------------------------------------------
# enable ne2000, default = 0(use pcnet)
ne2000=0
#-----------------------------------------------------------------------------
# enable audio support
#audio=1
#-----------------------------------------------------------------------------
# set the real time clock to local time [default=0 i.e. set to utc]
#localtime=1
#-----------------------------------------------------------------------------
# start in full screen
#full-screen=1
hope this works...

