| 
         
xen-users
Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub
 
| 
I think you are facing 2 problems here. 
 
 1. The parsing logic is flaky in pygrub at best. Its a game of catch-up to ensure we are parsing grub.cfg properly. 
 
 2. I *think* at some stage, debian started forcing block devices from xen-blkfront to be /dev/sda instead of /dev/xvda. So once you're dropped to a shell, do a dmesg and look in /dev. 
On 28 May 2011 12:39, Alexandre Chapellon  <a.chapellon@xxxxxxxxx> wrote: 
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 
 |   
 
| Previous by Date:  | 
Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub, Simon Hobson | 
 
| Next by Date:  | 
Re: [Xen-users] RE: Xen PCI Passthrough, Sylvain LALOZE | 
 
| Previous by Thread:  | 
Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub, Simon Hobson | 
 
| Next by Thread:  | 
Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub, Jan Bakuwel | 
 
| Indexes:  | 
[Date]
[Thread]
[Top]
[All Lists] | 
 
 
 
 | 
    |