[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Mon Nov 25 17:37:28 PST 2013
On 11/25/2013 09:12 PM, Gerardo Exequiel Pozzi wrote:
> On 11/25/2013 06:27 PM, Gerardo Exequiel Pozzi wrote:
>> On 11/25/2013 04:39 PM, Thomas Schmitt wrote:
>>> Gerardo Exequiel Pozzi wrote:
>>>> Looks like there is something beyond LBA 65535 (As Mattias confirmed)
>>> I wanted to ask him now, whether this was already with
>>> version 6.
>>> But meanwhile he reported that it was 5.
>>>> I can push isolinux.bin (4.07) to a really high LBA address and boot
>>>> without any issue. (Load LBA: 2048034 (0x001f4022)) ~4G
>>> This is riddling, given the statement of hpa that the
>>> boot images are identical up to the point where Carl's
>>> boot procedure fails.
>>> There seems to be some loophole in the identity.
>>> Another possibility could be that not the whole address
>>> range above 128 MB is poisonous, but only particular
>>> Gerardo: did you really try 4.07 with exactly the same boot
>>> image LBA as 6.02 ?
>> Yes, same LBA offset for isolinux.bin for 4.07 and 6.02.
>> Indeed, I made I small modification to set and LBA offset for isolinux.bin
>> # LBA > 33, set LBA for isolinux.bin
>> mkdir -p /tmp/test/isolinux
>> cp ~/isolinux-6.02.bin /tmp/test/isolinux/isolinux.bin
>> #cp ~/isolinux-4.07.bin /tmp/test/isolinux/isolinux.bin
>> truncate -s $(((LBA-34)*2048)) /tmp/test/coco
>> xorriso -as mkisofs \
>> -eltorito-boot isolinux/isolinux.bin \
>> -eltorito-catalog isolinux/boot.cat \
>> -no-emul-boot -boot-load-size 4 -boot-info-table \
>> --sort-weight -1 isolinux/isolinux.bin \
>> -output /tmp/test.iso \
>> dumpet -i /tmp/test.iso
>> cdrecord -v -dev=5,0,0 -dao /tmp/test.iso
>>> I fail to imagine a way how the boot image size could make
>>> a high LBA poisonous. But well, if the firmware is mad ...
>> Firmware has more mysteries than the Universe!
>>> hpa: How much can we cut off a isolinux.bin so that the
>>> early boot stage up to the problem still should work ?
>>> If the first 12 blocks suffice, then Gerardo could make
>>> a test with the same size as in SYSLINUX 4 (with expected
>>> failure at some later stage).
> I made some more and more experiments beyond LBA 65535
> * isolinux-4.07.bin (size 24574)
> * isolinux-5.00.bin (size 34816)
> Does not work:
> * isolinux-5.01.bin (size 34816)
> * isolinux-5.10.bin (size 36864)
> * isolinux-6.00.bin (size 38912)
> * isolinux-6.02.bin (size 43008)
> * I just tested exactly at LBA 65535 (works all versions) and LBA 65536
> (fails all versions > 5.00).
> I think we shold discard the hypotesis about file size, since 5.00 and
> 5.01 are the same size, but one works and other fails. So there is
> something between 5.00 and 5.01 within the code that make this issue on
> some crazy BIOS models.
OK I found the offending commit between 5.00 and 5.01, 17a36e2c
(isolinux: Update LBA in getlinsec loop) [#1], reverting it against 6.02
fixes the issue.
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 555 bytes
Desc: OpenPGP digital signature
More information about the Syslinux