I''m running RHEL 4 with a Xen package compiled from source. Everything boots into the xen kernel properly. I followed the Xen User Guide for configuration options and installed Xen into a flat file. Now, when booting the system, I regularly get this error: [root@ims-devhost-1 ~]# xm create -c ims-mp7i vmid=2 Using config file "/etc/xen/ims-mp7i". Started domain VM2 Unexpected error: exceptions.OSError Please report to xen-devel@lists.xensource.com Traceback (most recent call last): File "/usr/sbin/xm", line 10, in ? main.main(sys.argv) File "//usr/lib64/python/xen/xm/main.py", line 2453, in main _, rc = _run_cmd(cmd, cmd_name, args) File "//usr/lib64/python/xen/xm/main.py", line 2477, in _run_cmd return True, cmd(args) File "<string>", line 1, in <lambda> File "//usr/lib64/python/xen/xm/main.py", line 1266, in xm_importcommand cmd.main([command] + args) File "//usr/lib64/python/xen/xm/create.py", line 1292, in main do_console(sxp.child_value(config, ''name'', -1)) File "//usr/lib64/python/xen/xm/create.py", line 1317, in do_console (p, rv) = os.waitpid(cpid, os.WNOHANG) OSError: [Errno 10] No child processes [root@ims-devhost-1 ~]# In addition, when this error doesn''t occur, the system won''t boot anyway. Here is my configuration file: [root@ims-devhost-1 ~]# !cat cat /etc/xen/ims-mp7i # -*- mode: python; -*- #===========================================================================# Example Python setup script for ''xm create''. # This script sets the parameters used when a domain is created using ''xm create''. # # This is a relatively advanced script that uses a parameter, vmid, to control # the settings. So this script can be used to start a set of domains by # setting the vmid parameter on the ''xm create'' command line. For example: # # xm create vmid=1 # xm create vmid=2 # xm create vmid=3 # # The vmid is purely a script variable, and has no effect on the the domain # id assigned to the new domain. #=========================================================================== # Define script variables here. # xm_vars is defined automatically, use xm_vars.var() to define a variable. # This function checks that ''vmid'' has been given a valid value. # It is called automatically by ''xm create''. def vmid_check(var, val): val = int(val) if val <= 0: raise ValueError return val # Define the ''vmid'' variable so that ''xm create'' knows about it. xm_vars.var(''vmid'', use="Virtual machine id. Integer greater than 0.", check=vmid_check) # Check the defined variables have valid values.. xm_vars.check() #---------------------------------------------------------------------------- # Kernel image file. kernel = "/boot/vmlinuz-2.6.9-55.ELxenU" # Optional ramdisk. #ramdisk = "/boot/initrd.gz" # The domain build function. Default is ''linux''. #builder=''linux'' # Initial memory allocation (in megabytes) for the new domain. # # WARNING: Creating a domain with insufficient memory may cause out of # memory errors. The domain needs enough memory to boot kernel # and modules. Allocating less than 32MBs is not recommended. memory = 1024 # A name for the new domain. All domains have to have different names, # so we use the vmid to create a name. name = "VM%d" % vmid # 128-bit UUID for the domain. The default behavior is to generate a new UUID # on each call to ''xm create''. #uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9" # 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 #cpus = "%s" % vmid # set based on vmid (mod number of CPUs) # Number of Virtual CPUS to use, default is 1 #vcpus = 1 vcpus = 4 # make your domain a 4-way #---------------------------------------------------------------------------- # Define network interfaces. # By default, no network interfaces are configured. You may have one created # with sensible defaults using an empty vif clause: # #vif = [ '''' ] # # or optionally override backend, bridge, ip, mac, script, type, or vifname: # # vif = [ ''mac=00:16:3e:00:00:11, bridge=xenbr0'' ] #vif = [ ''mac=00:16:3e:00:00:11, bridge=bond0'' ] # # or more than one interface may be configured: # # vif = [ '''', ''bridge=xenbr1'' ] #vif = [ '''' ] #---------------------------------------------------------------------------- # 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. # This makes the disk device depend on the vmid - assuming # that devices sda7, sda8 etc. exist. The device is exported # to all domains as sda1. # All domains get sda6 read-only (to use for /usr, see below). #disk = [''tap:aio:/home/Virts/ims-mp7i,sda1,w''] disk = [''tap:aio:/home/Virts/ims-mp7i,xvda1,w''] #---------------------------------------------------------------------------- # Define frame buffer device. # # By default, no frame buffer device is configured. # # To create one using the SDL backend and sensible defaults: # # vfb = [ ''type=sdl'' ] # # This uses environment variables XAUTHORITY and DISPLAY. You # can override that: # # vfb = [ ''type=sdl,xauthority=/home/bozo/.Xauthority,display=:1'' ] # # To create one using the VNC backend and sensible defaults: # # vfb = [ ''type=vnc'' ] # # The backend listens on 127.0.0.1 port 5900+N by default, where N is # the domain ID. You can override both address and N: # # vfb = [ ''type=vnc,vnclisten=127.0.0.1,vncdisplay=%d'' % vmid ] # # Or you can bind the first unused port above 5900: # # vfb = [ ''type=vnc,vnclisten=0.0.0.0,vnunused=1'' ] # # You can override the password: # # vfb = [ ''type=vnc,vncpasswd=MYPASSWD'' ] # # Empty password disables authentication. Defaults to the vncpasswd # configured in xend-config.sxp. #---------------------------------------------------------------------------- # Define to which TPM instance the user domain should communicate. # The vtpm entry is of the form ''instance=INSTANCE,backend=DOM'' # where INSTANCE indicates the instance number of the TPM the VM # should be talking to and DOM provides the domain where the backend # is located. # Note that no two virtual machines should try to connect to the same # TPM instance. The handling of all TPM instances does require # some management effort in so far that VM configration files (and thus # a VM) should be associated with a TPM instance throughout the lifetime # of the VM / VM configuration file. The instance number must be # greater or equal to 1. #vtpm = [''instance=%d,backend=0'' % (vmid) ] #---------------------------------------------------------------------------- # Set the kernel command line for the new domain. # You only need to define the IP parameters and hostname if the domain''s # IP config doesn''t, e.g. in ifcfg-eth0 or via DHCP. # You can use ''extra'' to set the runlevel and custom environment # variables used by custom rc scripts (e.g. VMID=, usr= ). # Set if you want dhcp to allocate the IP address. #dhcp="dhcp" # Set netmask. #netmask# Set default gateway. #gateway# Set the hostname. #hostname= "vm%d" % vmid # Set root device. #root = "/dev/sda1 ro" root = "/dev/xvda1 ro" # Root device for nfs. #root = "/dev/nfs" # The nfs server. #nfs_server = ''169.254.1.0'' # Root directory on the nfs server. #nfs_root = ''/full/path/to/root/directory'' # Sets runlevel 4 and the device for /usr. #extra = "4 VMID=%d usr=/dev/sda6" % vmid extra = "4 VMID=%d " % vmid #---------------------------------------------------------------------------- # 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 = ''restart'' # on_crash = ''restart'' # # 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 = ''restart'' #on_crash = ''restart'' #===========================================================================[root@ims-devhost-1 ~]# _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel