• fuckyeahinternet

    windows11の準備のためのMBR2GPTが失敗する

    やはりこのテの作業は慣れた人でないと対応が難しいです…。自分も苦労しました。エラーが出たのでその対処を書いていきます。

    まず、大変ありがたくも参考になる記事が既にネット上にあるので、そちらをご覧ください。(おそらくは既に読んでいると思いますが)

    https://auviw.com/archives/6188

    https://itlogs.net/windows-10-mbr2gpt

    自分のケースは、以下が該当しました。

    1. GPTではなく、MBRを使っているため変換が必要。
    2. Cドライブ(windowsインストールしているドライブ)にパーテーションがたくさんあるため削除が必要。
    3. (ブートモードがレガシーになっているためUEFIにする必要がある。)これは本エントリでは触れません。

    まずは作業が簡単と思われるパーテーションの削除。これはdiskpartコマンドで簡単に。間違ってCドライブを消す、なんてことをしない限りは平気。回復パーテーションを削除してから、これがないと回復USBドライブが作れなさそうだと気づいたけど、あとで対処することにします。(回復DVDは焼いてあったので…)

    そして、変換できるようになっているか確認します。以下のコマンド。

    mbr2gpt /validate /disk:0 /allowFULLOS

    結果、リンク先にあるように「Cannot find OS partition(s) for disk 0」というエラーに遭遇。リンク先からさらにリンクをたどると、以下のサイトに行きつきますが、ちょっとわかりにくいです。以下、自分の実施したケースも添えてメモを残します。

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

    他のサイトでも触れられていますが、リンク先では実際のコマンドと説明のためのスクリーンショットに齟齬があるらしい。回復ドライブから起動する前提になっている?みたいです。コマンド入力例に実行するパスまで含んでいるからわかりにくいと思います。こんな感じに載っていますが、>とその左は自分の環境では不要でした。スクリーンショット良く見れば気づくかな。

    X: \Sources>dir /a b: \

    まずは手順通りに、システム予約済みパーテーションにドライブレターを割り当てる。例通りにBにしました。diskpart終了後、以下のコマンド実行。

    dir /a b:\Boot

    これで、BCDというファイルがあったので、Bドライブに割り当てたシステム予約済みのパーテーションが作業対象と目星をつけました。つづいてこう。

    bcdedit /store  b:\boot\bcd /enum all

    たしかに、Windows ブート ローダーという項目の中に[unknown]と書いてあるのが見えます。このidentifierの数字を指定して、削除する。あとは冒頭のリンク先で紹介されている通り。自分の場合は二つありましたので、二回作業。

    bcdedit /store b:\boot\bcd /delete {identifierの文字列}

    で、再度mbr2gpt /validate /disk:0 /allowFULLOSを試すと、以下のように準備OKの結果になりました。

    c:\Windows\System32>mbr2gpt /validate /disk:0 /allowFULLOS
    MBR2GPT: Attempting to validate disk 0
    MBR2GPT: Retrieving layout of disk
    MBR2GPT: Validating layout, disk sector size is: 512 bytes
    MBR2GPT: Validation completed successfully

    GPTに変換したら、続いてBIOSの設定変えて起動モードをレガシーからUEFIにするんですが、それはまた次回。