MBR2GPTが失敗する!私の対策はこれだ!

PC

Windows11の対応条件にストレージのパーティションテーブルがMBR(マスターブートレコード)ではなくGPT(GUIDパーティションテーブル)である必要があります。

私の環境ではOSの起動ストレージがMBRになっていたためGPTに変更しなければいけません。一番簡単な方法はストレージをフォーマットしてOSをクリーンインストールする方法ですが、環境の再構築が面倒なのでデータを保ったまま変更に挑戦してみました。

結局は上手くいかなかった原因究明と試行錯誤があり丸一日を費やしました。

各アプリのバックアップは定期的に取っているのでフォーマットして再構築したほうが良かったかもしれませんが、良い経験として記録を残しておきます。

※以降の説明画像は後からキャプチャしていることもあり、異なるストレージの情報が混在しています。要点以外は気にしないでください。

スポンサーリンク

パーティションテーブルの確認方法

まずは自分のストレージがどうなっているか確認が必要です。Windowsマークを右クリックしてディスクの管理を開きましょう。

ディスクの管理画面が開くので調査したいストレージを右クリックしてプロパティを選択します。

実はここですでに分かるんですが…。灰色で選択できませんが「GPTディスクに変換」という文字が見えます。ということは今はMBRということになりますが、念のためプロパティ画面でも確認してみます。

プロパティ画面のボリュームタブを開くと中央あたりにパーティションのスタイル:マスターブートレコード(MBR)とあります。つまりMBRなのです。

MBR2GPTの実行

GPTに変換が必要だということは分かったので次は変換ができるかどうかを調べます。

MBR2GPTの実行に必要な条件

コマンドプロンプトでMBR2GPTというコマンドを使いますが、こちらには使用要件があります。要件も満たしていないと変換できません。要件を含めた詳細な内容はMicrosoft公式で紹介されています。

MBR2GPT - Windows Deployment
ディスクMBR2GPT.EXEを変更または削除せずに、マスター ブート レコード (MBR) から GUID パーティション テーブル (GPT) パーティション スタイルに変換する場合に使用します。

要約して抜き出します。

  • 現在、ディスクが MBR を使っていること
  • MBR パーティション テーブルに最大 3 つまでのプライマリ パーティションがあること
  • パーティションの 1 つがアクティブとして設定されているシステム パーティションであること
  • ディスクには、拡張パーティション論理パーティションないこと

色々書いてありますが、特に重要そうなのがこの4点だと思いました。実際に私が該当したのがパーティション数でした。

やったこと①パーテイション削減

1ストレージに3パーティションより多いとダメです。

これがダメな例です。自分的には使用しているのはCとDの2パーティションだけですが、実際にはシステムで予約済みと回復パーティションもあるので4パーティションあります。

こういう時はデータ用のパーティションを一時的にパックアップに移して3つに収めるか回復パーティションを削除するしかないです。回復パーティションはUSBメモリで回復ドライブを作っておけば代用が利くので思い切って削除してみましょう。

回復パーティションの削除

回復パーティションは通常とは異なる方法で削除します。画像付きで分かりやすいブログがあったので紹介します。

Windows10 - 回復パーティションを削除(DiskPart)する方法 | PC設定のカルマ
Windows10 の回復パーティションを削除する方法を紹介します。

回復ドライブの作り方

回復パーティションを削除したら、いざというときのために代わりとなる回復ドライブを作っておきましょう。

Windows10 - 回復ドライブの作成と使い方(USBメモリ) | PC設定のカルマ
Windows10の回復ドライブの作成と使い方を紹介します。

これで条件はクリアしたのでMBR2GPTを実行してみましょう。ちなみにいろんなブログを見るとWindowsを起動してからコマンドプロンプトで実行している人が多いですが、システムディスクを触る都合上、回復ドライブからコマンドプロンプトを起動して実行したほうが良いです。

エラーに遭遇「 Disk layout validation failed for disk 0」

パーティション数をクリアしてもこのエラーが出る場合は、拡張・論理パーティションがあります。

こちらはデータを別ストレージにバックアップして該当パーティションを削除しましょう。

エラーに遭遇「Cannot find OS partition(s) for disk 0」

無事に条件をクリアできたかと思ったらなんとOSパーティションが見つからない様子。そんなわけない!OS起動してるもん!ということは何かおかしいですね。

調べてみると同じ事象に遭遇している質問がありました。

Cannot find OS partition(s) for disk 0への対応をご存知有りませんか。
Windows11への乗り換えを考えています。 尚、OSはWindows 10 Pro 20H2で、PCはお店で組んで貰った物です。 CPUはCORE-I5 9600K、マザーボードは MSIのZ390A-PROです。 WINDOWSの高速スタートアップは無効化しています。 先立って起動ドライブをGPTに変更しておきた...

一番最後の回答が参考になりそうなのでやってみます。

私の場合はこちらのサイトに載っている方法で変換できるようになりました。

https://www.diskpart.com/gpt-mbr/mbr2gpt-cannot-find-os-partition-7201.html

Windowsのバージョンアップを行った際に残ったBCD構成ファイル内のゴミを削除しています。

https://answers.microsoft.com/ja-jp/windows/forum/all/cannot-find-os-partitions-for-disk/efb2f377-950e-4256-aced-477ee67c6cee

やったこと②ごみファイルの削除

リンク先は英語ばかりでしたが、Google翻訳を駆使して何とか解読しながら進めました。回復ドライブからコマンドプロンプトを起動しましょう。

Best Way to Fix “MBR2GPT Cannot Find OS Partition” in Windows 10
Have you ever met the “MBR2GPT cannot find OS partition” error message when trying to convert boot disk to GPT? Here comes the best solution.

コマンドプロンプトから操作する

簡単に書くと以下の手順になります。元サイトのStep○に対応するようにしたので見比べながらやってみてください。

  1. diskpartを使ってドライブ文字を決めます。
    OSの入っているパーティションと「システムで予約済み」のパーティションで別の文字を割り当てます。
    ※OSは初めからCドライブになっているので「システムで予約済み」のパーティションだけ設定して読み替えて進めました。
  2. 「X: \Sources>dir /a (ドライブ文字): \」というコマンドで「Boot」フォルダを見つけます。
    OSのパーティションとシステムで予約済みパーティションのどちらかにあります。
  3. 「Boot」フォルダを見つけたほうのパーティションで「X: \Sources>dir /a (ドライブ文字): \Boot」を実行し「bcdedit」ツールを見つけましょう。
  4. 「X: \Sources>bcdedit /store (ドライブ文字):\boot\bcd /enum all」を実行すると「device ramdisk=[unknown]~」になっているものが見つかります。これがゴミファイルです。
    「identifier」の長い文字列をコピーしましょう。
  5. ごみファイルを削除します。「X:\Sources>bcdedit /store (ドライブ文字):\boot\bcd /delete {(identifierを貼り付け)}」を実行して削除します。
  6. 再度Step.4を実行して他にごみファイルがないか探します。なければ完了!MBR2GPTを実行しましょう!

私はこれで出来ました。とても長い道のりでした。複数のパソコンを対応する必要のある方は有料ソフトを使えば簡単にできるのでそちらをオススメします。

EaseUSはパーティション操作ソフトのためGPT変換が出来るようです。

HD革命はコピー、バックアップ時にGPTに変換しながらコピーできる仕様のようです。

コメント

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