マザーボード交換の際に、Windows10のシステムドライブをMBRからGPTに変換した結果、様々な問題が発生したが全て解決した

Windows機のマザーボードとCPU交換でWindowsの再インストールをしたくなかったので、MBRからGPTに変換したところ様々な問題が発生した。その様々な問題の原因は全て同じであった。このノートはそれら作業の記録と発生した問題の解決策の記録である。

MBRディスクをGPTに変換後に発生した問題

MBRディスクをGPTに変換してから次の問題が発生するようになった。

  • セーフモードで起動できない

  • msconfigのブート構成がからっぽになっている

  • bootrec /rebuildbcdで「システムデバイスが見つかりません」と失敗する

  • PCの起動をカスタマイズできない=回復領域が使えない

  • reagentc /enable で回復領域を有効にしようとすると「3bc3」で失敗する

  • シャドウコピーに失敗するためバックアップができない

これらは全て同じ事が原因だった(後述)

MBR2GPT変換ツール

まずはMBR2GPT.EXEツールを使用してMBRディスクをGPTパーティション形式に変換した
https://learn.microsoft.com/ja-jp/windows/deployment/mbr-to-gpt

MBRディスクは最大パーティションが4つのため、4つある場合はGPTに変換できない。筆者はWindowsインストールパーティション以外の全てのパーティションを削除して変換し、EFIとMSR(Microsoft予約)と回復パーティションは後から作る事にした

基本的なパーティションのレイアウト

EFI System(S:) -> MSR -> Windows(C:) -> 回復領域(R:)

WindowsをそのままにMBRディスクをGPTディスクに変換した時は、EFI SystemとMSR(Microsoft予約)パーティションを入れる余裕がないかもしれない。筆者は「MiniTool Partition Wizard」を使いWindowsの前方に450MBの空きを用意してEFI(200MB)とMSR(250MB)を作成した。また、一番後ろにも回復領域用に1GBの空きを用意した。

この先のドライブ文字は全ておま環である

  • EFI SystemをSドライブ

  • WindowsをCドライブ

  • 回復領域をRドライブ

として説明をする

EFIパーティションの作成

GPTディスクをUEFI起動させるのに必要なパーティション。msconfigのブートタブが空っぽになったていたらこのパーティションが関係している(後述)

diskpartによる操作

create partition efi size=200
format quick fs=fat32 label="EFI System"
assign letter="S"

次の位置がBCDの設置場所となる

S:\EFI\Microsoft\Boot\BCD

MSR(Microsoft予約)パーティションの作成

GPTディスクにはMSR(Microsoft予約)パーティションを作れとMicrosoftが言っているので作る

diskpartによる操作

create partition msr size=250 offset=204800

offsetはKBなので204800KBでEFIパーティション(200MB)の直後に作成される。「offsetを指定しなくてもEFIとWindowsのパーティションの間に作ってくれる」という記事を見たが、筆者の作業時は指定をしないとWindowsの後ろに作成されたのでどうやら違うようだ

BCDファイルの再作成

EFIパーティションの「S:\EFI\Microsoft\Boot\BCD」を作成する。ディスクをGPTに変換ずみのためMBR用の情報は不要。ALLではなくEFIでよい

bcdboot C:¥Windows /l ja-jp /s S: /f EFI

Windowsブートマネージャーが作成されて「C:\Windwos」がWindowsブートローダに登録される。ちなみにWindowsブートマネージャーはPC起動直後のブートデバイスの選択用でWindowsブートローダはセーフモードを含むどのバージョンを起動させるかの選択用である。

bootrecがエラーになる

起動構成がおかしくなった時はどこの技術情報サイトもfixbootとrebuildbcdを実行するよう書いてある。「bootrec /fixmbr」も書いてある事が多いがそれはMBR用なので不要である。

bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd

rebuildbcdをして登録する時に「要求されたシステムデバイスが見つかりません」と表示がされるのは後述する理由のため

bcdeditがエラーになる

例えば次のコマンドはWindowsブートローダーを選択できるようWindowsブートマネージャーへ設定する方法

bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 10

もし上記のコマンドが「デバイスが見つかりません」とエラーになったら/store指定を追加して試す

bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {bootmgr} displaybootmenu yes
bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {bootmgr} timeout 10

もし/store指定を追加して成功したなら、それはsysstoreが設定できていないため。次のコマンドで指定する。

bcdedit /sysstore S:\EFI\Microsoft\Boot\BCD

もし/sysstoreが失敗したならそれは後述する理由のため

回復パーティションの作成

Windowsの設定から「PCの起動をカスタマイズする」で使用される領域。
これがないと青色の画面の「トラブルシューティング」からコマンドプロンプトを使ったりできない。

diskpartによる操作

create partition primary size=1024
format quick fs=ntfs label="Recovery"
assign letter="R"
set id="DE94BBA4-06D1-4D40-A16A-BFD50179D6AC"
gpt attributes=0x8000000000000001

set idで回復パーティション用とし、gpt attributesで非表示としている。作成した回復パーティションにWinre.wimを設置するディレクトリを作成する。

md R:\Recovery\WindowsRE

回復パーティションを有効にする

インストールメディアからWinre.wimを取り出して次の場所に設置する。取り出し方は割愛する。

C:\Windows\System32\Recovery
R:\Recovery\WindowsRE

回復領域を登録する

reagentc /setreimage /path R:\Recovery\WindowsRE

コマンドで回復領域の状態を確認

reagentc /info

回復がdisabledになっているはず。コマンドで回復領域を有効にする

reagentc /enable

もしエラーコード「3bc3」が返ってきて失敗したら後述する理由のため

どうしてbcdeditやreagentcが失敗したのか?

「MBRディスクをGPTに変換後に発生した問題」は全てがたった一つの事が原因で失敗していた。公式ドキュメントやどこの技術サイトにも書かれていないある事をしたら解決した。筆者の行った解決方法は100円で教えてあげる。筆者の解決方法で解決しなかったとしても筆者は責任を取らない。

ここから先は

566字

¥ 100

この記事が気に入ったらサポートをしてみませんか?