Windowsで物理アドレス拡張PAEを強制的に有効にするTech TIPS

システムに4Gbytes以上の物理メモリを搭載しても、32bitのクライアント向けWindows OSでは利用できない。CPUの持つPAE機能を利用し、さらにOSやアプリケーションが対応すると、4Gbytes以上のメモリを利用できるようになる。システムによってはPAEサポートが自動的に有効にならないことがある。このような場合はブート設定を変更して、強制的にPAEサポートを有効にできる。

» 2009年01月30日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000/Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008



解説

 現在のx86アーキテクチャのCPUでは、ハードウェア的には36bitの物理アドレス空間(64Gbytes)をサポートしている。元々のx86アーキテクチャでは32bitの物理アドレス空間(4Gbytes)しかサポートされていなかったが、Pentium Pro以降では、PAE(Physical Address Extension、物理アドレス拡張)やPSE(Page Size Extension、ページ・サイズ拡張)といった技術を導入することにより、4Gbytes以上のメモリがサポートされている。だが32bit版の(主にクライアント向けの)Windows OSでは、基本的には4Gbytesまでの物理メモリしか扱えないようになっている(実際のシステムでは、デバイスのリマップなどにより、より少ない3Gbytes強しか利用できないことがある)。

 だが最近ではより多くのメモリをシステムに搭載できるようになったので、PAE(やPSE)サポートを有効にして、より多くのメモリを使うことが現実的になってきた。このようなシステムでは、強制的にOSのPAEサポートを有効にすることにより、4Gbytes以上の領域に存在するメモリをPAE対応のアプリケーションから利用できるように設定することができる。本TIPSでは、その方法について解説する(64bit OSではPAEは利用されないので、このTIPSを利用する必要はない)。

 なおOSのPAEサポートを有効にしたからといって、個々の32bitプロセスのアドレス空間などが32bit以上に拡大されるというわけではない。PAE対応のAPI(AWE API)などを利用する場合にのみメリットがある。またWindows XP SP2以降やWindows Vistaなどでは、メモリが4Gbytes以上実装されていたり、ハードウェアDEP(「Windows XPのデータ保護機能DEP」参照)が有効なら、自動的にPAEが有効になっているはずである。PAEの動作テストや別稿の「RAMディスク導入ガイド」のようなソフトウェアを動作させるために、メモリが少なかったり(デバイスのリマップによって、実際よりも少なく認識される場合も含む)、自動認識が失敗したりする場合などに、強制的にPAEサポートを有効にさせたいときに利用できる方法である。

操作方法

●Windows 2000/Windows XP/Windows Server 2003の場合

 Windows 2000/Windows XP/Windows Server 2003のOSでは、システムのブートを設定するファイル(デフォルトではC:\Boot.ini)に、「/pae」オプションを追加する。このためには、[ファイル名を指定して実行]メニューで「c:\boot.ini」か「notepad c:\boot.ini」と入力する。Windows XP/Windows Server 2003なら、[コントロール パネル]の[システム]を起動し、表示された[システムのプロパティ]ダイアログで[詳細設定]タブの[起動と回復]の[設定]ボタンをクリックしてもよい。そして[起動と回復]画面で[編集]ボタンをクリックする(TIPS「システムのブート情報ファイルBOOT.INIを編集する」参照)。

 するとc:\boot.iniを編集するメモ帳が開くので、ブートするOSの設定行の末尾に「/pae」を追加する。

boot.iniへの/paeの追加 boot.iniへの/paeの追加
c:\boot.iniファイルを開き、現在のブートOSの設定行の末尾に「/pae」を追加する。この例では、ブート・メニューは1行だけしか存在しないので、その末尾に追加する。複数のOSメニューがある場合は、PAEを有効にしたいOSの行だけを変更すること。
  (1)このオプションを追加する。

 変更後はシステムを再起動する。PAEが有効になると、[システムのプロパティ]画面に「物理アドレス拡張」という文字列が表示されているはずである。

PAEが有効な場合のシステムのプロパティ PAEが有効な場合のシステムのプロパティ
PAEが有効になると、システムのプロパティ画面に「物理アドレス拡張」という文字列が表示される。
  (1)このシステムには4Gbytes以下のメモリしか搭載されていないが、強制的にPAEサポートを有効にすると、このように表示される。

●Windows Vista/Windows Server 2008の場合

 Windows Vista/Windows Server 2008では、システムのブート情報はboot.iniファイルではなく、新しいBCDストアというデータによって管理されている。そのため、PAEを強制的に有効にするためには、これを編集するためのコマンド、bcdeditを利用する。このツールの使い方については、TIPS「bcdeditでVista/Windows Server 2008のブートOSメニューを変更する」を参考にしていただきたい。PAEを有効にするには、「bcdedit /set pae forceenable」を実行する。

bcdeditでpaeオプションを有効にする bcdeditでpaeオプションを有効にする
bcdeditは管理者として実行したコマンド・プロンプト上で実行すること。これはPAEを強制的にオンにするための設定である。無効にするにはforcedisalbe、デフォルト状態に戻すにはdefaultを指定する。

●注意:システムが起動しないときはセーフ・モードで復旧させる

 システムやインストールしているデバイス、ソフトウェアなどにより、PAEを有効にするとシステムが起動しないなどのトラブルが発生することがある。もともとクライアントOSではあまり使われることのない機能なので、テストが十分行われておらず、場合によってはこのようなトラブルが発生する可能性がある。

 システムが起動しなくなった場合は、システム起動時に[F8]キーを押してセーフ・モードで立ち上げ、元の状態に戻す。boot.iniファイルの場合は追加した「/pae」オプションを外し、bcdeditの場合は「bcdedit /set pae forcedisable」で無効にするか、「bcdedit /set pae default」でデフォルト状態に戻す。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。