Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So, I'm trying to convert some domU's I have to use PV mode.

xe-edit-bootloader -u ... -p 2

Finds the menu.lst no problem.

The grub, boot, and root partitions are 1, 2, and 3, respectively. I flagged boot and root as bootable, just to be safe.

Here's the error I get:

$ xe vm-start uuid=ad275e7d-b8c2-673f-6ced-7cfc94eef415 
Error code: Traceback (most recent call last):
Error parameters:   File "/usr/bin/pygrub", line 808, in ?,     fs =, part_offs[0], bootfsoptions), IOError: [Errno 95] Operation not supported, 

Here's some relevant params:

           HVM-boot-policy ( RW): 
           HVM-boot-params (MRW): order: dc
     HVM-shadow-multiplier ( RW): 1.000
                 PV-kernel ( RW): 
                PV-ramdisk ( RW): 
                   PV-args ( RW): console=hvc0 xencons=hvc root=/dev/xvda2 decrypt_initrd decrypt
            PV-legacy-args ( RW): 
             PV-bootloader ( RW): pygrub
        PV-bootloader-args ( RW):

UPDATE: So if it's not clear, I have no idea what I'm doing. I'm just stabbing in the dark at this point. By dumping the variables in that line of pygrub, it looks like it's looking at the first partition. The variable part_offs[0] was an integer that's equal to the starting block of the first partition.

So, clearly I'm not configuring pygrub properly. I haven't found thorough enough documentation on it. Everything is forum posts with how-to's that worked for one of the major distro's. Or in many cases, the info is out of date.

share|improve this question
Don't you need to specify a kernel and initrd for PV VMs? – mgorven Jul 12 '12 at 1:03
I'll try that, but I was under the impression it would read /boot/grub/menu.lst. – kjprice Jul 17 '12 at 21:09
up vote 1 down vote accepted

I found the answer to this awhile back. pygrub expects the boot partition to be number 1. I had to renumber my partitions with parted.

share|improve this answer

If your target VM is a BSD system, pygrub can't read FFSv2. You'll need your root filesystem to be FFSv1 -- which is more easily said than done.

share|improve this answer

You need to specially compile your kernel for PV support. You are correct that pygrub will try and parse grub, but that's not enough. If you tell me which distros you are trying to convert I can help you find a guide

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.