Bug #5943
opengrub fails to boot when too many boot environments are present
100%
Description
When too many boot environments are present (it is not clear how many is "too many", or whether the value is constant), grub will fail to correctly load the system. The symptoms vary somewhat (unfortunately), but uninterprettable errors from krtld are common.
The problem is that grub has no real concept of memory management, it merely passes around a pointer and treats all memory above this pointer as both present, and free. A large menu.lst causes our memory use in the parsing stage to run into either storage we define to be at constant addresses higher than the notional 'heap', holes in memory, or the like.
A sure workaround is to boot from alternate media, and remove entries from the menu.lst. A potential workaround (that can't be guaranteed to work) is to get to the grub command line, and type the entry needed to boot manually.
Fixing grub 1.x will be a major labour, a workaround such as an artificial limit on the number of BEs is attractive though the number is hard to pin down. 25-30 seems safe.
Related issues