【Linux】増設したメモリを認識させる方法。3GB(3107204)の壁。

VMwareで稼働している32bit Linux(CentOS 5)のメモリを2GBから8GBまで一気に拡張したのですが、拡張後に確認したところ3GB(3,107,204KB)しか認識してくれていませんでした。

状況

freeコマンドで確認したところ認識されていない状況です。

# free
             total       used       free     shared    buffers     cached
Mem:       3107204     429516    2677688          0      26404     292784
-/+ buffers/cache:     110328    2996876
Swap:      4096564          0    4096564

meminfoを確認しても認識されていません。

# cat /proc/meminfo
MemTotal:      3107204 kB
MemFree:       2677712 kB
Buffers:         26432 kB
Cached:         292772 kB
SwapCached:          0 kB
Active:         123376 kB
Inactive:       278584 kB

原因

この原因は、32bit OSのカーネルが4GB以上のメモリを標準では認識してくれないからみたい。

OSインストールの段階から4GB以上のメモリを搭載している場合は、自動的に拡張メモリに対応したPAEカーネルでインストールされるのですが、途中から増設した場合はそうなっていないので4GB以上を認識してくれないというわけみたいです。

解決方法

そこでPAEカーネルをインストールします。

# uname -r
2.6.18-308.el5
# yum install kernel-PAE

起動するカーネルをPAEに変更します。

# cp /boot/grub/grub.conf /boot/grub/grub.conf.org
# vi /boot/grub/grub.conf

●カーネルが追加されていることを確認
title CentOS (2.6.18-410.el5PAE)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-410.el5PAE ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-410.el5PAE.img
title CentOS (2.6.18-308.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-308.el5.img

●起動カーネルをPAE版に変更する
default=1
↓
default=0

再起動して、PAEカーネルで起動していることを確認します。

# reboot
# uname -r
2.6.18-410.el5PAE

freeコマンドで確認してみると。。。

# free
             total       used       free     shared    buffers     cached
Mem:       8309120     427728    7881392          0      26640     292504
-/+ buffers/cache:     108584    8200536
Swap:      4096564          0    4096564

無事にメモリが認識されていました。
よかったよかった。

コメントを残す

メールアドレスが公開されることはありません。