Account Links: Cart | Your Account | Logout

Skip to content

Red Hat Knowledgebase

Red Hat Knowledgebase Search:

Updated Within the Last:

New Solutions within the last day New Solutions within the last week New Solutions within the last month

Browse by topics:


Click to View a Topic
General Linux > Get Started > Issue <<  128 of 376 >>

Solution Tools:


Email a Solution Postcard Printer version Submit a comment on this answer Update notifications Request an answer Back

Article Reference

Article ID: 58
Last update: 09-30-05
Issue:
Why does the the operating system only see 64 MB of memory if the system has 128 MB of RAM?
Resolution:

On most systems, the BIOS has a limit of memory it reports the operating system, even though the motherboard 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_goes_here> flag.

In the following example, we have a 128M system but only 64M is being seen by the operating system. At the LILO: prompt, type:

LILO: linux mem=128M

After the system 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 and rerun LILO to make this change permanent. To make the above example permanent edit the lilo.conf file to look like the following:

boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50

image=/boot/vmlinuz-2.2.12-20
        label=linux
        root=/dev/sda1
        initrd=/boot/initrd-2.2.12-20.img
        read-only
        append="mem=128M"

Do not forget to run /sbin/lilo -v after editing the file.

If using GRUB, the same can be accomplished. Edit the file /etc/grub.conf by appending "mem=128M" onto the end of a line that begins with "kernel". For example, if the original file looked like this:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux AS (2.4.21-15.0.3.ELsmp)
        root (hd0,0)
        kernel /vmlinuz-2.4.21-15.0.3.ELsmp ro root=LABEL=/
        initrd /initrd-2.4.21-15.0.3.ELsmp.img

The modified file would look like the following:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux AS (2.4.21-15.0.3.ELsmp)
        root (hd0,0)
        kernel /vmlinuz-2.4.21-15.0.3.ELsmp ro root=LABEL=/ mem=128M
        initrd /initrd-2.4.21-15.0.3.ELsmp.img

Note the mem=128M is simply appended onto the end of the line. Once the file modification is saved, reboot the system and boot the kernel with the modification by selecting it from the GRUB bootloader selector.


How well did this entry answer your question?


good wrong incomplete out of date
General Linux > Get Started > Issue <<   128  of  376  >>