Windows10/Windows11のディスク管理スタイルを「MBR」から「GPT」形式に変換する際に利用する[mbr2gpt.exe]を実行時に[Cannot find room for the EFI system partition.]メッセージが表示される場合の対処に久しぶりにハマったので対処法を紹介します。
[mbr2gpt.exe]の実行に失敗した場合、ディスクが正しく読み取れなくなる可能性があるため、実行する前にバックアップを用意することをお勧めします。
MBRからGPTへの変換
Windows11へのアップグレード条件を満たすためには、システムドライブをGPT形式にする必要があり
例えば、こんな感じでシステムドライブとして使っている、M.2 SSDがマスターブートレコード(MBR)でパーティション設定をしている私は困りました。
Windows7やWindows10をインストールした頃は、まさかオペレーティングシステムのインストール条件になるとは思わず、何も考えずに設定していたと思います。
そんな時に便利に使えるのが「mbr2gpt.exe」。x64版のWindows10であれば標準でインストールされているので、コマンドプロンプトですぐに使うことができます。
とりあえず、実行前に /validate オプションを使って確認してみます。
C:\Windows\System32>mbr2gpt /validate /allowFullOS
MBR2GPT: Attempting to validate disk 4
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully
はい。こんな感じで変換することができる確認がとれました。
続けて、 /convert オプションで変換を行います。
C:\Windows\System32>mbr2gpt /convert /allowFullOS
ん?
MBR2GPT will now attempt to convert the default book disk.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!
MBR2GPT: Attempting to convert disk 4
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the OS partition
Cannot find room for the EFI system partition.
MBR2GPT: Conversion failed
ということで、[Cannot find room for the EFI system partition.]という今まで、見たことがないメッセージが表示されて失敗しました。
で、このままでは詳しい内容が分からないので、コマンドを実行した直後であればエラーログを確認(システムドライブ内のWindowsフォルダーの[setupact.log]にある)できます。
出てきたエラーログが、こんな感じ。
Info Unique ID size: 12
Info MBR2GPT: System partition cannot be removed in full OS mode, leaving it untouched.
Info MBR2GPT: Trying to shrink the OS partition
Warning MBR2GPT: Partition final size is: 510898569728 (initial size was 510898569728), cannot rely on this space
Error Cannot find room for the EFI system partition.
Info MBR2GPT: Partition information at error point
要するに、システムパーティションに、フルOSモードを待避することができないらしいです。シュリンク(圧縮)してもスペースが足らないというのが[mbr2gpt]の言い分のようです。
で、SSDの状態を確認するために[ディスクの管理]で内容を表示してみたのが、こんな感じ。約500GBの容量ですがシステムの予約領域は579MBが用意されていました。
システムの予約領域の詳細を確認してみると、表示値ですが、544Mが空いています。エラーメッセージに書かれていたサイズが「510898569728」なので5ギガ分の空き容量が無いと駄目のようですね。(そんなアホなという感じがします)
いろいろ調べていくと、公式のコミュニティーでこんな書き込みを見つけました。
現在Windows をブートしているストレージには、基本的に実行しないでください。もし実行したいのであれば、CSMを無効にしたうえで、UEFIモードで、ストレージを初期化してWindowsをカスタムで新規にインストールしなおしましょう。もちろん、Cドライブを含まない別のストレージであれば問題なく実行できるはずです。
MBRからGPTへの変換(mbr2gpt.exe)エラー
ブートしているディスクには、[mbr2gpt]は使ったらアカンみたいです。マジか…
回復ディスクから[mbr2gpt]を実行
作って(持って)いない場合には、[回復ドライブの作成]でUSBドライブを用意して作ります。(その際に[システム ファイルを回復ドライブにバックアップします]を有効にしておきます)
作って(持って)いない場合には、[回復ドライブの作成]でUSBドライブを用意して作ります。(その際に[システム ファイルを回復ドライブにバックアップします]を有効にしておきます)
回復ドライブから起動して、[トラブルシューティング|コマンド プロンプト]の順で選択して、次のコマンドを順に入力します。
diskpart
list disk
一覧で表示された内容から容量で把握するしかないですが、Windowsがインストールされているドライブを見つけます。(私の場合は[ディスク 4])
あとは、ディスクの番号を追加して次のコマンドでGPTに変換を行います。
X:\Windows\System32>mbr2gpt /convert /disk:4 /allowFullOS
こんな感じで[Conversion complete successfully]が表示されれば変換成功です。
まとめ
Windows10の[mbr2gpt.exe]で変換時に[Cannot find room for the EFI system partition.]表示される場合には、Windowsがインストールされたドライブに対して実行した場合に、表示されるようです。
ブートドライブに対して[mbr2gpt.exe]を利用する場合には、USBメモリーなどの回復ドライブで起動して、Windowsがインストールされたディスクを指定して実行することで変換に成功することができます。
また、[mbr2gpt.exe]の実行に失敗した場合、ディスクが正しく読み取れなくなる可能性があるため、実行する前にバックアップを用意することをお勧めします。
[mbr2gpt.exe]でGPT形式に変換できなくて困っている人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。