[syslinux] chainloading syslinux problem

Gregory Lee Bartholomew gregory.lee.bartholomew at gmail.com
Tue Dec 17 14:19:52 PST 2019

On Tue, 2019-12-17 at 22:46 +0100, David Balažic via Syslinux wrote:
> Hi!
> I have bootable (USB flash) disk, that _appears_ to be using syslinux.
> (the word syslinux is in the PBR, in the hexdump).
> How can I chainload it? The payload seems to be a file that I tried
> load with COMBOOT, COM32 etc, but nothing works (they report that the
> file is not in proper format, wrong magic number or simply crash). How
> to proceed?

I'm not sure how to chainload the PBR, but assuming that syslinux is in the MBR,
you might be able to boot it with QEMU.

$ qemu-system-x86_64 -machine accel=kvm -m 512 -drive file=$MY_FILE,format=raw

or in UEFI MODE:
$ cp /usr/share/edk2/ovmf/OVMF_VARS.fd .
$ qemu-system-x86_64 -machine accel=kvm -m 512 -drive
-drive if=pflash,format=raw,unit=1,file=OVMF_VARS.fd -drive

If syslinux isn't in the MBR, you might be able to put it there by dd'ing
(gpt)mbr.bin to the file/device like so:

# dd bs=440 count=1 conv=notrunc,sync if=/usr/share/syslinux/gptmbr.bin

Substitute "$MY_FILE" with the image of the device you are trying to boot.

You probably want to make a backup copy of your flash disk before writing
anything to it.

Use mbr.bin instead of gptmbr.bin if the partition table is in "msdos" format.

Be sure that the partition that you are trying to chainload is set
active/bootable using your favorite partition managing tool.

Good luck.

More information about the Syslinux mailing list