2013/09/26

VMware Tools の細かいこと3つ

どうもこのページを見に来るのに VMware Tools と検索してる方が多いようなので、VMware Tools に関するどうでもいいこと3つばっかりを記載してみる。

● 「完了」インストール?

Windowsで VMware Tools をインストールするとき、「完了」というセットアップ種類を見かける。(図参照)


この「完了」とは何か引っかかるが、英語にすると分かる。そう、Complete の訳が「完了」になってしまっているのだ。
これは「完全」の方が正しいと思うのだが、何故か直らない訳の一つである。

● OSP とは?

ゲストOSの互換性リストなどを追いかけていると、時に VMware Tools について「OSP」という表現がなされることがある。

OSPは「OS Specific Package」の略で、VMware Tools が OS標準のパッケージシステムでインストールされることを指す。とくに Linux の場合、標準の VMware Tools だと tar.gz を展開、vmware-tools-distrib/ 以下の vmware-install.pl を実行するのだが、これだとOSのパッケージシステムの外でインストールされてしまう。パッケージシステムを利用することでその管理下にいれ、インストールやアップグレードをよりやりやすくしようというのが、OSPだ。

OSPについての詳細はマニュアル(osp-esxi-51-install-guide.pdf)があるので参照して欲しい。かいつまむと http://packages.vmware.com というサイトがあるのでそこをパッケージ配布サイトに登録、yum なり apt なりでいんすとーるをするというものだ 。

● VMware Tools をネットから取得する

先のOSPのインストール元の http://pacakges/vmware.com/tools には実は Windows 版を含む VMware Tools が用意されている。これは以前にも記載したとおりだ。

特定のバージョンの VMware Tools が必要な場合、ここから取得するという手もある。

2013/09/14

通常版 Fusion 6 と Fusion Professional 6 の違いをみる

VMware Fusion 6 の通常版と Fusion Professional 6 の違いは VMware 社のページに記載されているが、これだけだと分かりにくいこともあるだろうから、評価ライセンスを使って2つの主だった違いを確認してみた


● ネットワーク エディタ

Professional には、通常版の環境設定では存在しない「ネットワーク」の項目が存在する。これがネットワークエディタと呼ばれる部分だ。

通常版 Fusion 6 の設定パネル
Fusion Professioanl 6 の設定パネル
ネットワークエディタを選択するとネットワークの接続先に選択可能な一覧が表示される。この一番下「カスタム」のところにネットワークの追加が可能になっている。

ネットワークの設定(ネットワークエディタ) 
VMware Workstation のネットワークエディタと同じく、NATをかけて外部ネットワークへの接続を行うか、ネットワーク内で DHCPによるIPアドレスの配布を行うかが、配布するIPアドレスのレンジが指定可能となっている。


● 暗号化

通常版も Professional も仮想マシンの暗号化機能を持っている。有効にすると設定されたパスワードを知らないとその仮想マシンが起動できなくなる。
なお、パスワードは Keychain に登録可能で、二回目以降の入力を省くことができる。


暗号化された仮想マシンの設定変更にはパスワードの入力が必要 

Professional では、暗号化された仮想マシンに対して、さらなる操作の制限を加えることができる。
通常版 Fusion 6 での暗号化と制限
暗号化を行う以外の機能はない

Fusion Professional 6 での暗号化と制限
暗号化を有効にすると、制限機能が表示される

・制限
「制限」を有効にすると、仮想マシンの構成の編集ができなくなる。
これはメニューから設定項目が消えることで実現されている。
なお、制限された仮想マシンは暗号化されているため、.vmx ファイルを編集して直接設定を書き換えることもできない。
なお、Fusion 6 からは「分離」メニューによりホストOSとゲストOS間の ドラッグ&ドロップやコピー&ペーストの利用可否を設定することができる。

「分離」メニュー

あらかじめドラッグ&ドロップやコピー&ペーストを無効化しておけば、制限との合わせ技でホストとゲストのやりとりを禁じて安全性を高めることができる訳だ。

・パスワードの変更
「制限」を有効にした場合の仮想マシンの設定パネル
設定項目が極めて少なくなってるのが分かる

「暗号化パスワードを変更することをユーザに求める」を指定すると、仮想マシンの初回起動時にユーザにパスワードの変更を指示する。暗号化した仮想マシンを配布した場合、配布先の利用者ごとにパスワードを変えてもらうことができる訳だ。

・USBデバイス制限

「USBデバイスをこの仮想マシンに接続することを許可する」をチェックすると、ホストのMacに接続したUSBデバイスを、仮想マシンに接続させることができる。逆に言えば、このチェックをつけない限り、USBデバイスのリダイレクションは無効になる。

Fusion のレベルでは全部通すか全部禁止するかしかないが、ゲストOSが Windows ならば、グループポリシーを使ってUSBデバイスを制限することができるのでこれも併用するといい。

・利用期限
「仮想マシンの期限切れ後」にチェックを入れ、右側の日時を入れるとその期限までしか利用できない仮想マシンを作ることができる。
また、「詳細...」ボタンを押すと以下のシートが現れ、期限切れ直前や期限切れ後のメッセージを用意したり、時間確認のサーバを用意できる。

Fusion Professional 6 では仮想マシンの利用期限を設定することもできる
利用期限のついた仮想マシンを実行する場合、ホストOSのユーザが時間を変えてしまう事は想定される事態だろう。そこで、ローカルの時間を信用せず、指定のウェブサーバに定期的に接続し、現在時間を確認することで期限の確認を行うわけだ。

なお、上記の各種制限のかかった仮想マシンを、通常版の Fusion6 で利用、「暗号化と制限」設定パネルを開くと、以下に見える。

Fusion Professioanl 6 で制限や有効期限を設定した仮想マシンは、
通常版の Fusion6 や Player, Workstation でも制限されたままになる
通常版の Fusion 6 や Player では制限を解除できない

単に暗号化だけなら通常版でも解除できるが、その他の制限がかかった場合、通常版の Fusion では制限も暗号化も解除できなくなる。

企業などで業務データやアプリケーションの入った仮想マシンを配信する場合、暗号化と適宜制限を加えることで、改竄を防止したり利用期限を制限することができるわけだ。ここらへんは、VMware ACEで培った技術が組み込まれている。
Windows を展開する場合はさらに Horizon Mirage でゲストOSの Windowsの管理を行えば利便性と制限を向上させることができる。


● フルクローンとリンククローン

Professional では、フルクローンとリンククローンのメニューが追加されており、仮想マシンのコピーを作成することができる。

通常版 Fusion 6 の仮想マシンメニュー
Fusion Professional 6  の仮想マシンメニュー
クローン項目が増えているのが分かる

フルクローンは完全なコピーで、まったく同じ内容の独立した仮想マシンを作成する。

これに対してリンククローンは、元となる仮想マシンからの差分だけを保有している。
元の仮想マシンがなくなると起動できなくなるが、差分だけのためフルクローンに比べ容量をとらない。

テストや開発時に、一時的に同じゲストOSの複数の仮想マシンが必要な場合、リンククローンは便利であろう。


2013/09/07

私だけかも知れないが

先の VMware Fusion 6 をインストールしてから寝ようとしたら、Fusion が起動時にクラッシュするようになった。

とりあえず調査すると、どうもライセンスファイルを読んでいるところで落ちている模様。
/Library/Preferences/VMware Fusion を確認したところ、「license.fusion.site.6.0.200610」というファイルができており、これを読んだ際に落ちていたようだ。通常のライセンスファイルなら license-fusion-<バージョン>-e<数値>-<年月>となるので、どうもおかしい。2006年10月に Fusion6があるはずないので、何らかのミスか、βテスト時に何かゴミができてしまったかだ。

これを削除したら無事起動するようになった。

私の環境だけかも知れないが、メモ代わりに記載しておく。

Fusion 6

VMware Fusion 6Fusion 6 Professional がリリースされた。

アップグレードの差異にはProfessional版か通常版かを要注意。Fusion 5 Professional から Fusion 6 通常版へのアップグレードもあり得るというか、できてしまうので。

なお、VMware Fusion Technology Preview 2013 のβテスターだった方はコミュニティを要確認。20% のディスカウントコードが出ている。

Fusion6 の新機能だが、ざっというと以下になる。

  • OS X 10.9 "Marbericks" サポート (ホスト&ゲスト)
  • Windows 8.1 サポート(ゲスト)
  • クローンサポート:フルクローンおよびリンククローン
  • バージョン10仮想マシンのサポート
    • より多くの仮想CPUとメモリを搭載した仮想マシンの作成
    • 2TBを越えるストレージの作成(ただし、仮想マシンのブートディスクは2TBまで)
リンククローンは元となる仮想マシンの指定のスナップショットからの「差分」仮想マシンを生み出す技術。うまく使うと同じゲストOSの仮想マシンを作るときのディスク消費量を格段に減らすことができる。

バージョン10仮想マシンは vSphere5.5 や VMware Workstation 10でもサポートされる最新の仮想マシン形式で、設定可能なCPU数やメモリ量が増えたほか、2TBを越える単一仮想ディスクイメージを作成可能なのが特徴。
ただし、ブートディスクは2TBまでの制限があるため、(WindowsをゲストOSにするなら)Cドライブは 2TB以下、Dドライブというかデータディスクは2TBを越えて8TBの設定が可能になる。(vSphere5.5では最大64TBまでの仮想ディスクを作成可能)

Marbericks も Windows8.1 もまだ出ていないため、急いでアップグレードする必要は無いのかも知れない。


もう一つ、密かに VMware Player Plus がリリースされている。
これはこれまで個人利用および非商用利用で無償で提供されてきた VMware Player の商利用をサポートした有償ライセンスに当たる。PlayerPlus の利用者は別途有償でサポートを購入することが可能になる。

Fusion 5 Professional にも VMware Player の商利用権がついていることを以前記載したが、この商利用権だけを単品購入できるようになったが、VMware Player Plus である。

なお、Fusion 6 Professional にも VMware Player Plus の権利がついている。つまり、Fusion 6 Professional を購入し Mac OS X を実行するコンピュータにそのライセンスを割り当てれば Fusion Professional が使える一方、Fusion 6 Professional を購入し Windows/Linux を実行するコンピュータにそのライセンスを割り当てれば VMware Player Plus として利用できる。


2013/07/15

vExpert 2013 受賞しました

出張が続いており、ブログを書くのもとんとご無沙汰してますが、一応、今年も vExpert を受賞しました。

秋口になれば一段落つくかなと、その頃には色々書くことが増えるかなとか思っております。


左が2012の、右が2013の記念品



2013/04/03

ViewClient for Mac の USBリダイレクトを停止させる

VMware ViewClient for Mac 1.7 から Mac でもUSBリダイレクト機能が利用できるようになった。ローカルのMacに接続したUSBデバイスを、リモートのデスクトップ仮想マシンに認識させ、利用することができるようになったのだ。

これは便利なのだが、ただ困ったことに 32111/tcp が閉じられているなど諸々の理由でUSBリダイレクションがうまくいかない場合、下記のエラーメッセージが頻発して操作性が悪くなる。

USBリダイレクトに失敗するとこのメッセージが何度も何度も出る

Windows 版と異なり、Mac 版の USBリダイレクションはそのままでは有効にならず、一度メニューからサービスを開始させる必要がある。


USBリダイレクトを使うには、まず「リモートデスクトップUSBサービス」を開始させる必要がある
これはデフォルトでは有効になって板に
開始させようとすると上記警告と、管理権限のパスワード入力が求められる
必要なのは最初の一度だけで、有効にしたら最後 次回以降の起動では必ず有効になる

ところが、標準メニューではこれを有効にすることはできても向こうに戻すことができない。これは不便だ。

なので、調べてみた。

この「リモートデスクトップUSBサービス」だが、二つの要素でできている。

まずはユーザランド側で、「vmware-usbarbitrator」と「vmware-view-usbd」という二つのプロセスが起動する。vmware-usbarbitrator は VMware Fusion にも搭載されているUSBの調停プロセスで、おそらく OS X からUSBデバイスを引き取るのに使われているのであろう。

もう一つはカーネル側で、「vmioplug.kext」という KEXT (カーネル拡張) 。これが USBの通信を引っ張り出して、usbarbitrator などに渡しているものと思われる。

そして、インストール(dmg からコピー)直後の ViewClient ではこの vmioplug.kext がコピーしたユーザの権限になっている。対して「リモートデスクトップUSBサービスを開始」を実行した後はこれが root:wheel に権限が書き換えられている。

セキュリティのため、OS X では root:wheel 、権限が 755 な kext 以外をカーネルにロードできないようになっている。カーネルは最高特権で動作するので、ここに一般ユーザで書けてしまうファイルを書き込むのは極めて危険であり、同等権限を要求することで安全性を揚げているのだ。( root:wheel のファイルを用意できる時点でそのシステムは落とされているから、それ以上厳しくしても意味がない )

なのでこの vmioplug.kext の権限を root:wheel でなくしてしまう、ロードできないようにすることで元に戻す、「リモートデスクトップUSBサービスを開始」を選択する前の状態に戻すことができる。

とりあえずはこれでしのげた。

2012/12/13

GPO でレジストリをいじる

事の発端は IE9。気がついたらなにやら調子が悪くなり、調べたらどうやら GPUを使ったハードウェアレンダリングが有効になっていた。

VMware の仮想マシンは 3Dサポート機能を有効にすることで OpenGL, DirectX といったGPUを有効活用するAPIが利用可能になるのだが、私の Windows7 ではこれを無効にしていたため、存在しないGPU相手になにやらやっていて、タイムアウトが起こるまで不調が続いたという感じだ。

対処については以下の通り。インターネットオプションの詳細より無効化できる。
http://support.microsoft.com/kb/2618121/ja

が、問題はこの設定は GPO で簡単には配布できないということだ。

http://technet.microsoft.com/ja-jp/library/gg699401.aspx より
Internet Explorer 9 には、ハードウェア アクセラレーション (GPU レンダリング) を無効にするポリシーは用意されていません。必要な場合、グループ ポリシーの基本設定を使用してハードウェア アクセラレーションを無効にできます。HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main キーでレジストリ値 UseSWRender を設定します。グループ ポリシーの基本設定の詳細については、「グループ ポリシー ツールによるブラウザー設定の管理」を参照してください。
「グループポリシーの基本設定」でできるとあるが、こちらで動いてる ActiceDirectory のドメインコントローラが Windows Server 2003 のためか、「Internet Explorer のメンテナンス」などのメニューにそれを見つけることができなかった。

あまり時間もなかったのと、ユーザへ個別に .reg を配ったり .bat ファイルを実行させるのも気が引けたので、adm テンプレートを作って強制的に適用するようにした。

; IE9 HW Accesll
CLASS USER
CATEGORY !!IE9SWRender
KEYNAME "Software\Microsoft\Internet Explorer\Main"
POLICY !!IE9SWRenderConfig
    EXPLAIN !!IE9SWRenderExplain
    VALUENAME "UseSWRender"
    VALUEON NUMERIC 1
    VALUEOFF NUMERIC 0
END POLICY
END CATEGORY
[Strings]
IE9SWRender="IE9 SW Rendering Configuration"
IE9SWRenderConfig="IE9 SW Rendering Configuration"
IE9SWRenderExplain="Use SW Render insted GPU"


作ったのは上記の通り。adm ファイルの書式については解説は不要だろう。

要するに「HKCU\Software\Microsoft\Internet Explorer\Main」の「UseSWRender」の値を DWORDで1か0かを設定するというシンプルなものだ。

ただし、実はこれではうまくいかない。というか表示されない。

諸々試したが、Software\Policies 以下でないパスへの操作については、GPOエディタでデフォルトでは表示されないようだ。

この通り定義したはずの POLICY項目が表示されない

これについては、右クリックして「表示」から「フィルタ...」を選択、


「完全に管理されているポリシー設定のみを表示します」のチェックを外すと見える。


ただし、表示されるようにこのポリシーは適切に管理されるとは限らない。
たとえば「無効」にも「未設定」にもせずにこの adm を削除したりすると、レジストリの中に設定がそのままごみとして残ってしまう恐れがある。


分かって使う分には問題ないが、あまりお勧めはできないこと、わざと表示していないことを察するべきだろう。