Doc Text:
|
The ironic integrated Dell Remote Access Controller (iDRAC) management hardware interface implementation, 'idrac', set_boot_device() function, located in ironic.drivers.modules.drac.management, could successfully set a boot device that would persist during future boots only when the Dell EMC server's boot mode was set to BIOS. The root cause was that the function understood only a single persistent boot mode, BIOS, and it was hard coded.
PERSISTENT_BOOT_MODE = 'IPL'
Initial Program Load (IPL) is a synonym for legacy BIOS boot mode. The iDRAC does not report nor make visible the boot source lists for persistent boot modes that are not configured as the server's current boot mode. Only the list associated with the configured boot mode is reported and can be modified. So, when the boot mode is configured to be UEFI, the iDRAC permits only its boot source list to be modified. However, set_boot_device() had been capable of only modifying the boot source list for BIOS (IPL), which was not reported. Its attempt to access the wrong, unreported boot source list failed. As a consequence, Dell EMC servers managed by the ironic iDRAC hardware type, 'idrac', failed to boot into the deployed operating system when the boot mode is UEFI, and errors appeared in the ironic conductor log.
The ironic iDRAC management hardware interface implementation determines the configured persistent boot mode at run-time and its boot source list is modified. The hard coding of a persistent boot mode has been eliminated.
As a result, Dell EMC PowerEdge 13th and 14th generation servers managed by the ironic iDRAC hardware type successfully boot into the deployed operating system for either persistent boot mode, BIOS, or UEFI. The bug is not resolved for PowerEdge 12th generation and earlier servers; however, BIOS boot mode continues to be supported.
|