Introduction
古いシステムで VHD ブートさせたシステム (MBR の限界まで物理 OS が存在した) を移行することになったこれが本当に難儀した。
試したのは
- MBR2GPT.exe
- パーティションの数が合わないと言われ変換に失敗する
- パーティションを自分で作ってみてもダメ
- パーティションの数が合わないと言われ変換に失敗する
- bcdedit で起動時に detect HAL を無効にする
- 意味なし
- Acronis Disk Director 12
- MBR から GPT への変換ができない
- OS に接続した VHD ディスクが使用中と言われ、変換中に失敗する
- 昔から重宝していたが、まさかの失敗でショックだった
- MBR から GPT への変換ができない
最終的に AOMEI Partition Assistant Pro Edition で変換ができた。
安くない買い物だったがよかった。
How to resolve?
最初は MBR の再構築など、VHD を修正する方向で考えていたが悉く失敗。
- MBR から GPT への変換し、diskpart でブート領域を作成
- VHD ブートで OS を認識しない
- いっそ先頭のブート領域を削除してみる
- 当然ダメ
諦めかけていた時にふと
「既に動いている VHD のシステム領域を、移行させたい VHD のシステム領域で上書きしたらいけんじゃね?」
と閃き、試してみたら成功した。
つまり、
- 移行元の VHD を MBR から GPT に変換 (以下ソース VHD)
- GPT 上で VHD ブートに成功している VHD ファイルをコピー (以下ターゲット VHD)
- ターゲット VHDのシステム領域を消去 (ブート領域は残す)
- 未割り当て領域ができる
- ソース VHD のシステム領域をターゲット VHD の未割り当て領域にクローン
- 必要に応じて VHD のリサイズを実施
- bcdedit でソース VHD を VHD ブートできるよう設定
- HAL は有効にする
以上!