GNU/Linux >> Linux の 問題 >  >> Linux

CentOS532ビットOSを搭載した仮想マシンが3GBを超える物理メモリに対応しない

最近、 Centos5.X32ビットオペレーティングシステムを搭載したLinux仮想マシンという非常に奇妙な問題に遭遇しました。 3GBを超えるRAMを認識できませんでした。いくつかの調査の結果、次の事実を見つけることができました。


デフォルトでは、Centos5.532ビットオペレーティングシステムにはLinux2.4.xが付属しています 4GBを超える物理メモリをサポートするカーネル。一般的な32ビットLinuxカーネルは、カーネルスペースとして独自に使用するために1GBの物理メモリを使用します 残りの物理メモリはユーザースペースとして使用されます 。したがって、PAEをサポートしていないCentos 5.X 32ビットオペレーティングシステムマシンを使用している場合、ユーザースペースとカーネルスペースの分割は3 GB /1GBのようになります。つまり、マシンに3 GBを超える物理メモリを追加した場合、マシンはそれに対応しません。この問題は、カーネルにPAEサポートを追加することで修正できます。

物理アドレス拡張(PAE)とは何ですか?

物理アドレス拡張(PAE) ページアドレス拡張とも呼ばれます は、Pentium Proプロセッサで導入されたIE-32(i386)アーキテクチャのメモリ管理機能です。ページアドレス拡張は、32ではなく64ビットのテーブルエントリを持つ3レベルのページテーブル階層を定義します。これにより、PAEを備えたCPUは4GBを超える物理アドレス空間にアクセスできます。 PAE拡張により、CPU(プロセスではない)がアドレス指定できる最大64GBの物理メモリが許可されます。 PAEはカーネルにコンパイルされていませんが、OSは最大4GBのRAMをアドレス指定できます。同様の状況にあり、PAEサポート付きのカーネルを取得したい場合。ターミナルから次のコマンドを実行します。

yum install kernel-PAE


カーネルがインストールされたら、 grub.confを編集します ファイル(通常は /etc/grub.confにあります または/boot/grub/grub.conf )お好みのエディタで。パラメータtimeoutを見つけます 10秒以上に設定すると、リストからカーネルを選択する時間を増やすことができます。 grub.confを保存します ファイルを作成し、VPSを再起動します。

再起動後にVMが起動すると、マシンに現在インストールされているカーネルのリストが表示されます。ロードするカーネルを選択します(PAEをサポートするカーネル)。 VMがPAEでサポートされているカーネルで正常に起動する場合は、次のように新しいカーネルをデフォルトに設定します。

もう一度、 grub.confを編集します。 タイトルの下のファイル(次のようになります) インストールされているすべてのカーネルのリストが表示されるパラメータ。選択したカーネルの位置を数え、その値をパラメータデフォルトに設定します grub.confを保存します ファイルを作成してVMを再起動します

default=3  // default holds the value of position of Kernel
timeout=10  
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux ES (2.4.21-37.EL) // Kernel in 1st position 
root (hd0,0)
kernel /vmlinuz-2.4.21-37.EL ro root=/dev/hda3
initrd /initrd-2.4.21-37.EL.img
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL) // Kernel in 2nd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-32.0.1.EL ro root=/dev/hda3
initrd /initrd-2.4.21-32.0.1.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.4.EL) // Kernel in 3rd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.4.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.4.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.2.EL) // Kernel in 4th position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.2.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.2.EL.img


再起動後にVMが起動したらfree -m 3GBを超える物理メモリに対応しているかどうかを確認するコマンド。


Linux
  1. Linuxシステムが物理マシンか仮想マシンかを確認する方法

  2. BashスクリプトのRmコマンドは変数では機能しませんか?

  3. Linux – Dmesgの仮想カーネルメモリレイアウトは何を意味しますか?

  1. CentOS/RHEL:マウント コマンドが「mount:does not contain SELinux labels」で失敗する

  2. qemu が起動しない:vnc サーバーが起動しました

  3. 64 ビット Linux での 32 ビット プロセスのアドレス空間

  1. Linuxコマンド:vmstatを使用した仮想メモリの探索

  2. Centos がまだ最新のカーネルを使用していない理由

  3. /etc/hosts でホスト名がアドレス 127.0.0.1 ではなく 127.0.1.1 で表示されるのはなぜですか?