[syslinux] isohybrid question

Thomas Schmitt scdbackup at gmx.net
Fri Jul 2 05:00:48 PDT 2010


Hi,

> What is the reason why an ISO9660
> filesystem (and image) generator cannot reserve space for various items
> without putting anything but zeroes there,

This is well possible.
Needed is just a way to make the generator
do that.

In general one may write data blocks which are
not referred by the directory tree of the image.
Or one may write data files with synthetic
content.


> Perhaps an .ISO generator could have no knowledge about Syslinux
> particulars, beyond how much space is desired to accomplish the general
> isohybrid shape?

Isohybrid operates on an already reserved space
at the very start of the image, the System Area.
It resides in block 0 to 15 (block size 2K).

The ISO generator does not have to prepare the
image for the isohybrid script but only has to
prepare it for ElTorito booting.
The isohybrid script reads a few parameters
from the image, patches them into an MBR template
and writes that MBR to the first 512 bytes of
the System Area.

The reason why xorriso strives for own capability
to write an MBR is that the isohybrid script
needs an overwriteable image, whereas xorriso can
write to sequential optical media directly.
(It should be well possible to apply the script
 to written DVD+RW, DVD-RAM or BD-RE media, but
 not to CD, DVD-R, DVD+R, BD-R.)


> If an .ISO can be padded by the post-processor, would
> that satisfy any fractional cylinder boundary concerns for the
> partition's end?

I am not aware of a problem with fractional
cylinder boundaries at the end of partitions.

There was a discussion about a more conventional
start of partition 1. The needs of ISO 9660 
conflict with the habit to keep the first cylinder
out of partitions.

The boot procedure starts at the raw device.
Partition 1 will most probably be used as
read-only ISO file system by the finally booted
operating system.
I do not remember all constraints right now, but
we came to the conclusion that two sets of Volume
Descriptors and two directory trees would be
necessary. This would allow at any time to switch
from interpreting the raw device to interpreting
partition 1.

To allow the 2 KB address granularity of ISO 9660,
partition 1 would have to start at a multiple of
2048 bytes on the raw device. Else we would not
be able to address the same data content from
both volume descriptor sets and trees.
If we want cylinder alignement in the partition
table we would either need an unusual cylinder
size or more than one cylinder as unpartioned
space at the device start. Max. 4 cylinders.


This endeavor is postponed until a seriously
interested test user appears. I would need
several days to enhance libisofs and then it is
open end until we get it working.


Have a nice day :)

Thomas




More information about the Syslinux mailing list