VMware Fusion が vmmon モジュールのバージョン不一致で起動できない時の対処方法
最近めっきり使わなくなった VMware Fusion ですがいつのまにか version 6 が出てました。OS X Mavericks 対応、Windows 8.1 対応、Retina 対応、CPU コア数・メモリ空間・HDD 領域の強化が図られています。Retina 対応が特に見逃せないアップグレード内容なので、夜な夜な購入してアップグレードしてみました。
期待に胸膨らませて VM を起動しようとしたら下記のようなエラーが表示されて全ての VM が起動できなくなりました。大変有難うございます。
279.0 を予期しましたが、271.0を取得しました。vmmon カーネルモジュールのバージョンが違います。VMware Fusion を再インストールしてみてください。
「再インストールしてみてください」と表示されているので、何度もマシンを再起動してみたり、再インストールしてみたりと試みるも、全く解消せずエラーで起動できません。このようなエラーが出た時の対処方法がわかりましたのでまとめておきます。
今回の問題を解決するに知っておくべき概念があります。vmmon はカーネル機能拡張を利用したモジュールです。OSX には "kernel extension" ("kext") というカーネル機能拡張があります。kext はいわゆるローダブル・カーネル・モジュールです。WikiPedia から引用しますと下記のとおりです。
vmmon モジュールのバージョン不一致で起動できない時の対処方法
今回のようなモジュールのバージョン不一致が表示されてしまう場合には、ターミナルから下記の手順でモジュールを入れ替えてやる必要があります。
- VMware Fusion を完全に終了
- load されているモジュールを unload
- 古いモジュールを削除
- 新しいモジュールを手動でインストール(コピー)
- 新しいモジュールを load
この手順をコマンドにすると下記のとおりです。まずは VMware Fusion を完全に終了してから、ターミナルを開いて実行します。
sudo kextunload /System/Library/Extensions/vmmon.kext sudo rm -rf /System/Library/Extensions/vmmon.kext sudo cp -pR /Applications/VMware\ Fusion.app/Contents/Library/kexts/vmmon.kext /System/Library/Extensions/ sudo kextutil /System/Library/Extensions/vmmon.kext
先にモジュールを unload しておかないと次のようなエラーが出て新しいモジュールに置き換えができません。
Cache file /System/Library/Caches/com.apple.kext.caches/Directories/System/Library/Extensions/KextIdentifiers.plist.gz is out of date; not using. Can't load vmmon.kext - a different version is already loaded.
無事に置き換えができたかを確認します。sudo kextstat | grep vmx とコマンドを入力します。
置き換える前の vmx はバージョンが 0104.03.86 です。
sudo kextstat | grep vmx 171 0 0xffffff7f8271f000 0xd000 0xd000 com.vmware.kext.vmx86 (0104.03.86) <7 5 4 3 1>
モジュールの入れ替えが正常に行われていれば、下記のようにバージョンが 0139.86.58 になっているはずです。
sudo kextstat | grep vmx 175 0 0xffffff7f8278a000 0xe000 0xe000 com.vmware.kext.vmx86 (0139.86.58) <7 5 4 3 1>
以上の作業で VMware Fusion5 から VMware Fusion6 へのアップグレードで発生する不具合(起動できない問題)は解消されます。もちろん VMware Fusion を初めて使う方は当該エラーは発生しませんが、日本語で全然情報がないのでまとめておきました。参考にした英語の解説ページはこちら。
Version mismatch with vmmon module: expecting 2... | VMware Communities
ちなみに VMware Fusion6 は起動できるようになりましたが、いろいろ問題出まくってます。確認してる不具合は下記の通り。
- 従来は NAT でネットワーク接続できていたのに、ブリッジ接続じゃないと外に抜けられなくなった
- フルスクリーンモードにすると起動するたびに最大解像度で起動する
- Windows8を起動すると起動画面だけが256色になってしまう
そして期待していた Retina 対応は、HiDPI 対応を意味するのではなく、ドット・バイ・ドットで起動するっていう対応でした。残念無念。文字が米粒過ぎて読めません。
従いまして、Windows側でディスプレイ設定を150%とかにしてやると良い感じの大きさになるのですが、アプリケーションによってはデザインが崩れてしまうので、ようは残念でしたってわけです。
コメントやシェアをお願いします!