[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] running pygrub on split-partition disk layouts.
An absolute age ago Michael posted a patch to allow pygrub to work with split-partition layouts (i.e. those where the guests disk cfg refers to xvda1, xvda2, etc rather than an xvda with a partition table). See http://lists.xen.org/archives/html/xen-devel/2011-01/msg02076.html (patch itself is below). Apparently at the time I was of the opinion that this was a reasonable workaround for the underlying issue (although I seem to have thought I had a better solution, not so sure right now...). I'm not sure why it didn't go in (in the likely event I just dropped the ball -- sorry!). Anyway, this resurfaced recently in the context of Debian bug #745419: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419#27 #745419 seems to be unrelated to Michael's issue, it is a full disk image case with an MBR etc. Michael, are you still carrying this patch to the Fedora packages? If so presumably it is without issue in the field so to speak? Should the patch be resurrected for either 4.5 or 4.6? Or does anyone have any other insights into the various issues? Ian. --- xen-4.1.0/tools/pygrub/src/pygrub.orig 2010-12-31 15:24:11.000000000 +0000 +++ xen-4.1.0/tools/pygrub/src/pygrub 2011-01-30 18:58:17.000000000 +0000 @@ -96,6 +96,7 @@ fd = os.open(file, os.O_RDONLY) buf = os.read(fd, 512) + offzerocount = 0 for poff in (446, 462, 478, 494): # partition offsets # MBR contains a 16 byte descriptor per partition @@ -105,6 +106,7 @@ # offset == 0 implies this partition is not enabled if offset == 0: + offzerocount += 1 continue if type == FDISK_PART_SOLARIS or type == FDISK_PART_SOLARIS_OLD: @@ -123,6 +125,9 @@ else: part_offs.append(offset) + if offzerocount == 4: + # Might be a grub boot sector pretending to be an MBR + part_offs.append(0) return part_offs class GrubLineEditor(curses.textpad.Textbox): _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |