Hi,
I’m very new to this whole Xen stuff; I’m still on
an incredible learning curve and am experiencing an error I just can’t
seem to solve.
When I run:
$>xm
create -c /var/xen/guests/test-vm.cfg vmid=1
I get:
Using config file
"/var/xen/guests/test-vm.cfg".
Error: int argument required
$> xm dmesg
Produces:
__ __ _____ _
___ _____ __ ___
\ \/ /___ _ __ |___ / / |
/ _ \ _ __ __|___ |/ _| ___( _ )
\ // _ \ \047_ \ |_ \
| || | | |__| \047__/ __| / /| |_ / __/ _ \
/ \ __/ | | | ___) ||
|| |_| |__| | | (__ / /_| _| (_| (_) |
/_/\_\___|_| |_|
|____(_)_(_)___/ |_| \___/_/(_)_| \___\___/
http://www.cl.cam.ac.uk/netos/xen
University of Cambridge
Computer Laboratory
Xen version 3.1.0-rc7-2950.fc8
(kojibuilder@(none)) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-32)) Tue Oct 23
12:22:00 EDT 2007
Latest ChangeSet:
unavailable
(XEN) Command line:
/xen.gz-2.6.21-2950.fc8
(XEN) 0000000000000000 -
00000000000a0000 (usable)
(XEN) 0000000000100000 -
000000003ffd7000 (usable)
(XEN) 000000003ffd7000 -
000000003ffefc00 (ACPI data)
(XEN) 000000003ffefc00 -
000000003ffff000 (reserved)
(XEN) 00000000fec00000 -
00000000fec10000 (reserved)
(XEN) 00000000fee00000 -
00000000fee10000 (reserved)
(XEN) 00000000fff80000 -
0000000100000000 (reserved)
(XEN) System RAM: 1023MB
(1048028kB)
(XEN) Xen heap: 10MB
(10240kB)
(XEN) Domain heap
initialised: DMA width 32 bits
(XEN) PAE enabled, limit: 16
GB
(XEN) Processor #0 15:2 APIC
version 20
(XEN) Processor #1 15:2 APIC
version 20
(XEN) IOAPIC[0]: apic_id 8,
version 17, address 0xfec00000, GSI 0-15
(XEN) IOAPIC[1]: apic_id 9,
version 17, address 0xfec01000, GSI 16-31
(XEN) IOAPIC[2]: apic_id 10,
version 17, address 0xfec02000, GSI 32-47
(XEN) Enabling APIC mode:
Flat. Using 3 I/O APICs
(XEN) Using scheduler: SMP
Credit Scheduler (credit)
(XEN) Detected 2788.324 MHz
processor.
(XEN) CPU0: Intel(R)
Xeon(TM) CPU 2.80GHz stepping 09
(XEN) Mapping cpu 0 to node
255
(XEN) Booting processor 1/1
eip 90000
(XEN) Mapping cpu 1 to node
255
(XEN) CPU1: Intel(R)
Xeon(TM) CPU 2.80GHz stepping 09
(XEN) Total of 2 processors
activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) -> Using new ACK
method
(XEN) ..MP-BIOS bug: 8254
timer not connected to IO-APIC
(XEN) Platform timer is
1.193MHz PIT
(XEN) Brought up 2 CPUs
(XEN) *** LOADING DOMAIN 0
***
(XEN) elf_parse_binary:
phdr: paddr=0xc1000000 memsz=0x2d347c
(XEN) elf_parse_binary:
phdr: paddr=0xc12d4000 memsz=0x12d000
(XEN) elf_parse_binary:
memory: 0xc1000000 -> 0xc1401000
(XEN)
elf_xen_parse_note: GUEST_OS = "linux"
(XEN)
elf_xen_parse_note: GUEST_VERSION = "2.6"
(XEN)
elf_xen_parse_note: XEN_VERSION = "xen-3.0"
(XEN)
elf_xen_parse_note: VIRT_BASE = 0xc0000000
(XEN)
elf_xen_parse_note: PADDR_OFFSET = 0xc0000000
(XEN) elf_xen_parse_note:
ENTRY = 0xc1000000
(XEN)
elf_xen_parse_note: HYPERCALL_PAGE = 0xc1001000
(XEN) elf_xen_parse_note:
HV_START_LOW = 0xf5800000
(XEN) elf_xen_parse_note:
FEATURES =
"writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel"
(XEN)
elf_xen_parse_note: PAE_MODE = "yes"
(XEN) elf_xen_parse_note:
unknown xen elf note (0xd)
(XEN) elf_xen_parse_note:
LOADER = "generic"
(XEN) elf_xen_parse_note:
SUSPEND_CANCEL = 0x1
(XEN)
elf_xen_addr_calc_check: addresses:
(XEN) virt_base =
0xc0000000
(XEN) elf_paddr_offset =
0xc0000000
(XEN) virt_offset =
0x0
(XEN) virt_kstart =
0xc1000000
(XEN) virt_kend =
0xc1401000
(XEN) virt_entry =
0xc1000000
(XEN) Xen kernel: 32-bit,
PAE, lsb
(XEN) Dom0 kernel: 32-bit,
PAE, lsb, paddr 0xc1000000 -> 0xc1401000
(XEN) PHYSICAL MEMORY
ARRANGEMENT:
(XEN) Dom0 alloc.:
000000003c000000->000000003e000000 (232729 pages to be allocated)
(XEN) VIRTUAL MEMORY
ARRANGEMENT:
(XEN) Loaded kernel:
c1000000->c1401000
(XEN) Init. ramdisk:
c1401000->c1af3c00
(XEN) Phys-Mach map:
c1af4000->c1bdf464
(XEN) Start info:
c1be0000->c1be046c
(XEN) Page tables:
c1be1000->c1bf6000
(XEN) Boot stack:
c1bf6000->c1bf7000
(XEN) TOTAL:
c0000000->c2000000
(XEN) ENTRY ADDRESS:
c1000000
(XEN) Dom0 has maximum 2
VCPUs
(XEN) elf_load_binary: phdr
0 at 0xc1000000 -> 0xc12d347c
(XEN) elf_load_binary: phdr
1 at 0xc12d4000 -> 0xc1347b64
(XEN) Initrd len 0x6f2c00,
start at 0xc1401000
(XEN) Scrubbing Free RAM:
done.
(XEN) Xen trace buffers:
disabled
(XEN) Std. Loglevel: Errors
and warnings
(XEN) Guest Loglevel:
Nothing (Rate-limited: Errors and warnings)
(XEN) Xen is relinquishing
VGA console.
(XEN) *** Serial input ->
DOM0 (type \047CTRL-a\047 three times to switch input to Xen).
(XEN) ioapic_guest_write:
apic=0, pin=0, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write:
old_entry=00010000, new_entry=000009f0
(XEN) ioapic_guest_write:
Attempt to add IO-APIC pin for in-use IRQ!
(XEN) mtrr: type mismatch
for fd000000,800000 old: uncachable new: write-combining
(XEN) mtrr: type mismatch
for fd000000,800000 old: uncachable new: write-combining
(XEN) mtrr: type mismatch
for fd000000,800000 old: uncachable new: write-combining
(XEN) mtrr: type mismatch
for fd000000,800000 old: uncachable new: write-combining
I don’t understand
enough about linux to have any clue as to what that means. So I’m just
going to drop on my knees and hope you oracle’s have the answer J.
Here is my configuration
file:
$> cat
/var/xen/guests/test-vm.cfg
# -*- mode: python; -*-
#============================================================================
# Python configuration setup
for 'xm create'.
#============================================================================
# Kernel image file.
kernel =
"/boot/vmlinuz-2.6.21-2950.fc8xen"
# Virtual Hardrive Root
root = "/dev/hda1"
# Optional ramdisk.
#ramdisk =
"/boot/initrd.gz"
# The domain build function.
Default is 'linux'.
builder='linux'
# Initial memory allocation
(in megabytes) for the new domain.
memory = 64
# A name for your domain.
All domains must have different names.
name = "test"
# 128-bit UUID for the
domain.
uuid =
"84c862d2-f852-4220-bfe7-27dcf056afc0"
# 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
# Number of Virtual CPUS to
use, default is 1
#vcpus = 1
#----------------------------------------------------------------------------
# Define network interfaces.
vif = [
"mac=00:16:3e:7b:0e:a4,bridge=eth0,script=vif-bridge","mac=00:16:3e:7b:0e:a5,bridge=eth1,script=vif-bridge"]
#----------------------------------------------------------------------------
# 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 = [
'file:/var/xen/default/test-default.dsk,hda1,w','file:/var/xen/default/test-swap.dsk,hda2,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=1' ]
#
# 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=1,backend=0' ]
#----------------------------------------------------------------------------
# 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= ).
# Define number of network
cards
#nics=2
# Set if you want dhcp to
allocate the IP address.
dhcp="off"
# Set netmask.
#netmask="255.255.255.0"
# Set default gateway.
#gateway="10.128.124.1"
# Set the hostname.
hostname= "%d" %
vmid
# Set root device.
#root = "/dev/hda1
ro"
root = "/dev/hda1"
# 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.
extra = "4"
#----------------------------------------------------------------------------
# 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_reboot = 'restart'
# on_crash = 'restart'
#
# For backwards
compatibility we also support the deprecated option restart
#
# restart = 'onreboot' means
#
on_reboot = 'restart'
#
on_crash = 'destroy'
#
# restart = 'always' means
#
on_reboot = 'restart'
#
on_crash = 'restart'
#
# restart = 'never' means
#
on_reboot = 'destroy'
#
on_crash = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
#============================================================================
Additionally, here is the
listing of files the virtual machine is intended to use:
$>find /var/xen -type f
-exec ls -la {} \;
-rw-rw-rw- 1 root root
524288000 2008-02-26 14:20 /var/xen/default/test-swap.dsk
-rw-rw-rw- 1 root root
10737418240 2008-02-26 14:19 /var/xen/default/test-default.dsk
-rw-r--r-- 1 root root 5766
2008-02-26 15:04 /var/xen/guests/test-vm.cfg
I’m sure I’m missing a ton of configuration
settings; Essentially I want to automate a VM install with a kickstart file
(to which I don’t even know were to reference it from at the moment)
I’m guessing the reference to the kick-start file will
appear somewhere in the config file? But … back at square one…. I can’t
even get a VM to create itself… so I’ll start there first! J
My operating system is Fedora 8. Perhaps I should be
focusing more on using cobbler and koan, but at the present time I would like
to know how it’s done using the command lines.