きっかけ
Windows10のサポートが切れ、VxKexやVxKex-NEXTが存在する2026年、Windows10もWindows7もインストールできるソフト変わらなくないか?ということで、無理にWindows10や11をインストールするのはやめました。
MacBook Pro Mid 2010 17-inch
→Windows10をEFIモードでインストールするとGPUのドライバが刺さらず、画面の明るさ変更不可、外付けディスプレイへの出力不可
MacBook Air Early 2014 11-inch
→メモリが4GBしかないため軽量な物が良い、SSDが128GBでそのうち3/4をMacOSに使用しているためストレージの食わない物が良い
Windows7とEFI(UEFI)とCSMについて
CSM(Compatibility Support Module)はEFI(UEFI)に後方互換性のためにBIOSの機能を提供するモジュールです。EFIモードでOSが起動してもCSMのモジュールの一部(画面表示用Video BIOS、Option ROMなど)を使用することがあります。Windows7はGPT、EFI(UEFI)に対応していますが、起動時、スリープ復帰時、ブルースクリーン時などのグラフィックドライバが使用できないときにはCSM(Int10)が必要なようです。
しかしながら、MacではEFIモードでの起動時にCSMが有効化されないらしく、Windows7が起動できないようです。そのためMBR(レガシー)モードで起動させる必要があるようです。
実際に試してみると、lodingの画面で止まったり、画面が真っ暗のままだったり、選択画面のままフリーズしたりなどします。
ちなみにSecure Bootの有効化にはCSMの無効化が必要なので、Secure Bootに対応していればCSMは不要なOSであるということです。
レガシーモードでインストールする以外にもVGAshimやUEFIsevenを使ってInt10があるかのようにシミュレーションしたり、Int10を使用しないように設定することでEFIモードでインストールすることも一応可能なようです。
Hybrid MBRについて
EFIモードで起動するGPT形式のが必要なOS(MacOS、OpenCore Legacy Patcher)とレガシーモード(MBR)で起動するWindows7の2つを1つのSSDに入れる必要があります。そのためにGPTのHybrid MBRという物を使用します。
通常のGPT形式ではMBRがあったところに、Protective MBRを置いて、MBR形式で読み取ったときに空のディスクであるように認識させます。しかしながら、Protective MBRではなく、Hybrid MBRではGPT形式で読み取ったときと同じパーティションマップが書き込まれます。そのためGPT形式で読んでもMBR形式で読んでも使用できるようになります。
パーティションマップを2個所で管理するため、パーティションを変更する場合は、両方のパーティションマップを書き換える必要があります。しかしながら、対応しているソフトがgpartくらいしかないため、それ以外で変更するとパーティションが壊れてデータが消えます。
Macでは起動ディスクのスキャンはHybrid MBRの場合はMBRの内容を優先しGPTのパーティションマップは参照しません。そのため、Hybrid MBRにはレガシーモードで起動させたいパーティションだけではなく、EFI(ESP)パーティションのマップも書き込む必要があります。
Hybrid MBRにせずに通常のGPTのままWindows7のインストーラを起動させると、インストール先のディスクの選択画面で「このディスクにWindowsをインストールすることはできません」と言われ、詳細の表示を押すと「このディスクにWindowsをインストールすることはできません。選択されたディスクはGPTのパーティションの形式ではありません。」と意味わからないことを言われます。

BootCampアシスタントが使えない
内蔵のSSDには既にOpenCore Legacy Patcherを使ったMacOS 13 Venturaがインストール済みです。High Sierra以降のBootCampはWindows7のインストールに対応していません。そのため、自力でBootCampアシスタントが行っていることをしなければいけません。
BootCampのドライバをダウンロードする。
Apple「Boot Camp を使って Mac に Windows 7 をインストールする」
からドライバをダウンロードしてください。
Windows7のUSBインストーラの作成
1. RufusでWindows7をパーティション構成をMBRにして作成します。
UpdatePack7R2とかを適用済みの物を使用すると後のアップデートが楽かもしれません。
2. USB3.0への対応パッチを当てます。
Solomonレビュー「Windows 7をUSB3.0のみのパソコンにインストールする方法(追記)」
を参考にしました。
3. ドライバ($WinPEDriver$)をインストーラUSBの直下にコピーする。
インストール先パーティションの準備
1. ディスクユーティリティなどでWindows7をインストールしたいパーティションを作成
2. gpartを使えるようにする。
Homebrewを使うとか、Linuxを起動させるとかでgpartを使えるようします。
3. gpartの起動
sudo gprat /dev/disk0
とかで起動します。Homebrewを使ってインストールしたいSSD上で起動させた場合は/dev/disk0が対象SSDとなると思います。
4. pで現在のパーティションの確認
5. rでRecovery/transformationモードに入ります。
6. hでハイブリッドMBRの作成開始
7. MBRで読み書きしたい対象のパーティションを聞かれるので、pで確認したパーティション番号を打ち込みます。
8. ESPをMBRに追加するか聞かれるのでYを押します。これをしないとOpenCore Legacy PatcherやMacOSが起動しなくなります。
9. MBR Hex Codeを聞かれるのでNTFSを示す07を入力します。
10. ブータブルのフラグ聞かれるのでYにします。
11. 場合によっては他のパーティションを保護領域として追加するか聞かれるので、一応Nにしました。
12. wで書き込みして、qで終了
Windows7のインストール
普通にWindowsをbootcampでインストールするのと同じです。
1. Optionキーを押して出てくるWindowsを選択し、起動する
2. インストール開始のボタンを押した後にドライバのインストールを求められることがありますが、一回バツボタンを押して、再度インストール開始ボタンを押せば進めます。
3. インストールが可能なパーティションが表示されるはずです。
4. インストールが終わったらBootCampのソフトのインストール
5. Windows7のアップデート
Microsoft Learn「[記事] Windows 7 を新規インストールする方法」を参考にしました。
8. VxKexやLegacy Update
Windows7の容量の削減
32GBのパーティションだとWindows7でも流石に厳しそうだったので、各種容量削減策を行いました。
・インデックスの無効化
Cドライブのプロパティを開いて「このドライブ上のファイルに対し、プロパティだけでなくコンテンツにもインデックスを付ける」のチェックを外す
・回復ポイントの作成の無効化
システムのプロパティ→システムの保護→構成→システムの保護を無効にする
・ハイバネーションの機能の無効化
管理者権限のコマンドプロンプトで
powercfg.exe /hibernate off
おわりに
なんとかインストールできてよかったです。かなり時間がかかりました。実は、この方法を使えばWindows7を完全なGPTパーティションで実行できそう(Int10を使うところはブラックアウトしてしまうが...)な感じがするので、試してみたいです。MBRだとOpenCore Legacy Patcherで選択ができないため、いちいちOptionキーを押さないといけず面倒です。
