VMware Fusion 2.0がリリースされたので早速アップデートした。1.1でいろいろダメだった部分(主にインタフェース部分)が改善されている。VMの性能としてはあまり変わらない印象(サスペンド・リジュームが速くなったくらいじゃないか?)だが、きっと誰かが詳細なベンチマーク結果を示してくれているだろう。2.0での本当の意味での重大な改善はマルチディスプレイ対応くらいしかないんじゃないか。
さて、本題。
VMware Fusionでは、ホスト(Mac)側の/Users/XXX/Documentsなどを共有フォルダとしてVMにexportできる。exportした共有フォルダは、ゲストVM(私の場合はWindows XP Professional)側からは\\.host\SharedFolders\DocumentsなどといったUNCで参照できる。さらに2.0からサポートされたミラーフォルダ機能では、exportした共有フォルダを自動的にWindowsのマイドキュメントやデスクトップなどにマッピングしてくれる。2.0で改善されたユニティモードと組み合わせると、あたかもWindowsアプリケーションをMac上でシームレスに利用しているかのような感覚を得られるのが「売り」である。
共有フォルダ・ミラーフォルダの設定は、もちろんGUIから行うことができるのだが、詳細な設定変更をしようとするとvmxファイルを直接編集する必要がある。とても分かりにくい上、VMwareの公式なドキュメントやWeb上のリソースでは今のところほとんど言及されていない。このエントリーでは設定オプションの大まかな意味をidentifyしようと思う。
共有フォルダ全体の一般的な設定
共有機能の有効・無効を制御したりする部分。
- isolation.tools.hgfs.disable
- 共有フォルダ機能のオン・オフを制御する。FALSEに設定するとオン、TRUEに設定するとオフ。
- hgfs.mapRootShare
- 共有フォルダのルート、つまりUNCで表すと\\.host\SharedFolders、をネットワークドライブ(Z:)としてマウントするか否かを制御する。TRUEにするとネットワークドライブが作られる。ドライブレターを変更できるかどうかは今のところ不明。
- hgfs.linkRootShare
- 共有フォルダのルート(\\.host\SharedFolders)へのショートカットをデスクトップに作るか否かを制御する。TRUEにすると「VMware共有フォルダ」という名前のショートカットが作られる。ショートカット名を変更できるかどうかは今のところ不明。
設定例は以下のとおり。
isolation.tools.hgfs.disable = "FALSE" hgfs.mapRootShare = "TRUE" hgfs.linkRootShare = "TRUE"
各共有フォルダの詳細な設定
各共有フォルダのホスト側のパスや、共有フォルダの共有名などの詳細を設定している部分。共有フォルダの数だけ同じような設定を行う。
- sharedFolder.maxNum
- 共有フォルダの最大数を指定する。例えば最大数として"2"を指定すると、VMwareは後続のsharedFolder0, sharedFolder1の設定を読み込んで共有フォルダを作成する。
- sharedFolderN.present
- 共有フォルダが存在するか否かを指定する。FALSEにすると共有フォルダが利用できなくなる。
- sharedFolderN.enabled
- 共有フォルダが使用可能か否かを指定する。FALSEにすると共有フォルダが利用できなくなる。
- sharedFolderN.readAccess
- 共有フォルダの読み込みアクセスの可否を指定する。
- sharedFolderN.writeAccess
- 共有フォルダの書き込みアクセスの可否を指定する。
- sharedFolderN.hostPath
- 共有フォルダのホスト側のパスを指定する。例: /Users/XXXX/Desktop。
- sharedFolderN.guestName
- 共有フォルダの共有名を指定する。例えば、"Development"を指定すると、この共有フォルダは、「\\.host\SharedFolders\Development」というUNCでアクセスできるようになる。
- sharedFolderN.expiration
- 共有フォルダの接続がexpireするまでの期間(?)を指定する。"never"(expireしない)以外の値を設定できるかどうかは不明。
- sharedFolderN.shareTags
- 共有フォルダをミラーフォルダとしてマッピングするためのヒント情報を指定する。"auto,desktop"(デスクトップ)、"auto,documents"(マイドキュメント)、"auto,music"(マイミュージック)、"auto,pictures"(マイピクチャ)という値が採れることが分かっている。これ以外の値を設定できるかどうかは不明。
設定例は以下のとおり。
sharedFolder.maxNum = "4" sharedFolder0.present = "TRUE" sharedFolder0.enabled = "TRUE" sharedFolder0.readAccess = "TRUE" sharedFolder0.writeAccess = "TRUE" sharedFolder0.hostPath = "/Users/XXXX/Desktop" sharedFolder0.guestName = "この デスクトップ" sharedFolder0.expiration = "never" sharedFolder0.shareTags = "auto,desktop" sharedFolder1.present = "TRUE" sharedFolder1.enabled = "TRUE" sharedFolder1.readAccess = "TRUE" sharedFolder1.writeAccess = "TRUE" sharedFolder1.hostPath = "/Users/XXXX/Documents" sharedFolder1.guestName = "この ドキュメント" sharedFolder1.expiration = "never" sharedFolder1.shareTags = "auto,documents" sharedFolder2.present = "TRUE" sharedFolder2.enabled = "TRUE" sharedFolder2.readAccess = "TRUE" sharedFolder2.writeAccess = "TRUE" sharedFolder2.hostPath = "/Users/XXXX/Music" sharedFolder2.guestName = "この 音楽" sharedFolder2.expiration = "never" sharedFolder2.shareTags = "auto,music" sharedFolder3.present = "TRUE" sharedFolder3.enabled = "TRUE" sharedFolder3.readAccess = "TRUE" sharedFolder3.writeAccess = "TRUE" sharedFolder3.hostPath = "/Users/XXXX/Pictures" sharedFolder3.guestName = "この 画像" sharedFolder3.expiration = "never" sharedFolder3.shareTags = "auto,pictures"
ミラーフォルダの設定
マイドキュメントやデスクトップなどにマッピングする共有フォルダを指定する。
- hgfs.redirectShellFolder.maxNum
- ミラーフォルダの最大数を指定する。例えば最大数として"2"を指定すると、VMware Fusionは後続のhgfs.redirectShellFolder0, hgfs.redirectShellFolder1の設定を読み込んでミラーフォルダを作成する。この値はsharedFolder.maxNumと同じか小さい値になるはずである。
- hgfs.redirectShellFolderN.name
- 指定された名前のミラーフォルダの設定を行う。例えば"desktop"を指定すると、sharedFolderN.shareTagsに"desktop"が含まれている共有フォルダをデスクトップにミラーリングする。上の設定例ではsharedFolder0が"desktop"に対応しているので、「\\.host\SharedFolders\この デスクトップ」をデスクトップにミラーリングする。"desktop", "documents", "music", "pictures"以外の値が採れるかどうかについては今のところ不明。
- hgfs.redirectShellFolderN.enabled
- ミラーリングの可否を指定する。
設定例は以下のとおり。
hgfs.redirectShellFolder.maxNum = "4" hgfs.redirectShellFolder0.name = "desktop" hgfs.redirectShellFolder0.enabled = "TRUE" hgfs.redirectShellFolder1.name = "documents" hgfs.redirectShellFolder1.enabled = "TRUE" hgfs.redirectShellFolder2.name = "music" hgfs.redirectShellFolder2.enabled = "TRUE" hgfs.redirectShellFolder3.name = "pictures" hgfs.redirectShellFolder3.enabled = "TRUE"

