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

Re: [Xen-users] How to solve "Error: Boot loader didn't return any data"



Hello Philipp ,

    > Hello Bryant,
    >
    > On Thursday 01 December 2011 09:42:14 Bryant Kobe wrote:
    >> I am a newcomer to xen , which i study in recent months . I have deploy the
    >> xen-4.1.2 on dell server , centos as dom0 ,  now , i use the vhd format to
    >> be the virtual hard disk , after i execute
    >>  " xm new ***.cfg" ,
    >> this vm  generate the vm in "xm list" ,
    >
    > This just creates a persistent domain in Xend from your configuration file.
    >
    >> but when i execute
    >>  " xm start *** ",
    >
    > This is what then starts the domain as currently configured in Xend.
    >
    >> "Error: Boot loader didn't return any data " happened ,
    >>  i refer the official document , saying that "*make sure that the
    >> partition/lvm/container that contains the kernel and initrd comes first " ,
    >> *but i have provide the vhd containing guest OS .
    >
    > You didn't tell what guest OS you try to boot. PyGrub as the name should tell
    > you is an implementation of Grub in Python, used to extract the (Linux)
    > kernel and it's ram-disk from the disk to then run it as a PV domain.
    > If your guest is not an PV capable OS, you need to define a HV domain.
    > You should have a look at /var/log/xen/xend.log and xend-debug.log (or where
    > ever they are located in CentOS.)

my guest OS is also centos5.6 , the error message in /var/log/xen/xend.log is :
"""
[2011-12-02 11:26:40 17507] DEBUG (XendBootloader:123) Launching bootloader as ['/usr/bin/pygrub', '--output=/var/run/xend/boot/xenbl.14220', '-q', '/dev/xvdp'].
[2011-12-02 11:26:41 4270] ERROR (XendBootloader:224) Boot loader didn't return any data!
[2011-12-02 11:26:41 4270] INFO (XendDomainInfo:3288) Unmounting /dev/xvdp from /dev/xvdp.
[2011-12-02 11:26:41 4270] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = tap2, device = /dev/xvdp
[2011-12-02 11:26:41 4270] DEBUG (DevController:649) deviceDestroyCallback /local/domain/0/backend/vbd/0/51952/hotplug-status.
[2011-12-02 11:26:41 4270] DEBUG (DevController:658) deviceDestroyCallback 6.
[2011-12-02 11:26:41 4270] ERROR (XendDomainInfo:488) VM start failed
Traceback (most recent call last):
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 474, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 2838, in _initDomain
    self._configureBootloader()
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 3285, in _configureBootloader
    bootloader_args, kernel, ramdisk, args)
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendBootloader.py", line 225, in bootloader
    raise VmError, msg
VmError: Boot loader didn't return any data!
[2011-12-02 11:26:41 4270] DEBUG (XendDomainInfo:3071) XendDomainInfo.destroy: domid=27
[2011-12-02 11:26:41 4270] DEBUG (XendDomainInfo:2406) No device model
[2011-12-02 11:26:41 4270] DEBUG (XendDomainInfo:2408) Releasing devices
"""

    >> This situation doesn't occur every time i execute the above instruction ,
    >>  but once happened , i would not start any vm later , unless reboot server.
    >> I have search many references , try some methods for several weeks , but
    >> all don't work !
    >
    > To rule out any Xen internal problems, you can try something like this:
    > 1. create a blktap device by hand
    >  # tap-ctl create -avhd:/path/to/your/image.vhd
    > This should then print something like "/dev/xen/blktap-2/tapdev6"
    >  2. Check that the tapdisk works:
    >  # file -s "/dev/xen/blktap-2/tapdev6"
    >   This should print something like this:
    >  /dev/xen/blktap-2/tapdev6: x86 boot sector; partition 1: ID=0x83, active, 
    >  starthead 1, startsector 63, 626472 sectors; partition 2: ID=0x83, starthead  
    > 0, startsector 626535, 2040255 sectors; partition 3: ID=0x8e, starthead 0,
    >  startsector 2666790, 39262860 sectors, code offset 0x63
    > 3. Run pygrub on that device:
    > # pygrub "/dev/xen/blktap-2/tapdev6"
    > This should display the PyGrub menu. After selecting a kernel, PyGrub should
    > print somethin like this:
    >  linux (kernel /var/run/xend/boot/boot_kernel.g9ssQ9)
    >  (ramdisk /var/run/xend/boot/boot_ramdisk.jAfNI9)
    >  (args "root=/dev/mapper/vg_ucs-rootfs ro  splash  quiet loglevel=0 vga=788 ")
    > 4. Destroy the blktap device to clean up step 1.
    > # tap-ctl list | grep -F "/path/to/your/image.vhd"
    > # tap-ctl destroy -p $pid -m $minor
    > where $pid and $minor should be taken from the command above.

I have done follow your above four instructions , get the similar results , 
after executing  1,2,3 , I try to "xm start ***.vhd" , but still get "VmError: Boot loader didn't return any data!"

however , this method is workable in xen4.0.3+centos5.6(dom0) . 
(maybe this is not a good method to start a vm(centos5.6)

which seem to that the vhd file of vm has been mounted , but vm still cannot be started ,
so now rule out the possibility that the vhd file of the vm cannot be mounted . 

after failed some times , I  check xenstore , find the following strange info : 

[root@xen212 centos]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     8     r-----   1537.4
[root@xen212 centos]# xenstore-list /vm
00000000-0000-0000-0000-000000000000
00000000-0000-0000-0000-000000000000-1
5e4843f3-9ed7-462a-9b41-f07577406b0d
00000000-0000-0000-0000-000000000000-2
00000000-0000-0000-0000-000000000000-3
00000000-0000-0000-0000-000000000000-4
00000000-0000-0000-0000-000000000000-5

As far as I know , xenstore only preserves information of running vms . There is only dom0 running , but  xenstore  contain other vms' information ,I don't know what problems had happened . 
what do the strange uuids means ?
Do these strange info related to previous error "VmError: Boot loader didn't return any data!" ?

I have read the source code of start in xend written in python , which seems to have little help to solve the problem , should I need to read the underlying C code to realize more info?

    >
    > Sincerely
    > Philipp

    > PS: If by chance any of your files contains blanks or equal-signs, please let
    > me know, since I spotted a Bug in handling them.

I am sure my files don't contain blanks or equal-signs .

thanks  a lot !

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

 


Rackspace

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