[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] help! error in creating a new domain



Maybe I am really unlucky. 9  I followed the instructions and was still
stuck and cannot launch a new domain. This time I will list all operations
I took. Hope someone can help me out. I guess I ran into a lot problems
common to newbies. If I can eventually work out, I will publish the
detailed steps. I believe that will be helpful for newbies like me. :

THREE big problems for me:
1.      We don't have detail enough document in how to creating a new
domain.
CHU's guide includes a lot of information. But it omits many important
information. For example, for the setting of /mnt/domain1/etc/fstab, it
only says "modify it to reflect the system's settings". Maybe this is
enough for gurus, but for newbies like me, an example will be more
helpful.

2.      How to get the detail status of a new domain?
Even if I boots up a new domain, I don't know how to check the status of
the new domain. Existing documents say we can ssh to the new domain, but
my system always complain that no route to the destination when I tried to
"ssh 169.254.1.1". I can use "xc_dom_control.py list" to list all domains,
but don't really understand what the dumped information means. Maybe the
network subsystem is not started right or sshd is not started right. But I
really don't know how to check the status. 9

3.      Currently, if I fail to start a new domain, I will have to reboot
my machine for next try. Is there any control commands that can kill the
failed domain and allow me to create the domain without rebooting my
machine?
If I try to do "xc_dom_create -Dvmid=1" again, the system response:
"Warning: one or more hard disk extents are writeable by two or more
domains simultaneously. ERROR: This kind of disk sharing is not allowed at
the current safety level (0)." I thought that the reason could be domain1
is still alive even it failed to boot up.  So I tried to do
"xc_dom_control.py stop 1", I got "return code 0", then nothing happened.

The detailed steps I took are listed as follows:
/*****************************************************/
A. Here is my hard drive partition information:
/*****************************************************/

2 hard disks, 40G and 10G,  /dev/hda and /dev/hdb
/etc/fstab listed as follows:

/dev/hda1 contains my root directory, /dev/hda2 contains swap space and
/dev/hda3 contains /home directory.
-----------------------------------------------------
LABEL=/                 /                       ext3    defaults        1
1
none                    /dev/pts                devpts  gid=5,mode=620  0
0
LABEL=/home             /home                   ext3    defaults        1
2
none                    /proc                   proc    defaults        0
0
none                    /dev/shm                tmpfs   defaults        0
0
/dev/hda2               swap                    swap    defaults        0
0
/dev/cdrom              /mnt/cdrom              udf,iso9660
noauto,owner,kudzu,ro 0 0
/dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu
0 0
-----------------------------------------------------

The 10G hard drive is divided into two partitions: 6G and 4G, /dev/hdb1
and /dev/hdb2
/dev/hdb1 mounted to /mnt/domain1
/dev/hdb2 mounted to /mnt/domain2


/*****************************************************/
B. Compile xen and xenolinux:
/*****************************************************/
1. use bk to download Xen 1.2 and XenoLinux.

2. compile Xen 1.2
Do  "make"  and "make install" in ~/xen/xeno-clone/

3. compile XenoLinux
Do  "ARCH=xeno make menuconfig dep bzImage modules modules_install"  and
"cp arch/xeno/boot/xenolinux.gz /boot"

4. add new entry to /etc/grub.conf

title Xen 1.2 / XenoLinux 2.4.25
        kernel /boot/xen.gz dom0_mem=131072 ser_baud=115200 noht nosmp
        module /boot/xenolinux.gz root=/dev/hda1 ro console=tty0


5. boot to domain0. Success.

/*****************************************************/
C. Follow Neugebauer's guide to copy directories from the normal root
directory of my working Linux to /mnt/domain1:
/*****************************************************/
The command I used is "cp -a /bin /dev ¡­ /mnt/domain1"
The directories copied included:
Bin dev etc initrd lib misc opt proc sbin tmp var

Note that I didn't copy the content of /home, instead, I made a new empty
directory /mnt/domain1/home.

When I tried to copy /proc, the system complain "cp: reading
`/proc/sys/net/ipv4/route/flush': Invalid argument" and stopped. Then I
manually copied the rest proc entries that are not copied.

The /usr directory is copied into /mnt/usr, which is the mount point of
another partition /dev/hdb2.

/*****************************************************/
D. Change /mnt/domain1/etc/fstab as follows:
/*****************************************************/
-----------------------------------------------------
/dev/hdb1                 /                       ext3    defaults
1 1
none                    /proc                   proc    defaults        0
0
none                    /dev/shm                tmpfs   defaults        0
0
-----------------------------------------------------

Note that I commented out most of entries and only left three effective
entries. I have to admit that I don't really know what the use of the last
two lines.  Do we really need them?

/*****************************************************/
E. Edit /etc/xc/defaults as follows:
/*****************************************************/
-----------------------------------------------------
##### Edit this python file to reflect the configuration of your system

##### This example script expects a variable called 'vmid' to be set.

def config_usage ():
    print >>sys.stderr,"""
The config file '%s' requires the following variable to be defined:
 vmid             -- Numeric identifier for the new domain, used to
calculate
                     the VM's IP address and root partition. E.g. -Dvmid=1
""" % config_file


try:
    vmid=int(vmid) # convert to integer
except:
    print >>sys.stderr,"%s: This script expects 'vmid' to be set using -D
vmid=X" % config_file
    assert()

if vmid == 0:
    print >>sys.stderr,"%s: 'vmid' must be greater than 0" % config_file
    assert()


# STEP 1. Specify kernel image file and otional ramdisk. Can be gzip'ed.
image = "/boot/xenolinux.gz"
ramdisk = ""
#ramdisk = "/boot/initrd.gz"
builder_fn='linux' # this is a linux domain

# STEP 2. The initial memory allocation (in megabytes) for the new domain.
mem_size = 128


# STEP 3. A handy name for your new domain.
domain_name = "This is VM %d" % vmid


# STEP 4. Specify IP address(es), for the new domain.  You need to
# configure IP addrs within the domain just as you do normally.  This
# is just to let Xen know about them so it can route packets
# appropriately.

#vfr_ipaddr = ["111.222.333.444","222.333.444.555"]
vfr_ipaddr  =
[XenoUtil.add_offset_to_ip(XenoUtil.get_current_ipaddr(),vmid),
               XenoUtil.add_offset_to_ip('169.254.1.0',vmid),]


# STEP 5a. Identify any physcial partitions or virtual disks you want the
# domain to have access to, and what you want them accessible as
# e.g. vbd_list = [ ('phy:sda1','sda1', 'w'),
#        ('phy:sda%d' % (3+vmid), 'hda2', 'r'),
#        ('vd:as73gd784dh','hda1','w'),
#        ('phy:cdrom','hdd','r')

vbd_list = [ ('phy:hdb1','hdb1','w' ) ]



# STEP 5b. Set the VBD expertise level.  Most people should leave this
# on 0, at least to begin with - this script can detect most dangerous
# disk sharing between domains and with this set to zero it will only
# allow read only sharing.

vbd_expert = 0


# STEP 6. Build the command line for the new domain. Edit as req'd.
# You only need the ip= line if you're NFS booting or the root file system
# doesn't set it later e.g. in ifcfg-eth0 or via DHCP
# You can use 'extrabit' to set the runlevel and custom environment
# variables used by custom rc scripts (e.g. VMID=, usr= )

netmask = '255.255.0.0'
gateway = '169.254.1.0'
nfsserv = '169.254.1.0'

cmdline_ip =
"ip="+vfr_ipaddr[0]+":"+nfsserv+":"+gateway+":"+netmask+"::eth0:on"
cmdline_root = "root=/dev/hdb1 ro"
#cmdline_root = "root=/dev/nfs nfsroot=/full/path/to/root/directory"
cmdline_extra = "4 VMID=%d usr=/dev/hdb2" % vmid


# STEP 7. Set according to whether you want the script to watch the domain
# and auto-restart it should it die or exit.

auto_restart = False
#auto_restart = True
-----------------------------------------------------
I changed Step 1, 2, 5a, 6

/*****************************************************/
F. umount /dev/hdb1 and /dev/hdb2
    Do " xen_nat_enable" and "xen_read_console &"
/*****************************************************/

/*****************************************************/
G. Do "xc_dom_create.py -Dvmid=1"
/*****************************************************/
Get the dumped messages:
-----------------------------------------------------
[root@target root]# xc_dom_create.py -Dvmid=4
Parsing config file '/etc/xc/defaults'
VM image           : "/boot/xenolinux.gz"
VM ramdisk         : ""
VM memory (MB)     : "128"
VM IP address(es)  : "134.134.22.167; 169.254.1.4"
VM block device(s) : "phy:hdb1,hdb1,w"
VM cmdline         :
"ip=134.134.22.167:169.254.1.0:169.254.1.0:255.255.0.0::eth0:on
root=/dev/hdb1 ro 4 VMID=4 usr=/dev/hdb2"
VM started in domain 1
-----------------------------------------------------

Besides, the system also dumped the booting information:
-----------------------------------------------------
[1] Linux version 2.4.25-xeno (root@target) (gcc version 3.2.2 20030222
(Red Hat Linux 3.2.2-5)) #4 Sat Jul 24 19:44:40 PDT 2004
[1] On node 0 totalpages: 32768
[1] zone(0): 4096 pages.
[1] zone(1): 28672 pages.
[1] zone(2): 0 pages.
[1] Kernel command line:
ip=134.134.22.167:169.254.1.0:169.254.1.0:255.255.0.0::eth0:on
root=/dev/hdb1 ro 4 VMID=4 usr=/dev/hdb2
[1] Initializing CPU#0
[1] Xen reported: 2000.004 MHz processor.
[1] Calibrating delay loop... 7969.17 BogoMIPS
[1] Memory: 127580k/131072k available (1284k kernel code, 3492k reserved,
244k data, 60k init, 0k highmem)
[1] Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
[1] Inode cache hash table entries: 8192 (order: 4, 65536 bytes)
[1] Mount cache hash table entries: 512 (order: 0, 4096 bytes)
[1] Buffer cache hash table entries: 8192 (order: 3, 32768 bytes)
[1] Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
[1] CPU: L1 I cache: 12K, L1 D cache: 8K
[1] CPU: L2 cache: 256K
[1] CPU: Intel(R) Pentium(R) 4 CPU 2.00GHz stepping 02
[1] POSIX conformance testing by UNIFIX
[1] Linux NET4.0 for Linux 2.4
[1] Based upon Swansea University Computer Society NET3.039
[1] Initializing RT netlink socket
[1] Starting kswapd
[1] Journalled Block Device driver loaded
[1] Installing knfsd (copyright (C) 1996 okir@xxxxxxxxxxxx).
[1] Xeno console successfully installed
[1] Starting Xeno Balloon driver
[1] pty: 256 Unix98 ptys configured
[1] RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
[1] loop: loaded (max 8 devices)
[1] NET4: Linux TCP/IP 1.0 for NET4.0
[1] IP Protocols: ICMP, UDP, TCP
[1] IP: routing cache hash table of 1024 buckets, 8Kbytes
[1] TCP: Hash tables configured (established 8192 bind 16384)
[1] IP-Config: Gateway not on directly connected network.
[1] ip_conntrack version 2.1 (1024 buckets, 8192 max) - 292 bytes per
conntrack
[1] ip_tables: (C) 2000-2002 Netfilter core team
[1] NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
[1] root_device_name = hdb1
[1] kjournald starting.  Commit interval 5 seconds
[1] EXT3-fs: mounted filesystem with ordered data mode.
[1] VFS: Mounted root (ext3 filesystem) readonly.
[1] Freeing unused kernel memory: 60k freed
[1] INIT: version 2.84 booting
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty1: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty2: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty3: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty4: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty5: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
[1] /etc/rc.d/rc.sysinit: line 39: /dev/tty6: No such device
[1] modprobe: modprobe: Can't locate module char-major-4
-----------------------------------------------------

The booting step failed at this time.

If someone knows how to fix the problem, please let me know. Thanks a lot!

Xin


On Sat, 24 Jul 2004, Neugebauer, Rolf wrote:

> Hi Xin,
> Looks like your root partition does not have the label "/". In general I
> prefer referring to partitions by their device name rather than label
> because thy are more explicit (and labels can be confusing if you clone
> file-systems).
>
> Anyways, try passing root=/dev/<partition> to XenoLinux and check
> /etc/fstab on that partition to contain device names rather than labels.
> If that doesn't help please post the kernel command line (should be
> printed out on the console) and the content of /etc/fstab and a
> description of your harddisk layout (partitions etc.)
>
> Thanks
> Rolf
>
>
> > -----Original Message-----
> > From: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx [mailto:xen-devel-
> > admin@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Xin Zhao
> > Sent: 24 July 2004 01:25
> > To: Steven Hand
> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxxx
> > Subject: Re: [Xen-devel] help! error in creating a new domain
> >
> > Thanks for Steven's kind help.
> >
> > I tried the ways you suggested. For method a and b, they do not solve
> the
> > problem and I think my configuration is nothing to do with cdrom.
> >
> > So I copy all directories from my normal root filesystem including
> /proc
> > and /etc/grub.conf. Xen stops complaining "kmod: failed to exec
> > /sbin/modprobe -s -k binfmt-9653, errno = 8". Now the system seems to
> > start to boot up. However, it starts to complain the following things:
> >
> > modprobe: Can't locate module usbcore
> > [1] Initializing USB controller (ehci-hcd):  modprobe: Can't locate
> module
> > ehci-hcd
> > [1] [FAILED]
> > [1] Initializing USB controller (usb-uhci):  modprobe: Can't locate
> module
> > usb-uhci
> > [1] [FAILED]
> > [1] Checking root filesystem
> > [1] Couldn't find matching filesystem: LABEL=/
> > [1] [FAILED]
> > [1]
> > [1] *** An error occurred during the file system check.
> > [1] *** Dropping you to a shell; the system will reboot
> > [1] *** when you leave the shell.
> > [1] Give root password for maintenance
> >
> > Note that the last complaint "Couldn't find matching filesystem:
> LABEL=/"
> > seems to be fatal, because the system exits after I input the root
> > password.
> >
> > But what else should I do to fix the problem?
> >
> > Thanks.
> >
> > Xin
> >
> >
> > On Fri, 23 Jul 2004, Steven Hand wrote:
> >
> > >
> > > >When I tried to create a new domain "domain 1", I followed the Yan-
> > Ching
> > > >CHU's guide on :installing quick file systems for new domains in
> Xen
> > 1.2".
> > > >But when I do "xc_dom_create.py -Dvmid=1", Xen seems to start to
> boot
> > with
> > > >some normal bootup information, but right after several proper
> > messages,
> > > >Xen dump many messages "kmod: failed to exec /sbin/modprobe -s -k
> > > >binfmt-9653, errno = 8". I was stuck at this problem for several
> days.
> > > >Please help.
> > >
> > > Looks like a problem with trying to access a zisofs cd from dom1
> using
> > > a kernel which doesn't understand that. Two things to try:
> > >
> > >   a) when you compile xenolinux-2.4.25 ensure that you have zisofs
> > >      support configured in, and/or
> > >
> > >   b) check the config for dom1 to determine why it's trying to
> access
> > >      the CD [which I guess may hold a 1.2 demo disk?]
> > >
> > > Note that in general you're better to just put an entire copy of the
> > > normal root filesystem [used by linux on its own, or by domain 0]
> onto
> > > a new partition for domain 1; trying to use the stripped down
> version
> > > of stuff on the demo CD is generally less sane.
> > >
> > > cheers,
> > >
> > > S.
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.Net email is sponsored by BEA Weblogic Workshop
> > > FREE Java Enterprise J2EE developer tools!
> > > Get your free copy of BEA WebLogic Workshop 8.1 today.
> > > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> > > _______________________________________________
> > > Xen-devel mailing list
> > > Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> > > https://lists.sourceforge.net/lists/listinfo/xen-devel
> > >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by BEA Weblogic Workshop
> > FREE Java Enterprise J2EE developer tools!
> > Get your free copy of BEA WebLogic Workshop 8.1 today.
> > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> > https://lists.sourceforge.net/lists/listinfo/xen-devel
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_idG21&alloc_id040&opÌk
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/xen-devel
>


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.