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

Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub



What filesystem are you using?
I remember have read pygrub only support ext filesystems.

Le vendredi 27 mai 2011 Ã 16:25 +0100, Simon Hobson a Ãcrit :
> The system is a new install of Debian Squeeze, with Xen 4.0.1 (latest 
> stable package for Debian). I'm trying to get guests booted with 
> pygrub, or even better pvgrub but it's not working for me.
> 
> First off, as far as I can tell, pvgrub isn't in Debian - and it 
> won't be as it's been rejected. Does anyone know if this is being 
> worked on ?
> 
> As for pygrub, that's failing as well. Apart from hitting the known 
> bug that stops GRUB2 from installing on the guest (had to pull a 
> later version down from Testing), starting a domain gives the error :
> 
> >    Error: Boot loader didn't return any data!
> 
> /var/log/xen/xend.log contains :
> 
> >Traceback (most recent call last):
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py", 
> >line 104, in create
> >     vm.start()
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py", 
> >line 469, in start
> >     XendTask.log_progress(31, 60, self._initDomain)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendTask.py", line 209, 
> >in log_progress
> >     retval = func(*args, **kwds)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py", 
> >line 2820, in _initDomain
> >     self._configureBootloader()
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py", 
> >line 3266, in _configureBootloader
> >     bootloader_args, kernel, ramdisk, args)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendBootloader.py", 
> >line 215, in bootloader
> >     raise VmError, msg
> >VmError: Boot loader didn't return any data!
> 
> 
> Following a hint I came across, I tried manually calling pygrub with :
> >  /usr/lib/xen-default/bin/pygrub --args="root=/dev/xvda1 ro" 
> >/dev/vgmain/ipv6root
> 
> And got these errors :
> 
> >Using <class 'grub.GrubConf.Grub2ConfigFile'> to parse /boot/grub/grub.cfg
> >WARNING:root:Unknown directive load_video
> >WARNING:root:Unknown directive terminal_output
> >Traceback (most recent call last):
> >   File "/usr/lib/xen-default/bin/pygrub", line 669, in <module>
> >     chosencfg = run_grub(file, entry, fs, incfg["args"])
> >   File "/usr/lib/xen-default/bin/pygrub", line 549, in run_grub
> >     g = Grub(file, fs)
> >   File "/usr/lib/xen-default/bin/pygrub", line 205, in __init__
> >     self.read_config(file, fs)
> >   File "/usr/lib/xen-default/bin/pygrub", line 413, in read_config
> >     self.cf.parse(buf)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >402, in parse
> >     self.add_image(Grub2Image(title, img))
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >318, in __init__
> >     _GrubImage.__init__(self, title, lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >87, in __init__
> >     self.reset(lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >103, in reset
> >     self._parse(lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >98, in _parse
> >     map(self.set_from_line, lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >328, in set_from_line
> >     setattr(self, self.commands[com], arg.strip())
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >106, in set_root
> >     self._root = GrubDiskPart(val)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >57, in __init__
> >     self.disk = str
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line 
> >70, in set_disk
> >     self._disk = int(val[2:])
> >ValueError: invalid literal for int() with base 10: 'ev/xvda1'
> 
> 
> Based on the last line of that, I tried an experiment and edited the 
> script. AFAICS, the line in question is trying to extract a number 
> from a device name, so I tried changing it from
> >self._disk = int(val[2:])
> to
> >self._disk = int(val[9:])
> 
> I can then get the GRUB menu, and then quits - putting :
> >linux (kernel /var/run/xend/boot/boot_kernel._IqLoQ)(ramdisk 
> >/var/run/xend/boot/boot_ramdisk.XUIE7W)(args 
> >"root=UUID=0fdd2127-ff17-4bd4-b1b8-08fd8b27ec9a ro  quiet 
> >root=/dev/xvda1 ro")
> to the terminal - but not starting the guest.
> 
> Trying to start the guest with "xm create -c ipv6" gives :
> 
> >Started domain ipv6 (id=3)
> >                           [    0.204334] PCI: Fatal: No config space 
> >access function found
> >[    0.251557] i8042.c: No controller found.
> >Loading, please wait...
> >mount: No such device
> >W: devtmpfs not available, falling back to tmpfs for /dev
> >Gave up waiting for root device.  Common problems:
> >  - Boot args (cat /proc/cmdline)
> >    - Check rootdelay= (did the system wait long enough?)
> >    - Check root= (did the system wait for the right device?)
> >  - Missing modules (cat /proc/modules; ls /dev)
> >ALERT!  /dev/xvda1 does not exist.  Dropping to a shell!
> >(initramfs)
> 
> So it seems to have started the guest, but not with the right setup.
> 
> If I change the boot settings back to using kernel= and ramdisk= 
> gives me a working guest again.
> 
> Any hints ?
> 
> Bear in mind that I'm trying to keep it entirely with packaged 
> software, and 4.1 is only in the Debian unstable repository at the 
> moment.
> 



_______________________________________________
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®.