[CentOS-virt] Has anyone been able to start a Fedora 16 VM in Xen PV?

Tue Jan 10 13:59:56 UTC 2012
Eugene Chupriyanov <e.chupriyanov at cpm.ru>

10.01.2012 4:33, Norman Gaywood пишет:
> On Mon, Jan 09, 2012 at 07:20:05PM -0500, S.Tindall wrote:
>> On Mon, 2012-01-09 at 18:56 -0500, R P Herrold wrote:
>>> On Tue, 10 Jan 2012, Norman Gaywood wrote:
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=746602
>>>> (pygrub cannot start F16 PV guests (GPT partition) under Xen 4.1.1)
>>> why would one use GPT for a domU?  seems like gross overkill
>
>> There are a bunch of grub2-related issues associated with F16 anaconda
>> and one of the easiest ways to deal with them is to use gpt. There is a
>> nogpt kernel option that may help, but I have not tried it.
> Yes, GPT is the default for F16 so it is easier just to go with it. I
> have tried the nogpt option and F16 installs OK (as it does without
> it). However it still can't boot:
>
> [root at dom0 ~]#  sfdisk -d /dev/VM/f16
> # partition table of /dev/VM/f16
> unit: sectors
>
> /dev/VM/f161 : start=     2048, size=  1024000, Id=83, bootable
> /dev/VM/f162 : start=  1026048, size= 40916992, Id=8e
> /dev/VM/f163 : start=        0, size=        0, Id= 0
> /dev/VM/f164 : start=        0, size=        0, Id= 0
> [root at dom0 ~]# pygrub -i /dev/VM/f16
> Traceback (most recent call last):
>    File "/usr/bin/pygrub", line 691, in ?
>      chosencfg = run_grub(file, entry, fs)
>    File "/usr/bin/pygrub", line 545, in run_grub
>      g = Grub(file, fs)
>    File "/usr/bin/pygrub", line 203, in __init__
>      self.read_config(file, fs)
>    File "/usr/bin/pygrub", line 402, in read_config
>      if self.cf.filename is None:
> AttributeError: Grub instance has no attribute 'cf'
>
> The error is in the parsing of the grub2 config I believe.
>
I've managed to setup F16 PV-guest domU under Xen Cloud Platform. It's 
more than just Xen, but solution will be the same.
So what you need to do:
1) Don;t use GPT (install with nogpt kernel parameter)
2) Create bootable /boot partition using ext2 filesystem
3) pygrub looks for grub.cfg in /boot/grub directory (to be exact in 
/grub on /boot fs). But in F16 grub is located ion /boot/grub2.
So I just copied grub.cfg from /boot/grub2 to /boot/grub. Maybe there is 
a better way to keep up-to-date copy of grub.cfg in /boot/grub.
4) pygrub bootloader fails on following line in default grub.cfg:

set default="${saved_entry}"


so I've replaced it with:

set default=0

That should be enough to make f16 to run in PV mode.

Hope it helps.

Eugene