古いPCで使っていたシステムSSDを、UEFI起動の別のPCに載せ替えたら起動しない——。その原因はパーティション方式(MBR/GPT)の違いです。この記事では、Windows標準ツール mbr2gpt を使い、データ・Windows・アプリを保持したまま MBR を GPT に変換し、レガシーBIOSからUEFI起動へ移行する手順を、実際にハマった「Cannot find OS partition(s)」の解決法まで含めて解説します。
なぜそのままでは起動しないのか
レガシー(BIOS)時代にセットアップされた Windows は MBR 形式のディスクに、BIOS用のブートローダーで入っています。一方、最近の UEFI 機は GPT 形式のディスクと、EFIシステムパーティション上の UEFI ブートローダーで起動します。方式が違うため、MBR のディスクを UEFI モードのPCに挿しても起動しません。
| レガシー(BIOS) | UEFI | |
|---|---|---|
| パーティション方式 | MBR | GPT |
| ブートローダー | bootmgr(BIOS) | bootmgfw.efi(EFIシステムパーティション) |
この変換をデータを残したままやってくれるのが mbr2gpt です。サードパーティ製ツールでもGPT化はできますが、EFIシステムパーティションの作成とUEFIブートファイルの設置まで自動で行うのが mbr2gpt の強みで、後からのブート修復が不要になります。
準備するもの
- 変換したい MBRのシステムディスク(本体から外したSSD単体を想定)
- USB↔SATA/M.2 変換アダプタ(ディスクを外付け接続するため)
- 作業用の Windows PC 1台
- Windows 10/11 インストールUSB(メディア作成ツールで作成。この中のWinPEを使う)
STEP 1|ディスクがMBRか確認する
ディスクをUSB変換アダプタで作業PCにつなぎ、「ディスクの管理」(diskmgmt.msc)を開きます。対象ディスク左端のラベル部分を右クリック →「プロパティ」→「ボリューム」タブ →「パーティションのスタイル」を確認。マスター ブート レコード (MBR) なら変換対象です(GPTなら変換不要)。

STEP 2|mbr2gptが通る構成に整える
mbr2gpt には制約があります。
- パーティションは最大3つまで(変換時にEFIシステムパーティションを追加するため)
- 論理ドライブ(拡張パーティション)は非対応
「システムで予約 / OS / 回復」の3つ程度なら問題ありませんが、パーティションが4つ以上ある、または「論理ドライブ」が含まれる場合は弾かれます。不要なもの(特に空の論理ドライブ)があれば、「ディスクの管理」でボリュームの削除 → 拡張パーティションの削除を行い、「未割り当て」にして、3パーティション・論理ドライブなしの状態へ整えます。

STEP 3|WinPE上でmbr2gptを実行する
なぜWinPEが必要か
稼働中のWindowsから外付けディスクに対して mbr2gpt /allowFullOS を実行しても、こうなります。
mbr2gpt は「現在の起動情報(BCD)」を手がかりにOSパーティションを探します。ところが外付けした別のWindowsは、いま動いているOSのBCDには載っていません。そのためフルOS上では、外付けした他ディスクのWindowsを認識できず失敗します。
そこで、WindowsインストールUSBに含まれるWinPE(回復環境)上で実行します。USBから起動し、最初の言語選択画面で Shift + F10 を押すとコマンドプロンプトが開きます。
ディスク番号を確認する
WinPEではドライブ文字が普段と変わります。まず対象ディスクの番号を厳密に特定します。
list disk で対象ディスクの番号を確認します(GPT列に * が無い=MBR=変換対象)。list vol で「OS本体のNTFSボリューム」がどのドライブ文字・どのディスクかも控えておきます。ここでは例として OS本体が F:、システムで予約が E:、対象がディスク2 として進めます。

「Cannot find OS partition(s)」がWinPEでも出たら → BCDを作り直す
ディスク単体で持ち出した場合、システムパーティション上のBCDがOSの場所を正しく指しておらず、WinPEでも同じエラーが出ることがあります。その場合は bcdboot でBCDを作り直します。
F:\windows… OS本体の場所/s E:… ブート情報を書き込むシステムパーティション(システムで予約)/f BIOS… 現状はまだMBRなのでBIOS用として作成
/f を \F(¥キー=バックスラッシュ)で打ちがち。フラグは /s と同じスラッシュ「/」です。間違えると認識されずヘルプが出るだけです。検証 → 変換を実行
BCDを立て直したら、改めて検証し、変換します。
mbr2gpt がOS領域の縮小・EFIシステムパーティションの作成・UEFIブートファイルの設置・GPTへの変換・回復環境の修復まで一気に処理します。これでディスクはUEFI起動専用のGPTディスクになりました。
STEP 4|ファームウェアをUEFIに切り替えて起動
- 作業PCをシャットダウンし、ディスクを取り外して目的のPCに装着する
- PC起動直後にセットアップ画面(BIOS)へ入る(多くは F2 / Del)
- 設定を変更:起動モード=UEFI / CSM=無効 / Secure Boot=一旦オフ(起動確認後に有効化してOK)
- 起動デバイスに現れる Windows Boot Manager を最優先に
- 保存して再起動 → 元のWindowsがそのままUEFIで起動

起動後にやること
- ライセンス認証:設定 →「更新とセキュリティ」→「ライセンス認証」を確認。メーカー製PCはファームウェアにOEMキーが埋め込まれていることが多く、その本体で起動すると自動認証されるケースがあります。
- ドライバ:世代の違う機種へ載せ替えた場合、デバイスマネージャーで「!」の付いたデバイスがないか確認し、Windows Updateやメーカー公式ドライバで対応します。

まとめ|詰まりどころチェックリスト
- ☑ ディスクが MBR か確認(GPTなら変換不要)
- ☑ mbr2gpt の条件へ:パーティション3つ以下・論理ドライブなしに整える
- ☑ フルOSでは外付けディスクを変換できない → WinPE(インストールUSB+Shift+F10)で実行
- ☑ list disk で対象ディスク番号を厳密に確認(他ディスクを絶対に触らない)
- ☑ 「Cannot find OS partition(s)」→ bcdboot でBCDを再構築
- ☑ /f のスラッシュを ¥(バックスラッシュ)で打たない
- ☑ 変換成功後、BIOSを UEFI / CSM無効 / Secure Boot へ切り替える
- ☑ 起動後にライセンス認証とドライバを確認
ポイントは 「WinPEで実行」+「事前にbcdbootでBCDを立て直す」 の2点。ここさえ押さえれば、データを一切消さずにレガシーBIOSからUEFIへ移行できます。
※ 本手順は自己責任で。作業前のバックアップ、そしてディスク番号・ドライブ文字の確認だけは、どれだけ慎重にしても足りません。