[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