[syslinux] Installing syslinux on a purely virtual disk

Richard W.M. Jones rjones at redhat.com
Thu Apr 18 13:07:54 PDT 2019

I'm trying to add boot support to

This NBD server plugin generates a completely virtual FAT filesystem
and partition table.  Nothing is ever written to a file, and it must
run without anything needing to be root, loop mounting etc.  Running
"syslinux --install <something>" is a non-starter.

So I've looked at how syslinux works and I see that it adds the files
LDLINUX.SYS and LDLINUX.C32 to the FAT filesystem -- I can easily
emulate this bit in the plugin since we are already creating a full
FAT32 filesystem on the fly.

However the problem is that syslinux also creates a boot sector [ie.
core/bios/diskboot.inc in the syslinux source] and I suppose it must
encode the offset of the LDLINUX.SYS file.  I haven't quite worked out
the details.

The question, is there a way to simulate the work that syslinux does
in a reasonably supportable way that won't break on future updates of


Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.

More information about the Syslinux mailing list