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
無事にメモリが認識されていました。
よかったよかった。