On most systems, the reason is that the BIOS has a limit of how much memory it will tell the OS is present in the machine, even though the board can have more. Common limits seen with this problem are 16M, 32M, 64M, and 128M. To get around this, we need to explicitly specify the amount of memory to the kernel at boot time via the mem={actual memory} flag.
LILO Boot Loader
In the following example, we have a 128M machine but only 64M are being seen by Linux. At the LILO prompt, we type
After the machine boots, we use the free command to see if the larger amount of memory was recognized by the kernel. If so, we can add an append line to the /etc/lilo.conf file. This example could look like the following:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda8
append="mem=128M"
After editing the lilo configuration file, you must run
# /sbin/lilo -v
to make the change take hold automatically upon reboot.
GRUB Boot Loader
In the following example, we have a 128M machine but only 64M are being seen by Linux. At the GRUB prompt, we highlight the linux entry, press e to edit the commands for the entry, highlight the kernel command, press e to edit the kernel command, add 'mem=128M' to this command, press the Enter key so that it now reads something like
kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hdb8 mem=128M
and press b to boot with the modified kernel line.
After the machine boots, we use the free command to see if the larger amount of memory was recognized by the kernel. If so, we modify the corresponding line the /boot/grub/grub.conf file. This example could look like the following:
default=0
timeout=10
splashimage=(hd1,7)/boot/grub/splash.xpm.gz
title Red Hat Linux 7.2 (2.4.7-10)
root (hd1,7)
kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hdb8 mem=128M
initrd /boot/initrd-2.4.7-10.img
After saving this file, the changes will take effect automatically upon reboot
Copyright © 2001, WebMO, LLC, all rights reserved.