Installing XenServer using usb - mboot.c32: not a COM32R image

Today I was installing XenServer to one of my boxes using USB as installation media. As usual, I downloaded the XenServer ISO file and used latest version of unetbootin-linux-549 to create a bootable USB. But it wouldn’t boot as expected, and throw me an error saying “kernel image not found”.

As it turns out, some extra steps needs to be done for booting XenServer installation from USB. I followed this article here and made the following changes in the USB.

I copied “client_install” and “packages.main” to USB Rename rename syslinux.cfg file to syslinux_cfg.old Rename the bootisolinux directory to bootsyslinux Rename the bootsyslinuxisolinux.cfg file to syslinux.cfg

As per the article, at this point you’re done - stick the USB stick into the Server where you’d like to install XenServer

But now I started the following error:
 mboot.c32: not a COM32R image
After lots of debugging and googling, I figured it out that unetboot is using a buggy version of syslinux and it’s messing it up for me. So, I thought let’s replace mboot.c32 with an older version and see if it works.

I mounted by USB disk and replaced the mboot.c32 inside it, and run the syslinux command on it.

cp -r /usr/lib/syslinux/mboot.c32 /media/disk/boot/syslinux/
 syslinux /dev/sdb1
It worked for me afterwards!

– Sandeep Sidhu