[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Add HybridISO support for PyGrub2



At 10:17 +0100 on 25 Oct (1319537858), Ian Campbell wrote:
> On Tue, 2011-10-25 at 09:56 +0100, Philipp Hahn wrote:
> > grub-mkrescue internally uses xorriso, which generates a
> > so-called "hybrid ISO": The ISO images also contains a DOS partition table,
> > which allows the identical ISO file to be stored on an USB stick for booting
> > from it. This breaks PyGrub, since it (wrongly) detects the DOS partition 
> > table and uses the first partition instead of the complete ISO file.
> 
> Is the problem here that, having detected a DOS partition, pygrub is
> then unwilling to accept that the partition contains an ISO9660 file
> system?

The problem is that since the disk has a valid MBR partition table,
pygrub tries all the partitions in that but _doesn't_ try the whole
device (as it would if it couldn't find an MBR).

> Or is it that the DOS partition table covers something other
> than the ISO9660 data? Where does the kernel we want to boot actually
> live?
> 
> Is there some reference to the layout of an hybridiso? i.e. what is the
> significance on 0x8006? What are the chances of false positives?

Looking for "\001CD001" at offset 0x8000 is a pretty good way to
identify an ISO9660 image (e.g. I think that's how magic(5) does it).
This patch doesn't _quite_ do that, and in any case this is the wrong
place to do it.  The right fix to have get_partition_offsets() detect
ISO9660 images and add '[0]' to whatever else it comes up with.

Cheers,

Tim.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.