WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

[Xen-users] Unable to create guest

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] Unable to create guest
From: Dermot <paikkos@xxxxxxxxx>
Date: Fri, 5 Nov 2010 15:19:28 +0000
Delivery-date: Fri, 05 Nov 2010 08:20:46 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=Eigk4JvgGqguuK+BYtPFCWMe4DLG7NV0DJHEFX7yQdE=; b=pA6jSGVAGOWS3uU7o31xtN0Hi17YDmS34GN4qjAVWMZQtwWjQMLpAyo7N1yb1aJZyc YDhu/xHu+VGev6BwmefoI89O+N2H09qA9/2h5jkd9/2UARogoY1KNLW+TYZ7WfVeC4cQ BZxvX3O9L9bLmrtR/f+tep1BHaoT4OhaBewWM=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=eBC7/SAg8xmPBazbdKcFOPYGhUGpQjbEmhryq5fXGX2sYK21q5GaFETV2K7E1LLzvY aKDxvqt/+g3F+zr9j3Tq080zaXeGzhWAENrFJynpHN35dSUxk2yYiDOszTJBNpRFsidd 7xXMLMXs/KhFEJRhia4MWPxBp9vMCDYLYcrHI=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

(Apoloises for earlier false send)

Host: CentOS 5.5
Guest: Ubuntu - maverick on LVM Volume
With Debian Installer specific variables

I am having a horrid time trying to create a guest on my host. I have
tried several method but they all fail for one reason or another. I
have had the most success with `xm create` but the problem I have with
`xm create` is that once the installation process is over and I am
asked to reboot, the dom no longer apepars in `xm list`.

Here is how I have created the guest, the config file is below:

xm create -c myconf.cfg install=true
install-mirror=http://mirror.bytemark.co.uk/ubuntu/
install-suite=maverick


While the guest OS is being installed, I can see it:
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0    21880    24 r-----   2485.6
test-03                                       8    10240     1 -b----    498.0

When the OS install is complete, I get the message: "Installation is
complete, so it is time to boot into your new system.". I press
continue, the OS shutdown but rather than staying in the xm list as
Shutdown, it does not appear on the list.

If I try `xm create myconf.cfg -c`, I get:
 xm create -c myconf.cfg
Using config file "/etc/xen/myconf.cfg".
Error: Bootloader isn't executable

I move past this error by editing my config and making giving the path
to pygrub (bootloader = '/usr/bin/pygrub')

But then I get this traceback:

[root@vega ~]# xm create -c myconf.cfg
Using config file "/etc/xen/myconf".
Traceback (most recent call last):
  File "/usr/bin/pygrub", line 682, in ?
    chosencfg = run_grub(file, entry, fs)
  File "/usr/bin/pygrub", line 536, in run_grub
    g = Grub(file, fs)
  File "/usr/bin/pygrub", line 203, in __init__
    self.read_config(file, fs)
  File "/usr/bin/pygrub", line 397, in read_config
    raise RuntimeError, "couldn't find bootloader config file in the
image provided."
RuntimeError: couldn't find bootloader config file in the image provided.
No handlers could be found for logger "xend"
Error: Boot loader didn't return any data!

I then run pygrub directly on the VM
#pygrub /dev/mapper/VM-live--03--disk
Traceback (most recent call last):
  File "/usr/bin/pygrub", line 682, in ?
    chosencfg = run_grub(file, entry, fs)
  File "/usr/bin/pygrub", line 536, in run_grub
    g = Grub(file, fs)
  File "/usr/bin/pygrub", line 203, in __init__
    self.read_config(file, fs)
  File "/usr/bin/pygrub", line 397, in read_config
    raise RuntimeError, "couldn't find bootloader config file in the
image provided."
RuntimeError: couldn't find bootloader config file in the image provided.

Can anyone offer any advice on why the the dom is not visible after
the VM has been created or how I can get past this (py)grub problem?
Thanks in advance,
Dp.


==== myconf.cfg =====

#
# Configuration file for the Xen instance spl-live-03, created
# by xen-tools 4.2 on Fri Nov  5 11:04:33 2010.
#
#  Kernel + memory size
#

#bootloader = '/usr/bin/pygrub'

vcpus       = '1'
memory      = '10240'

#  Disk device(s).
#
root        = '/dev/xvda1 ro'
disk        = [
                  'phy:/dev/VM/spl-live-03-disk,xvda,w',
              ]

#
#  Physical volumes
#


#
#  Hostname
#
name        = 'spl-live-03'

#
#  Networking
#
dhcp        = 'dhcp'
vif         = [ 'mac=00:16:3E:1E:65:85' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

# Debian Installer specific variables

def check_bool(name, value):
    value = str(value).lower()
    if value in ('t', 'tr', 'tru', 'true'):
        return True
    return False

global var_check_with_default
def var_check_with_default(default, var, val):
    if val:
        return val
    return default

xm_vars.var('install', use='Install Debian, default: false', check=check_bool)
xm_vars.var("install-method",
            use='Installation method to use "cdrom" or "network"
(default: network)',
            check=lambda var, val: var_check_with_default('network', var, val))

# install-method == "network"
xm_vars.var("install-mirror",
            use='Debian mirror to install from (default:
http://archive.ubuntu.com/ubuntu)',
            check=lambda var, val:
var_check_with_default('http://archive.ubuntu.com/ubuntu', var, val))
xm_vars.var("install-suite",
            use='Debian suite to install (default: maverick)',
            check=lambda var, val: var_check_with_default('maverick', var, val))

# install-method == "cdrom"
xm_vars.var("install-media",
            use='Installation media to use (default: None)',
            check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-cdrom-device",
            use='Installation media to use (default: xvdd)',
            check=lambda var, val: var_check_with_default('xvdd', var, val))

# Common options
xm_vars.var("install-arch",
            use='Debian mirror to install from (default: amd64)',
            check=lambda var, val: var_check_with_default('amd64', var, val))
xm_vars.var("install-extra",
            use='Extra command line options (default: None)',
            check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-installer",
            use='Debian installer to use (default: network uses
install-mirror; cdrom uses /install.ARCH)',
            check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-kernel",
            use='Debian installer kernel to use (default: uses
install-installer)',
            check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-ramdisk",
            use='Debian installer ramdisk to use (default: uses
install-installer)',
            check=lambda var, val: var_check_with_default(None, var, val))

xm_vars.check()

if not xm_vars.env.get('install'):
    bootloader="pygrub"
elif xm_vars.env['install-method'] == "network":
    import os.path
    print "Install Mirror: %s" % xm_vars.env['install-mirror']
    print "Install Suite: %s" % xm_vars.env['install-suite']
    if xm_vars.env['install-installer']:
        installer = xm_vars.env['install-installer']
    else:
        installer =
xm_vars.env['install-mirror']+"/dists/"+xm_vars.env['install-suite'] +
\

"/main/installer-"+xm_vars.env['install-arch']+"/current/images"
    print "Installer: %s" % installer

    print
    print "WARNING: Installer kernel and ramdisk are not authenticated."
    print

    if xm_vars.env.get('install-kernel'):
        kernelurl = xm_vars.env['install-kernel']
    else:
        kernelurl = installer + "/netboot/xen/vmlinuz"

    if xm_vars.env.get('install-ramdisk'):
        ramdiskurl = xm_vars.env['install-ramdisk']
    else:
        ramdiskurl = installer + "/netboot/xen/initrd.gz"

    import urllib
    class MyUrlOpener(urllib.FancyURLopener):
        def http_error_default(self, req, fp, code, msg, hdrs):
            raise IOError("%s %s" % (code, msg))
    urlopener = MyUrlOpener()

    try:
        print "Fetching %s" % kernelurl
        kernel, _ = urlopener.retrieve(kernelurl)
        print "Fetching %s" % ramdiskurl
        ramdisk, _ = urlopener.retrieve(ramdiskurl)
    except IOError, _:
        raise

elif xm_vars.env['install-method'] == "cdrom":
    arch_path = { 'i386': "/install.386",
                  'amd64': "/install.amd" }

    if xm_vars.env['install-media']:
        print "Install Media: %s" % xm_vars.env['install-media']
    else:
        raise OptionError("No installation media given.")

    if xm_vars.env['install-installer']:
        installer = xm_vars.env['install-installer']
    else:
        installer = arch_path[xm_vars.env['install-arch']]

    print "Installer: %s" % installer

    if xm_vars.env.get('install-kernel'):
        kernelpath = xm_vars.env['install-kernel']
    else:
        kernelpath = installer + "/xen/vmlinuz"

    if xm_vars.env.get('install-ramdisk'):
        ramdiskpath = xm_vars.env['install-ramdisk']
    else:
        ramdiskpath = installer + "/xen/initrd.gz"

    disk.insert(0, 'file:%s,%s:cdrom,r' % (xm_vars.env['install-media'],
                                           xm_vars.env['install-cdrom-device']))

    bootloader="/usr/bin/pygrub"
    bootargs="--kernel=%s --ramdisk=%s" % (kernelpath, ramdiskpath)
    print "From CD"
else:
    print "WARNING: Unknown install-method: %s." % xm_vars.env['install-method']

if xm_vars.env.get('install'):
    # Figure out command line
    if xm_vars.env['install-extra']:
        extras=[xm_vars.env['install-extra']]
    else:
        extras=[]

    # Reboot will just restart the installer since this file is not
    # reparsed, so halt and restart that way.
    extras.append("debian-installer/exit/always_halt=true")
    extras.append("--")
    extras.append("quiet")

    console="hvc0"
    try:
        if len(vfb) >= 1:
            console="tty0"
    except NameError, e:
        pass

    extras.append("console="+ console)

    extra = str.join(" ", extras)
    print "command line is \"%s\"" % extra

======================

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-users] Unable to create guest, Dermot <=