メモリが多くて起動できない?

Windows 9x/Meで768MBを超えるメモリを搭載すると,起動時に「十分なメモリがありません」とダイアログが出て起動できません。どうすればいいのでしょうか?


この問題はWindows 98/Me(以下Win9x)の持つ32ビットディスクキャッシュ(Vcache)に起因するものです。Vcacheは物理メモリ量に合わせて最大キャッシュサイズを決定し,OS起動プロセスの早い時期にメモリアドレスを確保(予約)します。ところが,Vcacheの確保するメモリアドレスはWin9xがシステム領域として使用する1GBのアドレス領域であり,768MBを超えるようなメモリを搭載しているとVcacheが1GBのうちの多くのメモリアドレスを確保してしまい,Win9xのほかの機能が使用するメモリアドレスが足りなくなってしまいます。これが「メモリがない」となってしまう原因です。同様の症例として,OSは起動するが,MS-DOSプロンプトを開こうとすると「メモリが足りません」と警告され,DOSプロンプトが開けない場合があります。
 このトラブルを回避する方法は二つあります。一つは搭載しているメモリのうちWin9xが使用するメモリを制限してしまうこと,もう一つはVcacheが使用するメモリを制限してしまうことです。前者はWin
9x全体が使用する物理メモリが減ってしまうことになりますから,トラブルが発生しない限り後者の方法を使用するのがベターでしょう。
 具体的には,両方法ともWindowsフォルダ内にある「SYSTEM.INI」を編集することで実現します。前記の問題はセーフモードでは発生しませんので,起動メニュー([Ctrl]キーを押したままOSを起動)から「SafeMode」を選択して起動します。Win
dows 9xなら[ファイル名を指定して実行]で「sysedit」を実行するとSYSTEM.INIを編集することができます。Windows Meでは「sysedit」の代わりに「edit c:\windows\SYSTEM.INI」を実行します(c:\WindowsにWindows Meがインストールされている場合)。

 Win9xが使用する物理メモリを制限するには,[386Enh]セクションを探し,

MaxPhysPage=30000


という行を記述します。10000が256MBになるので,30000以下を値として指定します。
 Vcacheが使用するメモリを制限するには,[Vcahce]セクションを探し,

MaxFileCache=512000

という行を記述します。値はKB単位です。
 また使用する物理メモリの制限はシステム設定ユーティリティでも設定できます。[ファイル名を指定して実行]で「msconfig」を実行,[詳細設定]で[メモリを制限する]をチェックし,メモリの使用量を入力します。
 なお,こういった問題はWindows NT4.0/2000では発生しません。
(坪山博貴)



1GB以上メモリを積んだときに表示されるメッセージ




msconfigの「アドバンス トラブルシューティング」。メモリ量を増やして設定する



Windows Meで1GBのメモリを設定