Ubuntu on an old Pentium (GRUB needs uppermem)

Marius Gedminas marius at pov.lt
Thu Jan 12 11:26:40 UTC 2006


  Summary: Breezy doesn't boot on an old Packard Bell machine out of the
  box.  It is possible to make it boot by changing GRUB's menu.lst, but
  a kernel upgrade will regenerate that file and wipe out the workaround.

We've had an old Pentium machine (120 Mz, 64 MB RAM) used as a
router/firewall at our office.  It ran a floppy distro (LEAF Bering).
Any change to the firewall configuration required a trip to the server
room because SSH didn't fit on the floppy.

Recently my coworker Albertas found a small spare hard disk and tried to
install Ubuntu on the machine.  It turned out to be a painful procedure.
GRUB would load the kernel, and the kernel would then fail to recognize
initrd.img (RAMDISK: couldn't find valid ram disk image at offset 0),
and without initrd.img it wouldn't have any IDE drivers for accessing
the disk.

Albertas then noticed some discrepancies in reported memory size.  The
BIOS said there were 64 megs.  Memtest said there were 55 megs (plus 8
megs that were "reserved"; I've no idea for what).  GRUB said there were
only 8 megs (!).

The solution turned out to tell GRUB that there are 55 megs of upper
memory, and tell the kernel there are 56 megs total.  Albertas did that
from the GRUB command line, booted, and made the necessary modifications
to /boot/grub/menu.lst.  The modifications are as follows:

  1. Edit menu.lst and add 'mem=56M' to the '# kopt=...' line.
  2. Run update-grub to make the mem= option propagate to the automatic
     kernels list
  3. Edit menu.lst and add
        uppermem 56320
     before each 'kernel' line (except for the memtest entry).

You have to manually repeat step 3 every time you run update-grub (which
means after every kernel upgrade).  It would be easy to forget.  Is
there any way to avoid the need for continued manual menu.lst

By the way, the kernel also reports that 16 megs out of those 56 are
"reserved", and only gets 40 usable megs (45 after the initial ramdisk
is freed).  I have no idea why 30% of RAM gets reserved.

A few years ago I ran Debian on that machine.  I do not remember ever
having to manually specify memory size anywhere to get it to boot.
It is possible, that it is a GRUB problem, and you don't actually have
to tell the kernel anything.  I used LILO in Debian.  It is also
entirely possible that I had compiled a custom kernel and did not use an
initrd.  I do not rememeber.

Marius Gedminas
To err is human, but to really foul things up requires a computer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/ubuntu-users/attachments/20060112/7b0cf7fa/attachment.pgp>

More information about the ubuntu-users mailing list