[syslinux] isohybrid boot from logical partition

Thomas Schmitt scdbackup at gmx.net
Thu Dec 29 06:00:37 PST 2016


Hi,

i think i found the reason for the boot failure in the definition of
Extended Boot Records.

  https://en.wikipedia.org/wiki/Extended_boot_record#Values
  "Starting sector = relative offset between this EBR sector and the
   first sector of the logical partition.
   Note: This is often the same value for each EBR on the same hard disk;
   usually 63 for Windows XP or older."

So if GRUB hands the partition table entry of /dev/sdc5 over to the
isohybrid MBR, then the isohybrid MBR code will see a ridiculously
low start address of the partition and thus load the wrong blocks
from disk instead of the content of isolinux.bin.

The partok isohybrid MBR would have to look up the extended partition
in the disk MBR and then hop along the chain of EBRs until it finds
itself by some magic number.

Currently this looks quite hopeless for 432 bytes of code. One could
throw out the noop commands which reserve space for the fake Apple
Partition Map block 0 of isohybrid --mac. One could shorten the error
message. But i doubt that would suffice.


Have a nice day :)

Thomas


More information about the Syslinux mailing list