Windows 7(32ビット)でPAEを有効にして、3.5GB以上のRAMをサポートするにはどうすればいいですか?
私は、Windows XP 32ビットがPAEを介して、3.5 GB以上のRAMをサポートするように設定できることを知っています。Windows 7 32ビットでこれを行うための良いチュートリアルはありますか?
64ビットのWindows 7を単純に使わない理由としては、私のインターネット接続用のソフトウェア(携帯電話としてのモデム)は32ビット環境でしか動作しません。
私は、Windows XP 32ビットがPAEを介して、3.5 GB以上のRAMをサポートするように設定できることを知っています。Windows 7 32ビットでこれを行うための良いチュートリアルはありますか?
64ビットのWindows 7を単純に使わない理由としては、私のインターネット接続用のソフトウェア(携帯電話としてのモデム)は32ビット環境でしか動作しません。
数年前、あるプログラマーのグループがWindows 7で4 GB以上のRAMを使用できるようにするためのWindows 7用のカーネルパッチをリリースしました。最近、いくつかのウイルススキャナが パッチを偽陽性として検出した のために、ウェブサイトからダウンロードが削除されました。幸いなことに、私はパッチのコピー(RTM Windows 7カーネルを使用)を保存し、 私のウェブサイトにアップロードしました (私があなたのWindowsカーネルにパッチを当てる2つの方法について説明しているときに、オプション1を参照してください)。さらに、著者は 手動でカーネルにパッチを当てる方法の手順 を掲載しています。
Windows 7 SP1 (Build 7601) を持っていても、カーネル 7600 を含むパッチをインストールすることができます。新しいカーネルがシステムフォルダにコピーされ、古いカーネルではなく新しいパッチを適用したカーネルで Windows を起動するためのブートメニューオプションが追加されるからです。私は古いカーネルで Windows 7 SP1 を実行する問題を発見していませんが、もしビルド 7601 の ntkrnlpa.exe
を使いたい場合は、手動でカーネルにパッチを当てる必要があります (上のリンクを参照してください)。
このパッチは基本的に、32ビットモードで最大8 GBのRAMと互換性のあるWindows Server 2003 Datacenter EditionのようにWindows 7カーネルを変更します。これにより、Windows 7 32ビットモードでは8 GBのRAMまでPAEを拡張することができます。Microsoftがこの技術的な制限を実施した理由については、 32-Bit Windows VistaのLicensed Memory in 32-Bit Windows Vista (www.geoffchappell.comから許可するにはJavaScriptが必要です)を参照してください。
前述したように、システムがそれ以上アクセスできたとしても、個々のプロセスは4GBに制限されることに注意してください。もしあなたが 8 GB の RAM を持っていたとしても、少なくとも他のプロセス用にもう 4 GB を持っていることになるでしょう ;)
技術的な側面に興味がある人のために、これはメモリマップされた入出力 (略してMMIO)のために起こります。これにより、CPUはアドレスバス自体を介してペリフェラルとRAMの両方にアクセスすることができます。通常、これは低次のアドレスの競合を避けるために、高次のメモリアドレスを使って行われます。しかし、このために、32ビットWindowsオペレーティングシステムのすべてのコンシューマー版では、一般的に知られている 3GBメモリバリア が発生しました。
MicrosoftのMSDNサイトのこの記事では、Windowsのバージョンのメモリ制限が表示されています 、Windows 7 32ビットは4 GBの制限と記載されています。
Windows XPではPAEを使って4 GB以上のRAMを表示することができましたが しかし、このオプションはService Pack 2 で無効になりました。
その理由は、ほとんどのドライバがPAEを認識しておらず、4 GBの境界を超えてメモリに入ってしまうと、おもちゃを捨ててしまうからでした。
Windows XPで/PAE
スイッチを使用すると、 DEP が使用可能になりますが、4 GB以上のRAMを見ることはできません。
この4 GBの制限はWindows 7の32ビット版ではまだあります。4 GB以上のRAMを見たい場合は、64ビット版のWindowsを使用する必要があります。
(4 GB以上のRAMを表示するためにPAEを使用するこのオプションは、32ビット版のWindowsのServerバージョンではまだ利用可能ですが、これはWindows Serverを実行するハードウェアの種類に合わせてドライバの品質が向上しているためだと思います)
MSDN の記事 物理アドレス拡張 によると
Windows は、ハードウェア対応 DEP をサポートしているコンピュータで DEP が有効になっている場合、またはコンピュータが 4 GB を超えるメモリ範囲のホットアドオンメモリデバイス用に構成されている場合、自動的に PAE を有効にします。コンピュータがハードウェア対応の DEP をサポートしていない場合、またはメモリ範囲が 4GB を超えるホットアドメモリデバイス用に構成されていない場合は、PAE を明示的に有効にする必要があります。
PAE を明示的に有効にするには、以下の BCDEdit /set コマンドを使用して pae ブートエントリオプションを設定します。
bcdedit /set [{ID}] pae ForceEnable
DEPが有効になっている場合、PAEを無効にすることはできません。DEP と PAE の両方を無効にするには、以下の BCDEdit /set コマンドを使用します:
bcdedit /set [{ID}] nx AlwaysOff bcdedit /set [{ID}] pae ForceDisable
Windows Server 2003 と Windows XP: PAE を有効にするには、 boot.ini ファイルの /PAE スイッチを使用します。PAE を無効にするには、/NOPAE スイッチを使用します。DEP を無効にするには、/EXECUTE スイッチを使用します。
PAEはデフォルトで有効になっているはずです - WindowsはすでにDEP No-Execute 機能のために内部的にPAEを使用しています。
しかし、 これらの指示 は、Windowsが再びその機能を実行している場合に役立つかもしれません。
システムがそれ以上アクセスできたとしても、個々のプロセスは4GBに制限されることに注意してください。
お使いのシステムがそれをサポートしている場合、仮想化を使用して32ビットの電話ドライバにアクセスできるようにすることができます。
もう少し複雑な設定になりますが、仮想マシンをセットアップして接続を行い、ホストとインターネット接続を共有することができます。 VMware Workstation (商用)、 VirtualBox (フリー、オープンソース)、 Windows Virtual PC (フリー)は、すべてのUSBデバイスを仮想マシンに直接ルーティングすることができます。32ビットOSをインストールして(XPでも構いません)、わずかなRAM量を与えるだけで、必要なことができるようになります。私はWindows 7をサポートしていないレガシーアプリケーションをロードするためにこれを行ったことがありますし、私の兄は実際に彼の古いCreativeのWebカメラ(64ビットドライバがない)をロードして仮想マシンを介してSkypeを使用していました。
質問は「Windows 7 (32ビット)でPAEを有効にして3.5GB以上のRAMをサポートするにはどうすればいいですか」というもので、答えはコマンドプロンプトの “bcdedit /set [{ID}] pae ForceEnable "と入力することです。
しかし、W7 32ビットシステムで3.5GB(または3.25GB)以上のRAMを有効にして使えるようにするにはどうすればいいのか、と言い換えた方がいいかもしれません。
同じシステムの2つの異なるデスクトップメインボードでPAEを試してみました。インテル® Pentium® D プロセッサー 3.4GHZ、使用可能な RAM 3.00GB のインテル® デスクトップボード D945GNT と、インテル® E7500 2.93GHZ、使用可能な RAM 3.25GB のインテル® デスクトップボード DG41WV の 2 種類のメインボードで PAE を試してみました。どちらも64ビット対応で、RAMは4GB。
2つのシステムでPAEを有効にした後、 http://www.jensscheffler.de/using-gavotte-ramdisk-in-windows-7 に記載されている手順でGavotte Ramディスクをインストールし、1つ目のシステムでは16MBのRamを回復しましたが、2つ目のシステムでは未使用の775MBを全て回復しました。
そこで、2台目のシステムのラムディスクでは、16MBから700MBまでのmovable pagesysファイルを割り当て、システムの別の物理ディスクのパーティションに16MBから3300MBまでのmovable pagesysファイルを割り当ててみました。
私は2つの事実を証明しました。1. 1. システムはハードディスク内のものよりもRAMスワップファイルを好んで使用していた。私はそれが移動したり、成長したり、縮小したりするのを見ました。2. 2. PC Pitstopを使ったベンチマーク(イメージは http://www.pablomolina.net/bench700.png に添付されています)では、システムのディスク速度が大幅に改善され、システムはかなり高速に動作します。ベンチでは、ラムディスクにある700MBのページファイルと、同じシステムドライブの別のパーティションにある700MBのページファイルを比較してみました。
マイクロソフトのkb/314834の手順でシャットダウン時にページファイルをクリーンにするようにシステムを設定する必要があります。
私にとっては、PAEは32ビットシステムでは意味があり、動作します。私はWindowsを専門的に使っていて、何年もかけて450ものプログラムを蓄積してきたので、64ビットシステムには乗りません。
パッチファイルを必要としない場合は、ブートローダーを使用することができます。このブートローダは、現在のシステムにインストールするか、USBペンドライブにインストールします。そのため、システムに影響を与えることなく簡単にテストすることができます。