| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 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 
 |