Project

General

Profile

Actions

Bug #5943

open

grub fails to boot when too many boot environments are present

Added by Rich Lowe about 7 years ago. Updated over 6 years ago.

Status:
New
Priority:
High
Assignee:
-
Category:
bootloader
Start date:
2015-05-20
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Difficulty:
Hard
Tags:
Gerrit CR:

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.


Subtasks 1 (0 open1 closed)

Bug #5944: Related to 5943 (please merge)Closed2015-05-20

Actions

Related issues

Related to illumos gate - Bug #6326: Eliminate unused filesystems from GRUB's stage 2 to bring back free memoryClosedDan McDonald2015-10-13

Actions
Actions

Also available in: Atom PDF