* [PATCH] Fix pygrub --isconfig
@ 2011-01-20 15:52 John Haxby
2011-01-20 16:40 ` Ian Jackson
0 siblings, 1 reply; 4+ messages in thread
From: John Haxby @ 2011-01-20 15:52 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 456 bytes --]
Recentlly, when trying to get to the bottom of some strange booting
problem, I discovered that
pyrgub --isconfig <image file>
usefully reports the kernel, initrd (ramdisk) and arguments that would
be used to boot a kernel. Well, actually, what it reported was an
error. This patch makes it work (and jolly useful it is too). The
patch also removes a spurious "print >>sys.stderr" that seems to have
been left in from some previous debugging.
jch
[-- Attachment #2: pygrub.patch --]
[-- Type: text/x-patch, Size: 1541 bytes --]
diff -r f47b924f74af tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub Tue Jan 18 12:25:54 2011 +0000
+++ b/tools/pygrub/src/pygrub Thu Jan 20 15:46:33 2011 +0000
@@ -400,7 +400,6 @@
for f,parser in cfg_list:
if fs.file_exists(f):
- print >>sys.stderr, "Using %s to parse %s" % (parser,f)
self.cf = parser()
self.cf.filename = f
break
@@ -687,14 +686,6 @@
else:
fd = os.open(output, os.O_WRONLY)
- # debug
- if isconfig:
- chosencfg = run_grub(file, entry, fs, incfg["args"])
- print " kernel: %s" % chosencfg["kernel"]
- if chosencfg["ramdisk"]:
- print " initrd: %s" % chosencfg["ramdisk"]
- print " args: %s" % chosencfg["args"]
- sys.exit(0)
# if boot filesystem is set then pass to fsimage.open
bootfsargs = '"%s"' % incfg["args"]
@@ -704,6 +695,19 @@
else:
fs = fsimage.open(file, get_fs_offset(file))
+ # debug
+ if isconfig:
+ chosencfg = run_grub(file, entry, fs, incfg["args"])
+ if chosencfg.has_key("kernel"):
+ print " kernel: %s" % chosencfg["kernel"]
+ if chosencfg.has_key("ramdisk"):
+ print " initrd: %s" % chosencfg["ramdisk"]
+ if chosencfg.has_key("args"):
+ print " args: %s" % chosencfg["args"]
+ if not chosencfg:
+ print " no config"
+ sys.exit(0)
+
chosencfg = sniff_solaris(fs, incfg)
if not chosencfg["kernel"]:
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix pygrub --isconfig
2011-01-20 15:52 [PATCH] Fix pygrub --isconfig John Haxby
@ 2011-01-20 16:40 ` Ian Jackson
2011-01-21 15:20 ` John Haxby
0 siblings, 1 reply; 4+ messages in thread
From: Ian Jackson @ 2011-01-20 16:40 UTC (permalink / raw)
To: John Haxby; +Cc: xen-devel
John Haxby writes ("[Xen-devel] [PATCH] Fix pygrub --isconfig"):
> Recentlly, when trying to get to the bottom of some strange booting
> problem, I discovered that
>
> pyrgub --isconfig <image file>
>
> usefully reports the kernel, initrd (ramdisk) and arguments that would
> be used to boot a kernel. Well, actually, what it reported was an
> error. This patch makes it work (and jolly useful it is too). The
> patch also removes a spurious "print >>sys.stderr" that seems to have
> been left in from some previous debugging.
Thanks, but this patch doesn't apply to xen-unstable.hg. xen-unstable
has a loop "for offset in part_offs" surrounding the code you seem to
be trying to patch.
Is it important to check for "isconfig" before running sniff_solaris
and sniff_netware ?
Ian.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix pygrub --isconfig
2011-01-20 16:40 ` Ian Jackson
@ 2011-01-21 15:20 ` John Haxby
2011-01-21 15:25 ` Ian Jackson
0 siblings, 1 reply; 4+ messages in thread
From: John Haxby @ 2011-01-21 15:20 UTC (permalink / raw)
To: Ian Jackson; +Cc: xen-devel
[-- Attachment #1: Type: text/plain, Size: 1556 bytes --]
On 20/01/11 16:40, Ian Jackson wrote:
> John Haxby writes ("[Xen-devel] [PATCH] Fix pygrub --isconfig"):
>> Recentlly, when trying to get to the bottom of some strange booting
>> problem, I discovered that
>>
>> pyrgub --isconfig <image file>
>>
>> usefully reports the kernel, initrd (ramdisk) and arguments that would
>> be used to boot a kernel. Well, actually, what it reported was an
>> error. This patch makes it work (and jolly useful it is too). The
>> patch also removes a spurious "print >>sys.stderr" that seems to have
>> been left in from some previous debugging.
> Thanks, but this patch doesn't apply to xen-unstable.hg. xen-unstable
> has a loop "for offset in part_offs" surrounding the code you seem to
> be trying to patch.
Sorry. This patch was originally from something rather older which I
then applied to xen-4.0-testing by mistake.
I have attached an updated patch against xen-unstable.hg.
> Is it important to check for "isconfig" before running sniff_solaris
> and sniff_netware ?
No, it should really be checked after as (presumably) the intention is
to report what would actually be chosen.
Although I have attached the patch to move the isconfig stuff to the
point where the chosenconfig is finally known "pygrub --isconfig" is
functionally equivalent to "pygrub --not-really --output-format simple
--output -" so it might be better just to remove the isconfig code
altogether. You could make it a synonym for the longer command, but as
isconfig has been unloved for quite a while it probably isn't worth it.
jch
[-- Attachment #2: pygrub.patch --]
[-- Type: text/x-patch, Size: 1659 bytes --]
diff -r 003acf02d416 tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub Thu Jan 20 17:04:06 2011 +0000
+++ b/tools/pygrub/src/pygrub Fri Jan 21 15:20:17 2011 +0000
@@ -404,7 +404,6 @@
for f,parser in cfg_list:
if fs.file_exists(f):
- print >>sys.stderr, "Using %s to parse %s" % (parser,f)
self.cf = parser()
self.cf.filename = f
break
@@ -725,15 +724,6 @@
else:
fd = os.open(output, os.O_WRONLY)
- # debug
- if isconfig:
- chosencfg = run_grub(file, entry, fs, incfg["args"])
- print " kernel: %s" % chosencfg["kernel"]
- if chosencfg["ramdisk"]:
- print " initrd: %s" % chosencfg["ramdisk"]
- print " args: %s" % chosencfg["args"]
- sys.exit(0)
-
# if boot filesystem is set then pass to fsimage.open
bootfsargs = '"%s"' % incfg["args"]
bootfsgroup = re.findall('zfs-bootfs=(.*?)[\s\,\"]', bootfsargs)
@@ -769,6 +759,19 @@
fs = None
continue
+ # debug
+ if isconfig:
+ if fs:
+ if chosencfg.has_key("kernel"):
+ print " kernel: %s" % chosencfg["kernel"]
+ if chosencfg.has_key("ramdisk"):
+ print " initrd: %s" % chosencfg["ramdisk"]
+ if chosencfg.has_key("args"):
+ print " args: %s" % chosencfg["args"]
+ else:
+ print " Unable to find partition containing kernel"
+ sys.exit(0)
+
# Did looping through partitions find us a kernel?
if not fs:
raise RuntimeError, "Unable to find partition containing kernel"
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Fix pygrub --isconfig
2011-01-21 15:20 ` John Haxby
@ 2011-01-21 15:25 ` Ian Jackson
0 siblings, 0 replies; 4+ messages in thread
From: Ian Jackson @ 2011-01-21 15:25 UTC (permalink / raw)
To: John Haxby; +Cc: xen-devel@lists.xensource.com
John Haxby writes ("Re: [Xen-devel] [PATCH] Fix pygrub --isconfig"):
> Although I have attached the patch to move the isconfig stuff to the
> point where the chosenconfig is finally known "pygrub --isconfig" is
> functionally equivalent to "pygrub --not-really --output-format simple
> --output -" so it might be better just to remove the isconfig code
> altogether. You could make it a synonym for the longer command, but as
> isconfig has been unloved for quite a while it probably isn't worth it.
Thanks for investigating. Under the circumstances I think we probably
should just leave things as they are for 4.1 and probably make
isconfig an alias for this in 4.2.
Ian.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-01-21 15:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-20 15:52 [PATCH] Fix pygrub --isconfig John Haxby
2011-01-20 16:40 ` Ian Jackson
2011-01-21 15:20 ` John Haxby
2011-01-21 15:25 ` Ian Jackson
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.