Windows10やWindows11でbcdeditコマンドを使用してマルチブートを作成して、通常起動とメモリ容量4GB起動の2つのブートを作ります。
最大メモリ4GB以下でしか動作しないアプリやデバイスを使用するためです。
普段は通常起動にして、メモリ容量の制限が必要なアプリやデバイスを使う時だけOS選択画面(ブートマネージャー)で切り替えて使うようにします。
見かけ上は複数のOSが入っているように見えますが同じドライブのOSを起動しているので、最大メモリ4GBでOSを起動してもアプリやデバイスのドライバ、ユーザー環境は今までのまま使えます。
また、通常起動時に追加でインストールしたアプリなども、メモリ4GB制限で起動してもそのまま使えます。
ここでは、動作が最大メモリ4GB以下と制限があるビデオキャプチャーカード「SKNET Monster X2」を使う目的でマルチブートを作成します。
作業はコマンドプロントを起動してbcdeditコマンドでブートの複製、システム構成から複製したブートに最大メモリ4GBを設定ます。
全てbcdeditコマンドでも作業できますが、最初にブートを複製する以外はGUI操作なので、この方法の方が簡単だと思います。
パソコンが今までの旧PCから新PCへ変わったので、それに伴い少し内容を更新しました。やってる内容は同じですが、全てコマンド上で行わずともメモリ制限のマルチブートを出来るのと、UEFIのセキュアブート環境で使用する際に注意する必要もあったのでそれについて追記で書いています。
2024/05/26
bcdeditコマンドでブートを複製
管理者権限でコマンドプロンプトを開く。
まずは、現在のブート情報を確認する。
コマンド実行
bcdedit
結果

Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {9ce47365-0782-11ef-849a-b72e8d21ebfd}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows ブート ローダー
--------------------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
osdevice partition=C:
systemroot \Windows
resumeobject {c9559ee5-126e-11ef-9721-806e6f6e6963}
bootmenupolicy Standard
マルチブートを行っていないと通常、上記のブートマネージャーとブートローダーの2つが登録されていると思います。
今回は「Windows ブートローダー」を複製します。
複製には、複製元ブート情報のIDが必要になります。そのために「bcdedit」コマンドで現在のブート情報を確認する必要がありました。

identifierは「{current}」になっています。
ブート情報を複製するコマンドを実行
bcdedit /copy ID /d "任意の名前"
このように「bcdedit /copy {current} /d “Windows11(メモリ4GB)”」に入力しました。
IDはコピーするブート情報のidentifierです。今回は「{current}」と入力してます。鍵括弧の「{}」も必要です。
また、ブートマネージャーで表示するOS名も区別付きやすい名前にするといいでしょう。今回メモリ4GB制限で起動するので「Windows11(メモリ4GB)」にしました。名前はダブルクォーテーション「””」内に入力します。
コマンドの結果
エントリは {9ce4736b-0782-11ef-849a-b72e8d21ebfd} に正常にコピーされました。
ブート情報を複製すると上記のメッセージが表示されます。
新しいブート情報のIDは{9ce4736b-0782-11ef-849a-b72e8d21ebfd}になりました。
ここでは、最大メモリ4GBに設定し後に確認するため、コマンドプロンプトは閉じないでおきます。
システム構成のブートから最大メモリ4GBに設定
このままだとシステムも一緒な”同じOS”が起動するので作成したブート情報の方を最大メモリ4GBに設定します。
コントロールパネルを開いて「Windowsツール>システム構成」を開きます。
「ブート」タブを開いて先ほど作成したブート情報を選択。
【詳細オプション】をクリックします

ブートオプションの「最大メモリ」にチェックを入れて設定値を4096にします。

画像の最大メモリ入力欄がグレーになっていますが、画像容量を小さくするのに色数を落としているので、実際の入力欄はチェックが入ってる状態で白く、入力はできます。
作業はこれで完了です。

OKをクリックして「システム構成」終了しようとすると再起動しますかと聞かれますが、ここではブート情報の最大メモリが設定されているか確認するため「再起動しないで終了する」を選択しています。
bcdeditコマンドでブート情報を確認
再びコマンドプロンプト使います。一度コマンドプロンプトを終了していたら管理者権限で起動してください。
コマンド実行
bcdedit
コマンドの結果
Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {9ce47365-0782-11ef-849a-b72e8d21ebfd}
displayorder {current}
{9ce4736b-0782-11ef-849a-b72e8d21ebfd}
toolsdisplayorder {memdiag}
timeout 30
Windows ブート ローダー
--------------------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
osdevice partition=C:
systemroot \Windows
resumeobject {c9559ee5-126e-11ef-9721-806e6f6e6963}
bootmenupolicy Standard
Windows ブート ローダー
--------------------------------
identifier {9ce4736b-0782-11ef-849a-b72e8d21ebfd}
device partition=C:
path \Windows\system32\winload.efi
description Windows11(メモリ4GB)
locale ja-JP
truncatememory 0x100000000
osdevice partition=C:
systemroot \Windows
resumeobject {c9559ee5-126e-11ef-9721-806e6f6e6963}
bootmenupolicy Standard
usefirmwarepcisettings No
一番下の「Windows ブートローダーが先ほど複製したブート情報です。identifierが「{9ce4736b-0782-11ef-849a-b72e8d21ebfd}」になっていますね。
システム構成のブート詳細オプションから最大メモリを設定すると「truncatememory」の項目が追加されています。

truncatememoryはメモリ容量に関する項目で、メモリ4GBは「0x100000000」になってます。
16進数表記なので10進数で表すと4294967296バイトで、4GBになります。
再起動してメモリ4GBで起動する確認します。
メモリ4GB制限でWindowsの起動を確認

ブートマネージャーのOS選択画面が表示され、先ほど登録したメモリ4GBでOSを起動する項目が出またので、選択してOSを起動します。
再起動が始まりWindows11が起動しました。
タスクマネージャーでメモリを確認します。

パソコンの搭載メモリは32GBですが、OS上では3.1GBと認識されています。
最大メモリ4GBに設定してると設定した値より小さく、環境により3.2GBや3.1GBなどで認識されます。32ビットOS時代のメモリ上限4GBと同じ容量で認識出来ていると思います。
これでメモリ4GB以下で動作するMonster X2が使えるようになりました。

画像は旧パソコンの環境のものですが、今の新PC環境でも映像が表示できます。
UEFIのセキュアブートだとメモリ制限をして起動してもパソコン搭載の最大メモリで起動します。なので、マザーボードのUEFI BIOSでセキュアブートを無効にする必要があるので後述しています。
bcdeditコマンドのみで最大メモリ4GB制限のブートを作成する
bcdeditコマンド上で全ての作業を行う内容も残しておきます。
既に行ってる作業は、上記で作業した以下の通り。
- 管理者権限でコマンドプロンプトを開く
- 「bcdedit」コマンドでブート情報を確認
- 「bcdedit /copy {current} /d “Windows11(メモリ4GB)”」コマンドでブート情報複製
- 「bcdedit」コマンドで複製したブート情報 ID「{9ce4736b-0782-11ef-849a-b72e8d21ebfd}」があるのを確認
ここからは、最大メモリ4GBに設定します。
コマンド実行
bcdedit /set {ID} truncatememory 4294967296
IDは複製したブート情報のidentifierなので全て書くと「bcdedit /set {9ce4736b-0782-11ef-849a-b72e8d21ebfd} truncatememory 4294967296」このようになります。
bcdeditのオプション「/set」はパラメーターを追加したり変更したいります。どのブート情報のパラメーターを追加/変更するかID(identifier)を指定して、「truncatememory」項目を追加(あるいは上書き)して「4294967296」の値を入れます。
て、感じでしょうか。
truncatememoryの値はバイトなのでメモリ4GBに設定するときは『4294967296』にします。「4096」に設定するとメモリ4KBになりWindows11や10はメモリ不足で起動できません。
メモリ設定が追加されたか確認します。
コマンド実行
bcdedit
コマンドの結果(設定したブート情報のみ抜粋)
Windows ブート ローダー
--------------------------------
identifier {9ce4736b-0782-11ef-849a-b72e8d21ebfd}
device partition=C:
path \Windows\system32\winload.efi
description Windows11(メモリ4GB)
locale ja-JP
truncatememory 0x100000000
osdevice partition=C:
systemroot \Windows
resumeobject {c9559ee5-126e-11ef-9721-806e6f6e6963}
bootmenupolicy Standard
usefirmwarepcisettings No
「identifier{9ce4736b-0782-11ef-849a-b72e8d21ebfd}」に「truncatememory 0x100000000」が入っていれば完了です。
bcdeditでメモリ容量に関する項目は「truncatememory」と「removememory」があります。
「truncatememory」最大メモリを設定する項目。設定値の4294967296は4GB。
「removememory」パソコン搭載メモリの容量から差し引いた容量を設定する項目。PC搭載メモリが32GBなら、設定値4294967296だと「32GB-4GB」=「28GB」で起動します。16GB搭載なら4GB差し引いた12GBで起動します。
※説明のための計算上のメモリ容量なので、環境により実際のメモリ容量は少なくなります。
bcdeditコマンドは、項目を値を「追加/変更」する他にも、削除などブートマネージャーに関わるコマンドがあるので、詳細を知りたい方はMicrosoftのフォーラム「Lern」を参考にするといいと思います。

bcdeditコマンドの/setオプション、メモリに関するtruncatememoryの情報もあります
BCDEdit /set – Windows drivers | Microsoft Learn
埋め込みリンクがリンク切れになるみたいなので、テキストリンクから
セキュアブート有効でメモリ4GB起動できない
セキュアブート対応のパソコンが1台しかなくて他の環境で確認はできないので、もしかしたら自分だけの環境で起こる問題かもしれないですが、UEFI BIOSのセキュアブート項目を「UEFIブート」に選択するとメモリ4GB制限でOS起動しても、パソコンに搭載している最大メモリの32GBで認識されてしまいます。
パソコン構成
- CPU Ryzen7 5700G
- M/B ASUS TUF GAMING B550-PLUS
- RAM DDR4-3200 32GB(16GB x2枚)
- OS Windows11 HOME 23H2
UEFI BIOSの設定からセキュアブートを無効にしたら解決しました。
ASUS TUF GAMING B550-PLUSのUEFI画面での作業となります。他製品や他メーカーは項目や表記が異なるかもしれません。
ASUS TUF GAMING B550-PLUSでセキュアブート有効/無効の設定
- パソコン再起動してF2キーもしくはDeleteキーからUEFIに入る
- F7キーを押してAdvancedモードに入る
- [起動]タブから【セキュアブートメニュー】を選択
- [OSタイプ]を【非UEFIモード】にする


設定したらF10キーを押して保存して再起動します。
Windowsのスタートメニュー検索欄で「msinfo32」と入力してシステム情報を開きます。

セキュアブートの状態が「無効」になっていたら非UEFIモードです。
※一部PCゲームやアプリでは非UEFIモードのセキュアブート無効の状態だと動作が安定しない場合があります。その場合は、UEFIモードにしてください。
余談、メモリ制限時に内蔵GPUのVRAMはOS管轄外メモリを消費する
パソコン1台しか確認できる環境を持っていないので、もしかしたら自分の環境だけかもしれないですが…
パソコンのメモリ32GB搭載している環境でメモリ4GBに制限して起動すると残りの28GBが使えない状態になってしまいます。
そこで、内蔵GPUのVRAM容量を2GBと16Gbと大きく設定しましたが、Windowsタスクマネージャーからメインメモリの容量は3.1GBと変わりなく認識されています。


内蔵GPUのVRAMを変更してもメインメモリで認識されている容量が3.1GBと変わらなずなので、メモリ容量制限でOSを起動するとVRAM容量はOS管轄外から割り当ててるみたいです。
これも、ASUS TUF GAMING B550-PLUSのUEFI画面での作業となります。他製品や他社メーカーはUEFI BIOSの画面や表記が異なる場合がります。
ASUS TUF GAMING B550-PLUSで内蔵GPUのVRAM容量設定
- パソコン再起動してF2キーもしくはDeleteキーからUEFIに入る
- F7キーを押してAdvancedモードに入る
- [詳細]タブから【ノースブリッジ設定】を選択
- [UMAフレームバッファサイズ]から好みの容量を設定する


パソコンの搭載メモリによると思いますが、自分はメモリ制限なしの通常起動する事のが多いので、とりあえずVRAM 2GBに設定しました。
メモリ4GB制限で起動したままゲームをする場合でも、古めのゲームならタスクマネージャー上で認識してるメインメモリの容量を圧迫しなくていいんじゃないかなと思います。