[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
Thomas Schmitt
scdbackup at gmx.net
Sun Mar 19 14:29:56 PDT 2017
Hi,
MartinS wrote:
> It's most likely is isolinux as
> it has confirmed the signature (the part that fails for David which
> started this thread), right?
Yep. Firstly because the magic number is compared with the bytes at
isolinux_hybrid_signature = 0x7c00+64
which matches the signature's byte position 64 in isolinux.bin.
Secondly because "lba_offset" in
movl (lba_offset), %eax
2:
call read_sector
is mentioned at the end of the code as
/* Address of pointer to isolinux.bin */
lba_offset = _start+432
432 is indeed the byte address where isohybrid or xorriso put the block
address of isolinux.bin.
We seem to roughly understand everything except the reason why there
is no correct signature in the first of the alleged isolinux.bin blocks.
I tested meanwhile:
A xz compressed image of 647 MiB with blocks of recognizable content
has 741720 bytes. (The generating C code is much smaller. It produces
blocks of 128 big endian 32 bit numbers telling the block number.)
So if we had a MBR which prints the content of the first 512 read bytes
we could tell whether they are block aligned and from which block they
come.
(Of course the MBR should not do
ljmpw $0, $isolinux_start_hybrid
then.)
Have a nice day :)
Thomas
More information about the Syslinux
mailing list