Thomas Schmitt
2008-Oct-07 11:18 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Hi, we are the developers of an alternative to mkisofs: program xorriso from libburnia-project.org . The current development cycle is about support for creating bootable CDs, DVDs, BDs. So we look for testers and for advise about ISOLINUX specifics. The example from the ISOLINUX wiki is supposed to work if you replace "mkisofs" by "xorriso -as mkisofs". I.e: xorriso -as mkisofs -o output.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ root-of-iso-tree xorriso is based on code entirely independent of cdrtools or cdrkit. It runs on Linux 2.4 and 2.6, covers the core features of mkisofs, cdrecord, growisofs, and provides some extras. Our own experiments were made with mounted bootable CDs as source. So we had not to know more than is described in the ISOLINUX wiki. On blank media one can do: xorriso -as mkisofs \ -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ /media/dvd \ | \ xorriso -as cdrecord -v dev=/dev/hdc - xorriso also serves as "cdrecord" here. One can have the same in xorriso's own command notation and with automatic blanking of media which need it: xorriso -outdev /dev/hdc \ -blank as_needed \ -map /media/dvd / \ -boot_image isolinux dir=/boot/isolinux xorriso is comprised of the following components: - libisofs under responsibility of Vreixo Formoso, - libburn, libisoburn, xorriso under responsibility of me, Thomas Schmitt. Neither Vreixo nor i have experience with creating live CDs or DVDs. Vreixo knows about ECMA-119 (aka ISO 9660) and El Torito. I know about MMC (for driving burners) and about the xorriso application. So if the ISOLINUX community is interested in having a custom-tailored ISO 9660 and MMC burn program, here is the chance to exert influence. xorriso's -boot_image class "isolinux" is open to any special requirements. We would like to implement plausibility checks and to be able to recognize whether an existing El-Torito record points to an ISOLINUX system. ------------------------------------------------- Questions which arised during testing: - Should we disable version numbers and mandatory dots in the ISO 9660 filenames ? There are texts around in the web which demand this but our boot experiments worked although we kept those features as prescribed by the ECMA-119 specs. - Is it normal that existing BIOSes violate the El Torito specification by reading the boot record from the _first_ session rather than from the _last_ session (i.e last_session_start_lba + 0x11) ? Our tests with multi-session CD-RW and DVD-RW showed that - they boot if the first session was bootable - they don't boot if the first session was not bootable regardless whether the last session is bootable or not. Test were made with a Asus A7V8X-X of year 2004 and a Asus P3B-F of 1999. We are quite sure that it is not about our own efforts since on DVD+RW we can happily switch from bootable to non-bootable and vice-versa by overwriting the first 32 blocks on media after adding a new session. - How to recognize an existing ISOLINUX boot image after having detected an El Torito boot record ? The record leads us to the isolinux.bin file. Is there a reliable signature in it ? E.g. is this hardcoded or is it user defined: 0001560 X 342 347 f a f 235 303 \r \n I S O L I N 0001600 U X 3 . 3 6 2 0 0 7 - 0 2 - 0001620 1 0 \0 C o p y r i g h t ( (found in Recovery Is Possible 2.9 CD image) ------------------------------------------------- For testers: The current semi-stable development snapshot of xorriso is available as http://scdbackup.sourceforge.net/xorriso-0.2.7.tar.gz xorriso depends only on Linux kernel, libc and libpthread. Installation: tar xzf .../xorriso-0.2.7.tar.gz cd xorriso-0.2.7 ./configure make Use the emerging binary ./xorriso/xorriso or do as superuser make install For accessing drive device files you need rw-permission but there is no need to be superuser. Disk files are addressed like: -outdev "stdio:/my/file/path" Standard output for piping: -outdev "-" man page online: http://scdbackup.sourceforge.net/man_1_xorriso_devel.html home page http://scdbackup.sourceforge.net/xorriso_eng.html The stable version 0.2.6 is _not_ suitable for ISOLINUX experiments. Use only 0.2.7 or later. ------------------------------------------------- Have a nice day :) Thomas
H. Peter Anvin
2008-Oct-07 16:24 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Thomas Schmitt wrote: >> Questions which arised during testing: > > - Should we disable version numbers and mandatory > dots in the ISO 9660 filenames ? > > There are texts around in the web which demand this > but our boot experiments worked although we kept > those features as prescribed by the ECMA-119 specs.Not by default.> > - Is it normal that existing BIOSes violate the > El Torito specification by reading the boot record > from the _first_ session rather than from the _last_ > session (i.e last_session_start_lba + 0x11) ? >It's BIOSes. Of course they violate the spec.> - How to recognize an existing ISOLINUX boot image after > having detected an El Torito boot record ? > > The record leads us to the isolinux.bin file. Is there > a reliable signature in it ? > E.g. is this hardcoded or is it user defined: > 0001560 X 342 347 f a f 235 303 \r \n I S O L I N > 0001600 U X 3 . 3 6 2 0 0 7 - 0 2 - > 0001620 1 0 \0 C o p y r i g h t ( > (found in Recovery Is Possible 2.9 CD image)No, there is no reliable signature in isolinux.bin. There is a reliable signature at offset 64 in the variants that support hybrid mode. For those, you may want to implement the equivalent of the isohybrid program into your tool. -hpa
Dag Wieers
2008-Oct-08 10:28 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
On Tue, 7 Oct 2008, Thomas Schmitt wrote:> we are the developers of an alternative to mkisofs: > program xorriso from libburnia-project.org .I have packages in RPMforge now of 0.2.6.pl01 and 0.2.7 for RHEL2.1, RH7, RH9, RHEL3, RHEL4 and RHEL5 for i386 an x86_64 and they all build fine :) (Which in itself is amazing if you'd realize how old RHEL2.1 is !) You can find the SPEC files here: http://svn.rpmforge.net/svn/trunk/rpms/xorriso/ And the packages will be available tomorrow from: http://packages.sw.be/xorriso/ Kind regards, -- -- dag wieers, dag at wieers.com, http://dag.wieers.com/ -- [Any errors in spelling, tact or fact are transmission errors]
Thomas Schmitt
2008-Oct-08 11:15 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Hi, Dag Wieers wrote:> I have packages in RPMforge now of 0.2.6.pl01 and 0.2.7 for RH ...ISOLINUX users be warned again that 0.2.6 is not suitable although its man page promises patching of an existing ISOLINUX boot image. We got a bug in there. (0.2.4 did work.) Beginning with upcoming release 0.2.8 i would advise to use stable relases for production purposes. They can be recognized by the .plXX suffix and the pare number before that suffix. E.g. 0.2.8.pl00. Any successful testing so far ? Have a nice day :) Thomas
Helmut Hullen
2008-Oct-10 10:18 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Hallo, Thomas, Du (scdbackup) meintest am 08.10.08:> I understand from the code of util/isohybrid > that the ISOLINUX user is supposed to produce a > specially enabled isolinux.bin as first step. > Else util/isohybrid would run into this:> 79 if ($ibsig ne "\xfb\xc0\x78\x70") { > 80 die "$0: $file: bootloader is missing isolinux.bin hybrid > signature\n". 81 "Note: isolinux-debug.bin does not support hybrid > booting\n"; 82 }Have I to make this file "isolinux.bin" manually? Or do I need some special program? Or have I to copy some existent file into my *.iso source? I produce the *.iso file with "mkisofs" from the slackware package "cdrtools-2.01.01a36" (or newer). Viele Gruesse! Helmut
Thomas Schmitt
2008-Oct-10 14:21 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Hi, Helmut Hullen wrote:> Hallo, Thomas, > ...me, previously:> > I understand from the code of util/isohybrid > > that the ISOLINUX user is supposed to produce a > > specially enabled isolinux.bin as first step.Helmut:> Have I to make this file "isolinux.bin" manually?Seems i misunderstood it a bit. So i am possibly not the right person to ask. :)) In syslinux-3.72/doc/isolinux.txt i read: " Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can be booted from either CD-ROM or from a device which BIOS considers a hard disk or ZIP disk, e.g. a USB key or similar. To enable this mode, the .iso image should be postprocessed with the "isohybrid" script from the utils directory: " So obviously ISOLINUX is enabled for isohybrid by default in the new ISOLINUX version. H. Peter Anvin seems not to object if one applies the manipulations of utils/isohybrid by default.> I produce the *.iso file with "mkisofs" from the slackware package > "cdrtools-2.01.01a36" (or newer).It should work with ISO images from mkisofs or genisoimage or xorriso-0.2.7 if only isolinux.bin is ready for it. The reason for the manipulation run is the fact that none of the current ISO 9660 generators writes a Master Boot Record at the start of its output but rather an El Torito CD boot record 17 blocks later. utils/isohybrid extracts info from disk filesystem and El Torito record. It then writes a Master Boot Record to the start of the image. It only works if the image resides as data file in a read-write filesystem. This does not cripple the ISO 9660 image because the content of the first 32 kB of such an image has no particular meaning in the specs. ECMA-119, 6.2.1 : " The System Area shall occupy the Logical Sectors with Logical Sector Numbers 0 to 15. The System Area shall be reserved for system use. Its content is not specified by this Standard. " A clear invitation to do interesting things in there. Have a nice day :) Thomas
H. Peter Anvin
2008-Oct-10 16:03 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Helmut Hullen wrote:> Hallo, Thomas, > > Du (scdbackup) meintest am 08.10.08: > >> I understand from the code of util/isohybrid >> that the ISOLINUX user is supposed to produce a >> specially enabled isolinux.bin as first step. >> Else util/isohybrid would run into this: > >> 79 if ($ibsig ne "\xfb\xc0\x78\x70") { >> 80 die "$0: $file: bootloader is missing isolinux.bin hybrid >> signature\n". 81 "Note: isolinux-debug.bin does not support hybrid >> booting\n"; 82 } > > Have I to make this file "isolinux.bin" manually? Or do I need some > special program? Or have I to copy some existent file into my *.iso > source? > > I produce the *.iso file with "mkisofs" from the slackware package > "cdrtools-2.01.01a36" (or newer). >It is included with Syslinux 3.72 or higher (in the core/ subdirectory.) -hpa
Helmut Hullen
2008-Oct-10 16:58 UTC
[syslinux] Looking for testers and advise about ISOLINUX within ISO 9660
Hallo, HPA, Du (hpa) meintest am 10.10.08:>> Have I to make this file "isolinux.bin" manually?> It is included with Syslinux 3.72 or higher (in the core/ > subdirectory.)I have found it, and now I believe to understand the description ... thank you! Viele Gruesse! Helmut