はじめに
前回、MacBookにてWindows7をUefiSevenを使用して起動するようにしましたが、起動時にEneterキーを押さないと行けないうえに、わざわざUefiSevenというCSMエミュレータ的なのを使用したのでなんか微妙です。Windows側でCSMを使用しないように設定すればもっとスマートにできそうです。
BootCampでUEFIモードでWindows7をインストールする方法まとめ
今から新規インストールするなら以下の2択だと思います。どちらの方法でも起動時のロゴ「Windowsを起動しています」の画面は表示されず、いきなりログイン画面となります。
・レガシーモードでインストーラを起動・インストール→本記事
一回ハイブリッドMBRを作成する必要があります。そのためMacOSかLinuxなどのgdiskを起動できるOSが必要です。HighSierra未満のMacOSであればBootCampアシスタントを使うこともできます。UefiSevenを使わないのでインストーラに手を加える必要がありません。しかし、Windows8以降のインストーラを追加で用意する必要があります。
・UefiSevenを使ってUEFIモードでインストーラを起動・インストール→UefiSevenで起動
ハイブリッドMBRを導入する必要がないのでgdiskのためにMacOSやLinuxなどを用意する必要がありません。しかし、起動時に毎回、画面解像度が合わない胸の警告文が表示され、Enterを押す必要があります。UefiSevenで起動後にUefiをアンイストールし、本記事の導入を行うこともできます。
Windows7とUEFIの関係
ここらへんは以前の記事
BootCampアシスタント無しでMacにWindows7をインストールする
を読んで下さい。
UefiSevenを使わずにCSMなしのUEFIでWindows7を起動させる方法
Windows7のインストール自体はすでに済ませてある状態から開始とします。
を主な作業としてはWindows7のCSMのInt10使用を無効にし、ブートローダをCSMなしに対応しているWindows8以降のものに置き換える感じです。
レガシーブートで起動している状態でも、UefiSevenを使用して起動している状態のいずれでも同じ作業で起動できるようになるはずです。
EfiGuar「dSecure boot on Windows 7」に従いました。
1. Int10のドライバを削除する
Windows7上で
C:\Windows\system32\drivers\vgapnp.sys
と
C:\Windows\system32\drivers\vga.sys
を.bak.sysという拡張子に変更します。これらはInt10を使用した画面表示のドライバです。
権限が無いみたいなエラーが出ると思うので、プロパティのセキュリティのタブの詳細設定からオーナを変更して権限を付与してあげる必要があります。
2. ドライバのサービスを無効にする先程削除したドライバを使用するサービスを無効化します。管理者権限のあるコマンドプロンプト上でreg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\VgaSave" /f /t REG_DWORD /v "Start" /d 4reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\Vga" /f /t REG_DWORD /v "Start" /d 4
を実行してレジストリを書き換えて無効化します。
3.Windows8以降のインストールメディアから起動させ、コマンドプロンプトを起動させる
自分は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. ブートローダのインストールBCDboot x:\windows /s s: /f UEFIbootrec /scanosbootrec /rebuildbcd
もしかしたらWindows7のインストーラでないとWindows7のエントリが現れないかもしれません。Windows7のエントリが現れなかった場合は、bootrecの2つのコマンドをWindows7の回復環境のコマンドプロンプトで試してみてください。
5. CSMを使用しないための設定を追加bcdedit.exe /set {default} novesa onbcdedit.exe /set {default} quietboot onbcdedit.exe /set {default} bootstatuspolicy IgnoreAllFailuresbcdedit.exe /set {default} bootlog yes
でブートオプションを設定します。
6. 再起動と動作確認
起動せせるとしばらく黒い画面となったあとにWndows7のログイン画面が現れるはずです。
おわりに
これでMacBook Air 11-inch Early 2014の起動時にOpenCoreでWindowsか、MacOSかを選択でき、なおかつ警告文と追加のツール無しでの起動ができるようになりました。
MacBook Pro 17-inch mid 2010はGPU周りの関係でUEFIモードでのWindows7の起動は諦めました。