[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC

Thomas Schmitt scdbackup at gmx.net
Wed Mar 22 09:28:27 PDT 2017


Hi,

Ady wrote:
> >  Boot  System ID   :   First    :    Last    : Relative : Number of:
> >  Flag              :Cyl Head Sec:Cyl Head Sec:  Sector  :  Sectors :
> >  80h 00h           :   0   0  1 : 646  63 32 :         0:   1325056:
> >  00h EFh ??        :1023 254 63 :1023 254 63 :      8524:       608:

i wrote:
> I will have to examine whether the invalidated CHS value is an old bug in
> libisofs-1.3.6 (and maybe fixed meanwhile) or if there is a reason why
> the EFI partition got no valid CHS addresses.

It's not a bug but a feature of the mjg layout.

In the part of utils/isohybrid.c which writes MBR partition slot 2:
  http://git.zytor.com/syslinux/syslinux.git/tree/utils/isohybrid.c#n693
one can see the values hardcoded by
            mbr[1] = 0xfe;
            mbr[2] = 0xff;
            mbr[3] = 0xff;
and
            mbr[5] = 0xfe;
            mbr[6] = 0xff;
            mbr[7] = 0xff;

UEFI 2.4 prescribes for the Protective MBR of GPT that it should bear
C/H/S start address (0,0,2). So one cannot deduce from EFI specs that
C/H/S should be marked invalid in any case.

On the other hand UEFI 2.4 states that C/H/S shall be ignored and LBA
be used instead.
(Further it states that the byte pattern for oversized partitions in
 the Protective MBR of GPT shall be 0xff, 0xff, 0xff. Now i riddle
 whether mjg found a UEFI that wants to see 0xfe, 0xff, 0xff.)

For now libisofs will stay with the hardcoded C/H/S values of isohybrid.c.
If they get changed, then best in both softwares simultaneously.


Have a nice day :)

Thomas



More information about the Syslinux mailing list