Configuring 32 bit Linux to Support 4GB RAM and beyond
A solution to the limitation present in 32-bit Linux kernels whereby only 3.2 GB of RAM was accessible despite there being 4GB or more of RAM installed.
The solution is simple:
As root, run:
yum install kernel-PAE
Then reboot the system. Upon booting, the GRUB menu will appear. Hit escape and you will be allowed to choose a kernel to boot the system with. Choose the one with the PAE suffix. On my system it was listed as Fedora (2.6.23.15-80.fc7PAE).
After the system has booted, login and run:
free -m
The output will appear as below:
total used free shared buffers cached
Mem: 4047 606 3441 0 19 347
-/+ buffers/cache: 238 3809
Swap: 1983 0 1983
For example, it will say 8xxx if you have 8GB of RAM installed (Roughly 8192).
If the system boots and runs without any problems, you may then edit the /boot/grub/menu.lst file (as root). Look for the following line:
default=1
The default kernel counting starts at 0 not 1. So the first kernel listed will be 0. Look for the PAE kernel in the list and specify it as default -- mine was first, so I specified 0.
default=0
Now save the file and reboot the system. This time you will not have to select a kernel for booting if you edited the file properly.
When editing the menu.lst file, be extremely careful as any mistakes will render the system unbootable.