ネット上で紹介されている情報を参考に、システム構成(msconfig)の「ブート詳細オプション」にある「最大メモリ」にチェックを入れてしまい、再起動後に Windows 11 が立ち上がらなくなった……。
さらに、ブルースクリーン(BAD_SYSTEM_CONFIG_INFO、0xc0000218、HAL_MEMORY_ALLOCATION など)が表示され、セーフモードすら起動しない。そんなトラブルに直面していませんか?
この記事では、復元ポイントがない場合でも、コマンドプロンプトだけでこの設定を強制解除し、元通り起動させる方法を解説します。
なぜ起動しなくなるのか?(原因)
Windows 11 は通常、搭載されているメモリ量を自動的に認識し、起動に必要な分を確保して管理しています。
しかし、msconfig で「最大メモリ」に不適切な数値(極端に少ない数値や 0 など)が指定されてしまうと、Windows カーネルをロードするためのメモリー空間が足りなくなり、起動プロセスがクラッシュしてしまいます。
この「最大メモリ」設定は、開発者が「メモリーが少ない環境での動作テスト」をするためのデバッグ用機能です。高速化などのための機能ではありません。 一般利用でここを変更するメリットはなく、むしろ今回のような起動不能リスクしかありません。
コマンドプロンプトで設定を強制解除する方法
「スタートアップ修復」が効かない場合でも、原因となっている「メモリ制限の設定」そのものをコマンドで削除すれば解決します。以下の手順で実行してください。
手順1:コマンドプロンプトを起動する
以下のいずれかの方法でコマンドプロンプトを開きます。
1.自動修復画面から(回復環境[WinRE])
1.ブルースクリーン画面が表示されたら、「電源ボタンを長押しして強制終了>PC を起動」を 2~3回繰り返すと、起動時に「自動修復を準備しています」→「PC を診断中」と表示され、
しばらくすると下記の「自動修復」画面が表示されますので、右下の「詳細オプション」をクリックします。
2.「オプションの選択」が表示されますので、「トラブルシューティング」>「詳細オプション」>「コマンドプロンプト」と、順番に選択してください。
参考:Win11 セーフモードなどが選択できる「回復環境(WinRE)」の開き方
2.インストールUSB(回復ドライブ)から
別の PC がある場合は、Windows 11 のインストールメディア(USB)を作成し、不具合のある PC に挿して起動するのが最も確実です。
- 問題の PC にインストール USB を接続し、USB から起動するように BIOS の起動順位を変更します。
- Windows のインストール画面が表示されたら、「次へ」をクリックします。
- そのままもう一度「次へ」をクリックします。
- 「PC を修復する」を選択し、「次へ」をクリックします。
- キーボードレイアウト選択の画面が表示されますので、「Microsoft IME」を選択します。
- 「トラブルシューティング」>「コマンドプロンプト」を選択します。
インストールUSB(回復ドライブ)から修復を行う場合:
Windows 11 のインストールメディア(USB)をお持ちでない場合は、下記のいずれかの方法で作成してください。
手順2:修復コマンドを実行する
黒い画面(コマンドプロンプト)が表示されたら、以下のコマンドを 1行ずつ入力して Enter キーを押してください。
① 最大メモリー制限(truncatememory)の削除
bcdedit /deletevalue {default} truncatememory
これがトラブルの元凶である「最大メモリ」の設定値を削除するコマンドです。
- 成功した場合: 「操作は正しく終了しました」と表示されます。
- エラーが出る場合: 「要素が見つかりません」と出た場合は、すでに設定がないか、識別子が異なります。その場合は
{default}の部分を{current}に書き換えて試してください。
「指定されたエントリ識別子は有効ではありません」と表示される場合:
この場合も同様に、コマンド内の {default} を {current} に書き換えてお試しください。
{default} や {current} の部分を専門用語で「識別子」と呼びます。 この部分は、一字でも(カッコ { } の有無も含めて)間違っているとエラーになりますので、正確に入力してみてください。
それでもエラーになる場合:
もし {current} に書き換えてもエラーが表示される場合は、下にある 「追記:【上級編】それでもエラーになる場合(正しい識別子の指定) 」 の手順をお試しください。
② 物理メモリーの総量から指定した容量を除外する設定(removememory)の削除(念のため)
bcdedit /deletevalue {default} removememory
念のため、物理メモリーを除外する設定も削除しておきます。(通常 msconfig では設定されませんが、他のツール等で変更されている可能性を考慮して実行します) ※「要素が見つかりません」などのエラーが出た場合は、設定されていなかったということですので、無視して構いません。
③ 終了と再起動
exit
コマンドプロンプトが閉じますので、「続行」を選んで Windows 11 が正常に起動するか確認してください。
「truncatememory」と「removememory」について:
| 名称 | 説明 |
|---|---|
| truncatememory (msconfig の「最大メモリ」) | 意味:「メモリーの上限をここまでにする」 挙動:指定したアドレス以降のメモリーをすべて無視します。 例:「8GB あるけど先頭の 4GB しか使わない」 |
| removememory | 意味:「メモリーの総量からこれだけ減らす」 挙動:OS が認識しているメモリから、指定した MB 分を使用不可にします。 例:「8GB あるけど、そこから(どこでもいいから)2GB 分減らして、6GB として動く」 |
追記:【上級編】それでもエラーになる場合(正しい識別子の指定)
{current} でも「識別子は有効ではありません」となる場合、手動で正しい識別子(ID)を調べる必要があります。
1.コマンドプロンプトに bcdedit とだけ入力して Enter キーを押します。
※もしここでエラーが出る場合:
「ブート構成のデータ ストアを開けませんでした。要求されたシステムデバイスが見つかりません。」と表示されてしまう場合は、USB の起動モードが合っていません。 下の 追記:それでもダメな場合(USB起動の方へ) へ進んでください。
2.文字が一覧表示されますので、「Windows ブート ローダー」 という項目を探してください。
3.その中にある「identifier」と書かれた項目の、右側の文字列を確認します。
- 下の画像では
{default}となっていますが、例:{9dea862c-5cdd-4e70-acc1-f32b344d4795}のような長い英数字になっている場合があります。
4.その確認した文字列(カッコを含む)を使ってコマンドを入力します。
コマンド例: (※ {xxxxxxxx-...} の部分は、実際に画面で確認した英数字を入れてください)
bcdedit /deletevalue {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} truncatememory
この部分は、一字でも(カッコ { } の有無も含めて)間違っているとエラーになりますので、正確に入力してみてください。
【ヒント】長い英数字(ID)を簡単にコピー&ペーストする方法:
この黒い画面でも以下の手順でコピーが可能です。入力ミスを防ぐためにもおすすめです。
bcdeditと入力して一覧を表示させます。- コピーしたい ID(
{ }を含む部分)をマウスでドラッグして白く反転させます。 - その状態で Enter キー を押すとコピーされます。
- コマンドを入力する場所で 右クリック すると、コピーした文字が貼り付けられます。
追記:それでもダメな場合(USB起動の方へ)
もし bcdedit と入力した際に、以下のエラーが出る場合は、USBメモリの起動モードが間違っています。
エラーメッセージ: 「ブート構成のデータ ストアを開けませんでした。要求されたシステムデバイスが見つかりません。」
これは、パソコン本体は最新のモード(UEFI)なのに、USBメモリを古いモード(Legacy)で起動してしまった際に起こる現象です。 (※セキュアブートを無効にしていると、この間違いが起きやすくなります)
以下の手順で、「UEFI」と書かれた方の USBメモリを選び直して起動してください。
- パソコンを再起動し、メーカーロゴが出た瞬間に「ブートメニュー」を出すキー(F12キーや F11キーなど)を連打します。
- 起動デバイスの選択画面で、USBメモリの項目を確認します。
- 以下のように名前が似た項目が 2つある場合は、必ず「UEFI」と頭に付いている方を選択してください。
- ❌
USB : SanDisk(古いモード:こちらを選ぶとエラーになります) - ⭕
UEFI : USB : SanDisk(新しいモード:こちらを選んでください)
- ❌
- 「UEFI」の方で起動した後、再度黒い画面で
bcdeditコマンドを入力すれば、正常にリストが表示されるはずです。
まとめ
- msconfig の「最大メモリ」は絶対に触らない。(高速化効果はありません)
- もし設定して起動しなくなっても、bcdedit コマンドを実行すれば復旧できる。







コメント