Windows10・11でメモリ容量の制限をしてマルチブート作成 | なんかいろいろ備忘録

Windows10・11でメモリ容量の制限をしてマルチブート作成

PC

SKNETのビデオキャプチャ-ボードMonster X2、Windwos10で動作することが分かったのですが64bit OS環境では最大メモリ4GBの制限があり、8GBなどそれ以上のメモリを積んでいると使えません。

ブート構成から最大メモリを「4096」に変更して使うことも出来ますが、毎回ビデオキャプチャ―の時だけ設定を変更するのも面倒です。

ブート構成の最大メモリ変更はブートローダーと関係がありそうなので調べてみると、Windows10とWindowsVistaのデュアルブートを作成したコマンド「bcdedit」でメモリ制限をして起動することも出来ると分かったので、作業内容を書いていきます。

パソコンの動作検証にインストールしたWindows11で作業してます。後でWindows10で作業しましたが内容に変わりありません。

bcdeditコマンドやマルチブートに関して完全に理解して作業を行っているわけではないので、用語の使い方など間違いがあることをご了承ください。

パソコン構成

  • CPU:Core 2 Quad Q9650(3.0GHz)
  • マザーボード:Intelチップセット P45 ギガバイト製
  • メモリ:DDR2-800 8GB(2GBx4枚)
  • 光学ドライブ:BDドライブ
  • ストレージ1:HDD 640GB Vista
  • ストレージ2:SSD 160GB (Window10 or 11)
  • GPU:Geforce GTX750Ti
  • その他:データ用HDD3台、ビデオキャプチャーカード
スポンサーリンク

Vistaを使用しないでWin10・11、1つのOSだけでデュアルブートする利点

ビデオキャプチャ―Monster X2を使用するのに「Windows10+WindowsVista」をデュアルブートしてパソコン起動時にOSを切り替えて使用するとMonsterX2の動作が解決するのですが、とうの昔にサポートが終了してるVistaを使うより2025年10月までOSサポート中のWin10だけ使うのに越したことはありません。

1つのOSで通常起動のWindows10とメモリ制限で起動するWindows10とでデュアルブートするので、同じOSを2つ用意してインストールする必要はありません。

メモリ制限をして起動するだけなので、同じドライブ”同じOS”が起動します。

Windows10でメモリ制限をしてマルチブート

そのため、OS選択画面で起動するOSを切り替えますがWindows10の環境設定やインストールされているソフトはそのまま使えます。

また、ディスク容量の節約、パーティション分けてのトラブル、物理ディスクでOSを分けてる場合もSATAケーブルの差し込みポートを変えるだけで起動できなくなる問題も考えられますが、そういったトラブルもありません。

スポンサーリンク

Windows11・10でメモリ制限のマルチブート作成

管理者権限で起動したコマンドプロンプトを起動します。

bcdeditコマンドを使いますが、「Windows10でWindowsVistaのブートローダーを追加」したときと同じ方法です。

メインでOSが起動する、Windows11のブートローダーIDを確認します。

bcdedit

と入力するとブートマネージャーと登録されてるブートローダーが一覧で表示します。

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {045ea40c-0f30-11ee-8f59-b70a4986e5cb}
displayorder            {current}
                        {045ea410-0f30-11ee-8f59-b70a4986e5cb}
toolsdisplayorder       {memdiag}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 11
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {045ea40e-0f30-11ee-8f59-b70a4986e5cb}
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {045ea40c-0f30-11ee-8f59-b70a4986e5cb}
nx                      OptIn
bootmenupolicy          Standard
usefirmwarepcisettings  No

Windows ブート ローダー
--------------------------------
identifier              {045ea410-0f30-11ee-8f59-b70a4986e5cb}
device                  partition=D:
path                    \Windows\system32\winload.exe
description             Windows Vista
locale                  ja-JP
inherit                 {bootloadersettings}
osdevice                partition=D:
systemroot              \Windows
resumeobject            {15042d96-0f6b-11ee-bf60-806e6f6e6963}
nx                      OptIn

Windows11とWindowsVistaのデュアルブートしてるので、Vistaも表示されてますが、Windows11のidentifier「{current}」をメモします。

ブートローダーの内容をコピーする際にWindows11のID「{current}」が必要になります。

bcdedit /copy {current} /d "Windows11(メモリ4GB)"

Windows11のID「{current}」を指定してブートローダーの内容をコピーします。「”Windows11(メモリ4GB)”」は任意の名前です。

エントリは {1c404ff6-0fe7-11ee-ace2-00241d2395e4} に正常にコピーされました。

これも、Windows11のID「{1c404ff6-0fe7-11ee-ace2-00241d2395e4}」をメモしておきます。

「bcdedit」コマンドでコピーしたブートローダーが追加されたか確認します。

Windows ブート ローダー
--------------------------------
identifier              {1c404ff6-0fe7-11ee-ace2-00241d2395e4}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows11(メモリ4GB)
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {045ea40e-0f30-11ee-8f59-b70a4986e5cb}
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {045ea40c-0f30-11ee-8f59-b70a4986e5cb}
nx                      OptIn
bootmenupolicy          Standard
usefirmwarepcisettings  No

コピーしたブートローダーだけ抜粋。コピーされていますね。

この状態で再起動してOS選択画面に入るとWindows11が2つありますが、ブートローダーの内容をコピーしただけなのでどちらを選択しても”同じOS Windows11”が起動されます。

ここから本題、コピーしたブートローダーにメモリ制限の情報を追加します。

bcdedit /set {1c404ff6-0fe7-11ee-ace2-00241d2395e4} truncatememory 4294967296

「truncatememory」は最大メモリの上限で、4GBは「4294967296」になります。設定した数値は10進数ですが、16進数も使えます(8進数は未確認)。

メモリを制限するパラメータは他にも「removememory」もあり、こちらは設定した値から差し引いたメモリ容量になります。4GBに設定していしたら、8GB搭載のPCでは最大メモリは4GBになりますが、16GB搭載PCだと16GB-4GBで12GBになります。

さらに、ややこしいのが「removememory」に設定する値はメガバイトですが、「truncatememory」はバイトです。

truncatememoryで「4096」と入力すると最大メモリが4KBになり、OSがメモリ不足で起動できないので注意しましょう。

「bcdedit」コマンドででメモリ制限されたか確認します。

Windows ブート ローダー
--------------------------------
identifier              {1c404ff6-0fe7-11ee-ace2-00241d2395e4}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows11(メモリ4GB)
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {045ea40e-0f30-11ee-8f59-b70a4986e5cb}
truncatememory          0x100000000
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {045ea40c-0f30-11ee-8f59-b70a4986e5cb}
nx                      OptIn
bootmenupolicy          Standard
usefirmwarepcisettings  No

truncatememoryの設定値が「0x100000000」になっていれば4GBです。

再起動してOS選択画面から、メモリ制限のWindows11が起動できます。

作成したメモリ4GB制限のWindows11を選択して起動します。

タスクマネージャーでメモリ容量を確認すると3.2GBと認識され、メモリ制限のマルチブートが上手くいきました。

再起動して今度は通常のWindows11を起動します。

最大メモリ8GBと認識されて、通常のWindows11も問題ありません。

スポンサーリンク

メモリ制限掛けてのマルチブート、まとめ

動作検証でインストールしたWindows11で作業しましたが、同じ作業をWindows10でも行い問題なくメモリ制限で起動できました。

Windows10も現在ビデオキャプチャ―Monster X2の動作検証の段階でまだOS購入していませんが、Monster X2が問題なく動いてくれたら、ビデオキャプチャ―専用で使っていたWindowsVistaは不要になりますね。

メモリ制限のブートローダー作成で参考にした情報

メモリを操作するためのブート パラメーター - Windows drivers
メモリを操作するためのブート パラメーター

【追記】余ったメモリでRAMディスク化はしないほうがいいかもしれない

Windows10をメモリ4GB制限で起動すると3.2GBほどで認識されますが、OSは64bitなので残りの物理メモリの容量がRAMディスク化で使えるかもしれないとBUFFALOの「RAMDISKユーティリティ」を窓の杜からダウンロードしました。

窓の杜
「BUFFALO RAMDISK ユーティリティー」設定が簡単で使いやすい“RAMディスク”作成ソフト

インストールしてRAMディスクを使用できるメモリ最大容量に設定して再起動…

メモリ4GB制限のブートローダーを選択して起動、使用メモリを確認しようとタスクマネージャーを開いたら最大メモリ8GBと表示される。

何度も再起動してメモリ4GB制限で起動するも、タスクマネージャーで最大メモリ8GBと表示される。

なので、管理者権限でコマンドプロンプトを起動して「bcdedit」を実行。

内容をよく確認して見ると「truncatememory」が消えています。

ついさっきまでビデオキャプターでメモリ4GB制限で起動してたので、bcdeditでパラメーターをいじってはいません。

どうやら、RAMディスク化の設定でブートローダーの内容が置き換わったようです。

というわけで「truncatememory」項目を再設定。

確認して、truncatememoryが追加されたので再起動。

この後、メモリ4GB制限で起動してタスクマネージャーのメモリ容量も3.2GBまで認識出来ました。

BUFFALOのRAMDISKユーティリティだけか分かりませんが、RAMディスク化はブートローダーの内容を書き換える可能性があるため使用しないほうがいいかもしれません。

タイトルとURLをコピーしました