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