マザーボード交換の際に、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円で教えてあげる。筆者の解決方法で解決しなかったとしても筆者は責任を取らない。
ここから先は
¥ 100
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?