When SmartOS is pxe booted in a Triton cloud, the kernel args are on the order of 200 bytes, there is a kernel, a ramdisk, and at least one other boot module. This does not fit in 512 bytes and multiboot.c silently truncates the url to the boot module and does not have any space for the name of the boot module. If a system is booted with a non-Joyent ipxe, this means that the SmartOS instance cannot find the boot module.
This probblem was recognized and fixed many years ago and Joyent fixed it in our fork of ipxe. Can this be included upstream so that boot modules are more useful?
Related tickets I've filed at Joyent are:
- OS-3770 ipxe silently truncates boot module arguments
- OS-8062 boot modules appear at wrong path (I think I got the buffer details wrong in that ticket,