[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