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

Re: using isohybrid for usb bootable isos



Thomas Schmitt writes:
> Hi,
> 
> i'm the developer of xorriso. (Cc me, please)
> 
> Joey Hess wrote:
> > Assuming debian-cd does
> > switch to xorriso, so after it supports jidgo
> 
> We should begin to write down an exact specification of the jigdo
> files which xorriso shall produce during the run by which it
> generates an ISO image. (Shall it generate a ready-to-mount image
> at all ?)
> 
> I did read
>   http://atterer.org/jigdo/debian-jigdo-mini-howto#HOWJIGDOWORKS
> and believe to understand the principles.
> I assume that xorriso shall act like jigdo-file and produce
> at least the .template file. Is there a byte-by-byte specification
> of its format ?

I haven't seen such specification, however, this machinery is already written 
and in place. If you pull from cdrkit from svn you can get Steve's code 
addition to genisoimage. These files are self-contained, ignoring certain 
error-reporting related macros et all:

* md5.c (we have that already in libburnia)
* jte.c and jte.h (main routines, we should learn to use)
* endian.c and rsync.c (supporting routines)
* boot-alpha.c, boot-hppa.c, boot-mips.c boot-mispel.c - we can ignore these 
for now, but they add stuff specific to booting on these architectures, instead 
of post-process them later.

(so, Steve's code should serve us as specification;-)
 
> What about the .jigdo file ? Is it prepared by a different tool ?
> Shall xorriso produce parts of it ?
> Or shall xorriso read it in order to learn which files are known ?

image generator should output both *.template and .jigdo files. 

The whole thing starts with initializing the *.template by 
jte.c:write_template_header(), 

Then at all places where data is to be written to the iso image, same data are 
passed to jte.c:jtwrite() to be put into *.template or store an entry which 
hashsum is to be added later to the *.jigdo file (I haven't completely 
deciphered these actions, yet;-). 

When *.template is finished, it calls jte.c:write_jigdo_file() to write the 
entries (actually their hashsums) not present in template, to the *.jigdo file.


Rf: relevant jigdo options are:
(explained at http://www.einval.com/~steve/software/JTE/)

genisoimage -J -r -o /home/steve/test1.iso \
        -jigdo-jigdo /home/steve/test1.jigdo \
        -jigdo-template /home/steve/test1.template \
        -jigdo-min-file-size 16384 \
        -jigdo-ignore "README*" \
        -jigdo-force-md5 "/pool/" \
        -jigdo-map Debian=/mirror/debian \
        -md5-list /home/steve/md5.list \
        /mirror/jigdo-test

-- 
pub 4096R/0E4BD0AB <people.fccf.net/danchev/key pgp.mit.edu>


Reply to: