grub and booting Linux/i386

Gerd Knorr (kraxel@goldbach.isdn.cs.tu-berlin.de)
Sat, 11 Oct 1997 09:51:22 +0200 (MEST)


Hi !

I'm teaching grub (GRand Unified Boot-loader, http://www.uruk.org/grub/)
how to handle bzImage+initrd.

grub loads a (old) linux-kernel this way: the setup is loaded to 0x90000,
the kernel to 0x100000. Just before booting linux grub copies the kernel
to 0x1000 and then jumps to the linux setup code.

bzImage support was simple: Don't copy the kernel to 0x1000 and adjust
some variables in the setup. initrd was'nt hard either: Load it and set
address+size in the setup. But there are still two problems:

1) zImage works
bzImage works
bzImage+initrd works
zImage+initrd works *not*, and I don't know why. The kernel just
ignores the initrd...

2) From reading the startup code it seems there is basically no difference
between zImage and bzImage. So it should be possible to load a zImage
to 0x100000, should'nt it?
Tried it: Adjusted type_of_loader, loadflags and code32_start -- did
not work. The kernel died before printing "Uncompressing linux...". Big
red button time...

Any hints?

Gerd