[syslinux] Booting FreeBSD

Gene Cumm gene.cumm at gmail.com
Wed Jul 31 08:07:05 PDT 2013


On Wed, Jul 31, 2013 at 7:36 AM, Daniel O'Connor <doconnor at gsoft.com.au> wrote:
> Hi,
> I am trying to create a hybrid ISO image for FreeBSD 9.2 using syslinux 6.01 and isohybrid.pl I found at http://www.overclockix.com/sources/isohybrid.pl (I know there is a C version in syslinux but I haven't been able to build it yet due to the UUID library being different to the one in FreeBSD).

The Perl version should also be in the source tree
(utils/isohybrid.in) and built in the archives (util/isohybrid.pl)
which I'd recommend using everything from the 6.01 binary/source
archive.

> According to the wiki mboot.c32 can boot FreeBSD, however I haven't been able to get it working. I have the following..
> root at build92:~ # ll /tmp/iso/isolinux/
> total 356
> -r--r--r--  1 root  wheel    1185 Jul 31 01:55 cdboot.bin
> -rw-r--r--  1 root  wheel   38912 Jul 31 08:17 isolinux.bin
> -rw-r--r--  1 root  wheel      78 Jul 31 11:34 isolinux.cfg
> -rwxr-xr-x  1 root  wheel  115472 Jul 31 01:39 ldlinux.c32*
> -rwxr-xr-x  1 root  wheel  182520 Jul 31 08:17 libcom32.c32*
> -rwxr-xr-x  1 root  wheel   10056 Jul 31 08:12 mboot.c32*
>
> And syslinux.cfg contains..
> DEFAULT FreeBSD
> LABEL FreeBSD
>   KERNEL mboot.c32
>   APPEND /boot/kernel/kernel
>
> I create the ISO with..
> mkisofs -JR -o /tmp/test.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V FREEBSD_INSTALL /usr/obj/usr/src/release/bootonly /tmp/iso/
>
> (/usr/obj/usr/src/release/bootonly is created by make release in FreeBSD)
>
> Syslinux loads & runs fine (indeed I can use it to run cdboot.bin and that actually runs FreeBSD if I am on a CD but it does not grok HD booting) however mboot does not like /boot/kernel/kernel. I get..
> "Invalid Multiboot image: neither ELF header nor a.out kludge found"

http://www.syslinux.org/wiki/index.php/Mboot.c32#FreeBSD_example

The error is perfect: You're attempting to load a file that isn't in
the right format.

> I also tried running the loader (/boot/loader) but I get the same message.
>
> I am not really sure how I go about getting more debugging information so any ideas gratefully received :)
>
> I am pretty sure I could fall back to using memdisk (I have used it to boot FreeBSD from syslinux in the past) but it makes the build process more complex (and this way is neater :)

MEMDISK will be agnostic regarding the filesystem of the boot image.
The main things that matter are geometry and the hook method
(regarding the target environment).  You can also compress it with
GZIP to make it smaller and MEMDISK will decompress on loading.

-- 
-Gene



More information about the Syslinux mailing list