WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Add HybridISO support for PyGrub2
From: Philipp Hahn <hahn@xxxxxxxxxxxxx>
Date: Tue, 25 Oct 2011 12:33:41 +0200
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 25 Oct 2011 03:34:58 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1319534259.3385.224.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Univention.de
References: <201110251057.06774.hahn@xxxxxxxxxxxxx> <1319534259.3385.224.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.10 (enterprise35 20100903.1171286)
Hello Ian,

Am Dienstag 25 Oktober 2011 11:17:38 schrieb Ian Campbell:
> 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?

PyGrub chcks for the DOS partition table by reading the last two bytes of the 
first 512 byte sector. Since the HybridISO has a valid partition table, the 
first partition starting at offset 512 is used instead of the full image 
starting at offset 0.

> Or is it that the DOS partition table covers something other 
> than the ISO9660 data?

As far as I understood it, the partition covers the same area of the iso to 
protect it from accidently trashing the data on the stick. But since it has 
different sector sizes (512 vs 2048) and offsets (512 vs. 0), the data 
actually looks like garbage (at least "file" detects nothing)

> Where does the kernel we want to boot actually 
> live?

In the ISO starting at offset 0.

> Is there some reference to the layout of an hybridiso?

You might want to take a look at syslinux from hpa; his web-page still seems 
to be unaccessable.
<http://forum.avira.com/wbb/index.php?page=Thread&threadID=99493> has a short 
summary.

> i.e. what is the  significance on 0x8006?

It's what "file" does to detect ISO-Images. At offset 0x8000 the ISO 9660 
Primary Volume Descriptor starts. From offset [2..6[ is the "id", which most 
often is "CD001". See 
<http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html> for a 
complete spec.

> What are the chances of false positives? 

Existing, but small: 1:2^40.
As fas as I know many Linux distributions use the HybridISO trick. I've read 
from Debian, Ubuntu, Arch Linux,Gentoo. But they don't seem to use PyGrub 
with Xen for PV installations ;-)

Sincerely
Philipp
-- 
Philipp Hahn           Open Source Software Engineer      hahn@xxxxxxxxxxxxx
Univention GmbH        Linux for Your Business        fon: +49 421 22 232- 0
Mary-Somerville-Str.1  D-28359 Bremen                 fax: +49 421 22 232-99
                                                   http://www.univention.de/

Attachment: signature.asc
Description: This is a digitally signed message part.

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