Go to the first, previous, next, last section, table of contents.
GRUB consists of two distinct components, called stages, which are
loaded at different times in the boot process. Because they run
mutual-exclusively, sometimes a memory area overlaps with another
memory area. And, even in one stage, a single memory area can be used
for various purposes, because their usages are mutually exclusive.
Here is the memory map of the various components:
- 0 to 4K-1
-
BIOS and real mode interrupts
- 0x07BE to 0x07FF
-
Partition table passed to another boot loader
- down from 8K-1
-
Real mode stack
- 0x2000 to ?
-
The optional Stage 1.5 is loaded here
- 0x2000 to 0x7FFF
-
Command-line buffer for Multiboot kernels and modules
- 0x7C00 to 0x7DFF
-
Stage 1 is loaded here by BIOS or another boot loader
- 0x7F00 to 0x7F42
-
LBA drive parameters
- 0x8000 to ?
-
Stage2 is loaded here
- The end of Stage 2 to 416K-1
-
Heap, in particular used for the menu
- down from 416K-1
-
Protected mode stack
- 416K to 448K-1
-
Filesystem buffer
- 448K to 479.5K-1
-
Raw device buffer
- 479.5K to 480K-1
-
512-byte scratch area
- 480K to 512K-1
-
Buffers for various functions, such as password, command-line, cut and
paste, and completion.
- The last 1K of lower memory
-
Disk swapping code and data
See the file `stage2/shared.h', for more information.
Go to the first, previous, next, last section, table of contents.