Skip to content

Instantly share code, notes, and snippets.

@mgerdts
Last active December 6, 2019 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mgerdts/c6fd2be78c1e26ff58d540d2ca060229 to your computer and use it in GitHub Desktop.
Save mgerdts/c6fd2be78c1e26ff58d540d2ca060229 to your computer and use it in GitHub Desktop.
ipxe silently truncates boot module arguments

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, but it is directionally correct)
  • OS-8065 add support for bootenv.rc as a boot module
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment