OS Xのメジャーバージョンへのアップデートは、地雷原を歩くようなものかもしれません。もっとも、地雷は比較的少ないとはいえ。ほとんどの場合、問題はないでしょう。しかし、いつ災難に見舞われるかは分かりません。
私の場合、2012年モデルのMacBook ProでOS X Yosemiteへのアップグレードは、まるで絹のようにスムーズに進みました。ベータ版で何ヶ月も快適に使っていました。2009年モデルのMac Proへのアップグレードは、Yosemiteの正式版が出るまで待ちました。同じようにスムーズに進むだろうと期待していたのですが、残念ながら落とし穴に落ちてしまいました。
インストール自体は成功しました。しかし、Macを使おうとした途端、事態は一変しました。最も深刻な症状は、ほぼすべての動作がカタツムリのように遅くなったことです。Safari、Tweetbot、Outlook、そしてFinderなど、いくつかのアプリが頻繁に完全に反応しなくなりました。最低限の反応を保つためだけに、これらのアプリを何度も強制終了する必要がありました。
Yosemite をインストールした直後に Safari が完全にクラッシュしました。
その他の症状としては、OS Xのスクリーンキャプチャが使えない、カスタムデスクトップ画像やスクリーンセーバーが再起動後に保存されない、音声が全く聞こえなくなる、といったものがありました。これらの症状を解決するためにシステム環境設定を開いてみると、すぐにビーチボールが無限に回転する状態になってしまいました。サウンド設定アイコンをクリックすると、アプリがすぐにクラッシュしました。
一体何が起こっているのだろう?こんなにも奇妙な、いくつもの深刻な症状を引き起こしている原因は何なのだろうか?OS Xソフトウェア自体に問題があるのだろうか?それとも、既存のサードパーティ製ソフトウェアとの競合が原因なのだろうか?全く見当もつかなかった。それでも、どうしても突き止めようと決意した。
ネタバレ:答えを急いで知りたい方のために、さっそく本題に入ります。すべての症状の原因は、InstantOn.driverという、1つの目立たないファイル(厳密に言えば、複数のファイルを含むプラグインフォルダ)でした。このファイルはVolume/Library/Audio/Plug-Ins/HALにあり、Rogue AmoebaのAudio Hijack Proの一部としてオプションでインストールされます。
InstantOn.driver は /Library/Audio/Plug-Ins/HAL にあります。
実は、Rogue Amoebaは以前からこの非互換性を認識していました。Yosemiteの開発者版がリリースされた直後、Instant Onドライバの使用に関する警告を掲載していました。そして夏には、Audio Hijack Pro(およびAirfoil)のアップデートをリリースし、Instant Onの新しい互換性バージョンを同梱しました。
アップデートの存在を知らなかったため、インストールしていませんでした。2013年版を使っていたのです(Mac Proにしかアプリをインストールしていなかったため、MacBookでは同じ問題は発生しませんでした)。気づかなかったのは、Audio Hijackをほとんど使っていなかったことが主な理由です。最後にアプリを起動したのは2014年の第1四半期頃だったので、アプリ内通知は一度も受け取りませんでした。残念ながら、Instant Onプラグインは親プログラムを開かなくてもアクティブなままで、潜在的なトラブルの原因となっています。
これらすべてをご存知なら、解決策は簡単です。古いInstant Onドライバを削除し、新しいドライバをインストールするだけです。Rogue Amoebaのウェブサイトを確認することを知っていれば、この解決策にたどり着けたはずです。しかし、どうやって確認すればいいのか分からなかったのです。症状を説明してGoogle検索を何度か試してみましたが、Instant Onに関する情報は検索結果に一切表示されませんでした。
そこで、私は昔ながらの探偵術を使って犯人を追跡せざるを得ませんでした。同じ手法は様々な類似の問題を解決する際に有効ですので、私が行った方法を知っておくと役立つかもしれません。
- Mac App StoreからYosemiteの最新バージョンをダウンロードし、アップデートを再インストールしました。もし症状の原因がインストール不良だったなら、これでMacは治っていたかもしれません。しかし、残念ながら治りませんでした。
- セーフブートで再起動しました。これにより、ログイン項目と一部のシステムソフトウェアが無効になります。症状が消えれば、無効にした項目のいずれかが原因だったと考えられます。しかし、症状は消えませんでした。
- テストユーザーアカウントにログインしました。これにより、問題が私の個人用~/Libraryフォルダ内の特定のソフトウェアとの互換性に起因しているかどうかが判明しました。しかし、症状は改善しませんでした。
- 絶望的な状況に陥り、予備のハードドライブにYosemiteのクリーンバージョンをインストールし、そこから起動してみました。これで、デフォルトドライブにある、新しいソフトウェアに含まれていない何かが原因かどうかを確認できました。もしこれが失敗すれば、もう通常の対処法はありません。ハードウェア関連の問題があることが示唆されるからです。
幸いなことに、失敗には至りませんでした。クリーンインストールから起動すると症状は消えました。これは、/System/Library または(より可能性が高いのは)デフォルトの起動ドライブの /Library フォルダにあるサードパーティ製ソフトウェアが問題の原因であることを示唆しています。
しかし、これらのフォルダにある何十万ものファイルのうち、どれが大混乱を引き起こしているのかをどうやって突き止めればいいのでしょうか?答えを見つけるために、私は面倒な試行錯誤を繰り返しました。すべてのバックアップを取った後、メインの/Libraryフォルダから6つほどのサブフォルダを削除して再起動しました。フォルダを削除しても効果がない場合は、さらに6つのフォルダグループを削除して再起動しました。症状が消えるまでこれを繰り返しました。こうして、原因は6つのフォルダグループに絞り込むことができました。
疑わしい6つのフォルダのうち3つを元に戻し、再起動してみました。すると、なんと!症状が再発しました。必要に応じてファイルを削除したり戻したりを繰り返し、InstantOn.driverが原因だと判断するまで続けました。
この話の教訓は?実は2つあります。まず、どんなに状況が悪く見えても、絶望してはいけないということです。Macのトラブルには、単純で簡単に解決できる原因があるかもしれません。次に、たった一つのアイテム、たとえ一見無害に見えるものであっても、それが大きな問題を引き起こす力を決して侮ってはいけません。信じてください。私自身、実際に経験しています。
ヨセミテの音響紛争がまた発生…
OS X Yosemiteでサウンド関連の競合が発生するソフトウェアはInstant Onだけではないことが判明しました。AmbrosiaのSnapz Pro Xは、/System/Library/ExtensionsにAudio Support kextファイルをインストールします。このファイルの現在のバージョンはYosemiteでは動作しません。これは、Snapz ProとYosemiteの間に存在する複数の非互換性のうちの1つであるようです。Ambrosiaは、「近い将来にアップデートを予定していますが、リリース時期については現時点ではお伝えできません」と述べています。