From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: running pygrub on split-partition disk layouts. Date: Sat, 13 Dec 2014 13:22:39 -0500 Message-ID: <20141213182239.GA31121@laptop.dumpdata.com> References: <1416579506.17932.10.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1416579506.17932.10.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: Wei Liu , xen-devel , Andrew Cooper , Ian Jackson , M A Young List-Id: xen-devel@lists.xenproject.org On Fri, Nov 21, 2014 at 02:18:26PM +0000, Ian Campbell wrote: > 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? ping? > > 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@lists.xen.org > http://lists.xen.org/xen-devel