はじめに
以前に
BootCampアシスタント無しでMacにWindows7をインストールする
という記事を投稿しました。しかしながらこの記事ではEFIモードでのイントールを諦めてハイブリッドMBRでのインストールを行いました。
その後、ディスクの容量が足りなくなってしまったので、MacOSのパーティションを縮小してWindowsのパーティションを拡張しようとしました。しかしながら、Windowsブートローダが起動しなくなってしまい、Windowsを起動させようとすると黒い画面にカーソルが点滅するだけになってしまいました。いろいろ試しても治らなかったので、思い切ってUEFIでの起動に切り替えることにしました。
Windows7とUEFIの関係
ここらへんは以前の記事
BootCampアシスタント無しでMacにWindows7をインストールする
を読んで下さい。
UefiSeven
SCMなしでWindows7を起動させることができるようにするEFIソフトウェアです。CSMの役割を果たします。
制約事項としては、CSMのInt10を使用し表示が行われていたWindowsの起動画面が表示されなくなります。
EFIとGPUの関係
MacBook Proの15インチ以上のモデルでは複数のGPU(CPU内蔵のiGPUとdGPU)が搭載されています。MacOSでは切り替えができますが、UEFIモードのWindowsでは微妙な感じです。モデルによる(特にEFI2.0以前のもの)と思いますが、手持ちのMacBook Pr 17-inch Mid 2010ではUEFIモードで起動したWindowsはバージョンによらず正常にGPU(iGPUもdGPU)も使用できませんでした。OpenCore legacy PatcherのWindows GMUXオプションをいじっても変化はありませんでした。MBRモードではdGPUのみが有効化され、問題なくドライバが刺さるので使用できました。
手順
すでにレガシーブート(MBR)でWindows7をインストール済みなので、それをUEFIブート(GPT)に変換する流れです。UefiSevenを使えば、インストールメディアの起動時点からGPTのみでインストールするのが可能なようです。
0. UefiSevenのダウンロードと解凍とUSBメモリへのコピー
1. MacOS上のgdiskを使用してハイブリッドMBRを解除する
sudo gdisk /dev/disk0
xでExpertモードに入り、nで新しいProtective MBRを書き込む設定をし、wで書き込みます。
2.Windowsインストールメディアから起動させ、コマンドプロンプトを起動させる
Windows7のものでなくてもいいです。自分はWindows10のインストールメディアを使用しました。
3. DiskpartでEFIパーティションにドライブレターを割り当て
diskpartでdiskpartを起動
list diskでディスクの一覧表示
select disk 0でディスク一覧からWindows7がインストールされているディスクを調べる
list partitionでパーティションの一覧を表示
select partition 0でEFIパーティションを選択
assign letter SでSというドライブレターを割り当て
exitでdiskpartを抜ける
4. ブートローダのインストール
現時点ではEFIパーティションにWindowsブートマネージャがインストールされていないのでインストールします。
BCDboot x:\windows /s s: /f UEFI
bootrec /rebuildbcd ←もしかしたらWindows7のインストーラでないとWIndows7のエントリが現れないかも、bootrec /scanosを事前にしたほうが良い?
でブートローダのインストールとエントリの追加を行います。
5.UefiSevenのインストール
UefiSeven(bootx64.efi)をRelaceの指示どおりに配置します。
notepadの開くを使って擬似的なファイルエクスプローラーを使うと簡単に置き換えられます。
6. 再起動
Optionキー押しながら起動でWindowsを選択できるようになっているはずです。
画面解像度が対応していないと警告文が出ますがEnterを押してしばらく経つとログイン画面が現れます。

おわりに
無事に起動するようになったので良かったです。UEFI起動なのでOpenCoreで選択して起動できるようになったので便利です。