32ビットのゲストオペレーティングシステムで4GBを超えるRAMを使用する



32ビットオペレーティングシステムが4GBを超えるRAMのアドレス指定を許可しないことは秘密ではありません。 次に、ホストオペレーティングシステムへのフルアクセスがある仮想環境で、この制限を間接的に回避する方法を説明します。



実際、目標は十分に明確です。ゲストx32オペレーティングシステムが、「正直な」4GBのRAMに加えて、使用可能なRAMから安全に割り当てることができるRAMをさらに使用できるようにします。



まず、目標を達成するための短い計画を説明し、詳細と実装を検討します。 しかし、この方法はもちろん、オペレーティングシステムが余裕のある以上のメモリを「見る」ことを許可しないが、それ自体では目に見えないように使用されることを予約します。



始めましょう


ソースデータ:



通常とは異なる方法で追加のRAMを「割り当て」ますこれを行うには、vmdkディスクを作成し、ホストシステムのRAMに配置します。 作成したディスクをゲストシステムに接続します。 追加のRAMを完全に使用するには、スワップファイルをこのディスクに移動するだけです。 スワップファイルの転送に加えて、この「RAM」にキャッシュまたは一時ファイルを保存するようにいくつかのプログラムを再構成できますが、これは既にそのサイズに依存しています。



いくつかの詳細




興味深い事実:vmdkディスクが事前に割り当てられていなかった場合(つまり、「ゴム」)、スワップファイルが上記のように構成されていた場合、つまり、最大サイズと固定サイズの場合、スワップファイルはすべてのスペースを占有しますがvmdkディスク。ホストでは、このvmdkファイルはスワップファイルが転送される前とほぼ同じスペースを占有します。 当然のことながら、ゲストシステムは必要に応じて追加のRAMを使用するため、増加の方向でのみこれを行う必要があります。



そして今、上記の構成のためのステップバイステップの手順


  1. ホストファイルシステムを設定して、それを介してすべてのRAMにアクセスできるようにします。 これを行うには、次の行を/etc/fstab



    に追加し/etc/fstab





     tmpfs /run/shm tmpfs size=8G 0 0
          
          



  2. 事前に割り当てられたvmdkディスクではなく、単一ファイルを作成します。 3Gbのサイズを指定し、 ramtemp.vmdk



    という名前で/run/shm



    保存します。 作成後、このディスク上の記録のキャッシュを無効にします。
  3. 仮想マシンをロードします。 ゲストシステムに表示されたディスク上にメインパーティションを作成し、フォーマットしてramtempとしてマークします 。 以前に作成したフォルダーc:\ramtemp



    マウントします。 はい、はい、これはWindowsでも実行できます。これは、ドライブ文字を選択する代わりに、「ボリュームを空のNTFSフォルダとしてマウントする」オプションが選択されている場合です。 フォルダーへの接続は、システムに不要な「レタードライブ」が生成されないように行われます。 また、プロパティでこのディスクのインデックス作成を無効にする必要があります。 その後、仮想マシンをオフにします。
  4. 次に、準備された/run/shm/ramtemp.vmdk



    ターゲット仮想マシンのあるフォルダーにコピーされ、名前がramtemp.vmdk.new



    変更されramtemp.vmdk.new



    。 これは、このディスクを誤って仮想マシンに接続して使用を開始しないために行われます。 このディスクは、その最小サイズを占有するために、元の形式で常に必要です。
  5. 仮想マシンの以降のすべての起動では、クリーンなramtemp.vmdk



    を仮想メモリに自動的にコピーし、起動する前に仮想マシンを起動するスクリプトを作成する必要があります。 たとえば、次のようになります。

     #!/bin/sh cp /home/vm/workstation/ramtemp.vmdk.new /run/shm/ramtemp.vmdk vmplayer /home/vm/workstation/workstation.vmx
          
          



  6. 仮想マシンを再度起動し、スワップファイルを「RAM」に移動します。 これを行うには、レジストリブランチHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management



    c:\ramtemp\pagefile.sys



    し、 PagingFilesパラメーターでスワップファイルへのパスをc:\ramtemp\pagefile.sys



    変更します。 上記すべての後、ゲストOSを再起動する必要があります。


すべての手順を完了した後、仮想マシンが公式に起動されることを検討できます。



All Articles