puppetlabs/razor-server — pull request #195 by daniel-pittman (2014-04-25 20:29:19+00:00)
Title: Implement `sanboot` metadata field to activate workaround

A non-trivial number of systems in the field, both virtual and physical, have
an issue where the normal, standard-defined mechanism for continuing on to
local boot after finishing the PXE boot process does not work.

While the standard says that after a clean exit the system should proceed to
the next firmware configured boot device, some machines either return to PXE
booting, or simply report a boot failure, at that point.

In these cases we can implement a work-around in our boot code: instead of
returning to the firmware, we can simply load the boot sector from the first
hard disk and execute it directly.

This works, as the firmware is never again involved, so the boot process will
proceed -- at the cost that we ignore any firmware configuration for boot
sequence, logging, etc.

This commit adds the `sanboot` metadata field to nodes or, my accurately,
checks for the presence of that field. If it is a boolean true, the
workaround is applied to the node during local boot.

This allows users who have such damaged systems, and cannot resolve the
problem correctly through, eg, a firmware update -- perhaps because the vendor
does not supply one -- to work around the problem to some degree.

Signed-off-by: Daniel Pittman