From: Ian Campbell <Ian.Campbell@citrix.com>
To: M A Young <m.a.young@durham.ac.uk>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Wei Liu <wei.liu2@citrix.com>,
Andrew Cooper <Andrew.Cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xen.org>
Subject: running pygrub on split-partition disk layouts.
Date: Fri, 21 Nov 2014 14:18:26 +0000 [thread overview]
Message-ID: <1416579506.17932.10.camel@citrix.com> (raw)
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):
next reply other threads:[~2014-11-21 14:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-21 14:18 Ian Campbell [this message]
2014-11-21 19:05 ` running pygrub on split-partition disk layouts M A Young
2014-12-13 18:22 ` Konrad Rzeszutek Wilk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1416579506.17932.10.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=m.a.young@durham.ac.uk \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.