|
|
|
|
|
|
|
|
|
|
xen-devel
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
|
|
|
|
|