[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:
>>> Hi,
>>>
>>> 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
>>> intervals.
>>> 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
>>
>> ----
>> #!/bin/sh
>>
>> # LBA > 33, set LBA for isolinux.bin
>> LBA=34
>>
>> 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 \
>>         /tmp/test/
>> 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
> 
> Works:
> * 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.

[#1]
http://git.kernel.org/cgit/boot/syslinux/syslinux.git/commit/?id=17a36e2c91706512e6c425222c9a9a451d9db854




-- 
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20131125/1a129b7a/attachment.sig>


More information about the Syslinux mailing list