Boot Campインストールエラーのまとめ

Boot Campをアップデートしようとしたらアップデートできねぇ、ってなってた件の詳しいまとめ。

症状

Windows上にインストールされている「Boot Camp サービス」について、以下の操作がエラーによって実行できない。

  • アップデート
  • メジャーバージョンアップ
  • アンインストール
  • 修復
  • 更新のアンインストール

エラー画面はキャプチャし忘れたので文言ははっきりしないが、アンインストール操作では致命的なエラーとかそんな感じで、それ以外ではエラーのためなんちゃら、あとでやり直せ、みたいな感じ。ログを取るとエラーコード1603。

試行錯誤

※この節にあるのは失敗した内容なので、手っ取り早く解決したい人は次の次の節へ。
失敗した操作は以下の通り。いずれの場合も症状にはまったく変化なし(もしくは、新規インストールでも同じエラー)。

  • 動作中のBoot Camp関連サービスおよびプロセスを手動停止してから操作する
  • Boot Camp サービス以外のパッケージ(Windows ドライバ パッケージ)をすべて削除してから操作する
  • Boot Camp サービスをMsizapしてから操作する

解決への流れ

エラーログをよーく読み直すと、一番最初にエラーが出現している箇所の直前が

操作 23:42:24: GetIntelGRXID。
操作開始 23:42:24: GetIntelGRXID。
MSI (c) (F8:B0) [23:42:24:635]: Creating MSIHANDLE (3) of type 790542 for thread 688
MSI (c) (F8:7C) [23:42:24:635]: Invoking remote custom action. DLL: C:\Users\UserName\AppData\Local\Temp\MSI252.tmp, Entrypoint: enumVidDeviceIds
MSI (c) (F8!88) [23:42:24:635]: Creating MSIHANDLE (4) of type 790531 for thread 5768
Enumerating Video hardware IDs
MSI (c) (F8!88) [23:42:24:635]: Closing MSIHANDLE (4) of type 790531 for thread 5768
CustomAction GetIntelGRXID returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (c) (F8:7C) [23:42:24:635]: Closing MSIHANDLE (3) of type 790542 for thread 688
操作終了 23:42:24: GetIntelGRXID。 戻り値 3。
MSI (c) (F8:B0) [23:42:24:650]: Doing action: SetupCompleteError
操作 23:42:24: SetupCompleteError。

となっていたので、GetIntelGRXIDの実行時に何らかの問題が起きているらしいと判断。エラーコード1603はともかく戻り値3の意味がわかればもしかしたら、ということでGetIntelGRXIDでGoogle検索すると*1、なんと運良くBoot Camp 2.1のアップデー… - Apple コミュニティにたどり着いてしまった。
要するにインストーラ冒頭の既存アプリケーション走査などの環境チェックで実行されるIntelグラフィックスの検出時に、意図しないデバイスを検出するのが原因らしい。ここではUltraVNCが言及されているが、僕の環境では、Windows Live Meshのリモート接続機能を有効にしている。これを有効にしたときに仮想ディスプレイをインストールされた記憶があるぞ!*2

解決

ということで、一旦Live Meshを削除し、デバイスマネージャで仮想ディスプレイを削除、同時にドライバも削除するように指定してすっきり取り除いてからBoot Campインストーラを実行したら問題なくできましたよ、っと。

*1:もちろんこんなものインストーラパッケージを作った人間が勝手につけた名前に決まっているのであまり期待していなかったのだが。

*2:仮想デバイスとかって汎用的なチップをエミュレーションすることが多いので、たまたまそれがIntelのチップをモデルにしてるんだろうなぁ…。