Bryant Kobe
2011-Dec-01 08:42 UTC
How to solve "Error: Boot loader didn''t return any data"
Hello , everyone 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" , but when i execute " xm start *** ", "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 . 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 ! Thank you in advance ! Any of your help will be appreciated ! _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Philipp Hahn
2011-Dec-01 10:34 UTC
Re: How to solve "Error: Boot loader didn''t return any data"
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.)> 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. 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. -- Philipp Hahn Open Source Software Engineer hahn@univention.de Univention GmbH Linux for Your Business fon: +49 421 22 232- 0 Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99 http://www.univention.de/ _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Bryant Kobe
2011-Dec-02 06:53 UTC
Re: 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@lists.xensource.com http://lists.xensource.com/xen-users
Jan Bakuwel
2011-Dec-02 08:53 UTC
Re: How to solve "Error: Boot loader didn''t return any data"
Hi Bryant, Which filing system are you using for your domU? Please note you''ll need to use ext3/4 for pygrub. Jan On 02/12/11 19:53, Bryant Kobe wrote:> 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@lists.xensource.com > http://lists.xensource.com/xen-users