VMwareの仮想マシンでNetBSDとopen-vm-toolsを使ってみる

この記事は、NetBSD Advent Calendar 2016の17日目の記事です。

はじめに

VMware Workstation PlayerやVMware ESXiを使って、 いろいろなオペレーティングシステムを試すことができるのはありがたいです。 NetBSDには、OpenBSDに由来するvmt(4)というデバイスドライバーがあって、 電源関連の処理とホストへのIPアドレスの報告、ホストとゲストの時刻の同期を してくれます。

open-vm-toolsはvmt(4)の機能に加えて、以下のようなことができます。

  • 複数のIPアドレスをホストに報告できます
  • VMware Workstation Playerの場合に、ホストとゲスト間でテキストの コピー・アンド・ペーストができます
  • 共有フォルダー機能が使用できます
もしかしたら、ドラッグ・アンド・ドロップもできるかもしれませんが、 それを実現するためのゲストであるNetBSDの要件が良く分かりません。

と言いますか、基本的には、vmt(4)で十分です。 私のように 、事情があってVMware toolsかopen-vm-toolsを 使わないといけない人向けかもしれません。

open-vm-toolsのインストール

2016年12月17日現在、pkgsrcには、pkgsrc/sysutils/open-vm-toolsとして 10.0.7が収録されています。HGFS FUSE (共有フォルダー関係) は、pho@さんが NetBSD側も含め有効にしてくださいました。ありがとうございます。

インストールは、以下のようにします。


$ cd /usr/pkgsrc/sysutils/open-vm-tools
$ make install
$ make clean-depends clean
ホストとゲスト間でのテキストのコピー・アンド・ペーストをしたい場合には、 x11オプションを有効にするのを忘れないでください。標準では有効になっています。

手元には、最新版である10.1.0のアップデートを持っていますので、 この記事を投稿した後にコミットしておきます。

open-vm-toolsの使い方

実際に、各機能ごとに、使用方法を説明します。 基本的には、NetBSDでの場合に限定されるような内容ではないと思いますが…。

電源関係と時刻同期

VMwareのホスト側でシャットダウンまたは再起動を指示した場合に、 shutdown(8)コマンドを実行するのは、/usr/pkg/bin/vmtoolsdの 仕事です。 vmtoolsdは、ホストとゲスト間の時刻の同期もしています。 NetBSDで使う場合には、vmt(4)を無効化しておかないといけません。 ブートローダーで、以下のようにして無効化しておきます。 永続的に無効にする場合には、カーネル設定ファイルから取り除いてください。


> boot -c
> disable vmt
> quit
その上で、NetBSDが起動したら、自動的にvmtoolsdが起動するように設定します。 今回は手動で起動しておきます。

# cp /usr/pkg/share/examples/rc.d/vmtoold /etc/rc.d
# echo "vmtoolsd=YES" >> /etc.rc.conf
# /etc.rc.d/vmtoolsd start
VMware ESXiでもVMware Workstation Playerでも動作可能です。

ホストとゲスト間でのテキストのコピー・アンド・ペースト

コピー・アンド・ペーストは、/usr/pkg/bin/vmware-user-suid-wrapper が実現しています。 ですが、ゲスト側はX Window System上のみが対象です。 また、ホスト側がVMware Workstation Playerでない場合(ESXiの場合)は確認していません。 ここまで書いて気付きましたが、/var/run/vmblockを自分で事前に 作っておかなくてはいけないようです。 事前に、X Window Systemを起動しておいてください。


# mkdir /var/run/vmblock
$ startx
$ /usr/pkg/bin/vmware-user-suid-wrapper
テキストをホストとゲストの間でコピー・アンド・ペーストできるようになります。

共有フォルダー

共有フォルダーは、HGFSと呼ばれています。 これも、VMware Workstation Playerでのみ動作確認しています。

まずホスト側で、共有するフォルダーを先に指定しておきます。 例えば、あるWindows上のフォルダーをsharedと言う名前で共有しておくとします。


# mkdir /mnt/hgfs
# /usr/pkg/bin/vmhgfs-fuse /mnt/hgfs
# ls /mnt/hgfs
shared
ホスト側で共有設定できるフォルダーは複数設定可能です。 ですので、それらがマウントしたディレクトリーの中に現れて来る 仕組みになっています。

おわりに

このパッケージは53個もNetBSD向けのパッチを持っています。 明らかにメンテナンスできなくなる未来が見えています。 Contributor Agreementを良く読んだ上で、NetBSDサポートの必要性を アピールし、open-vm-toolsプロジェクトにパッチを取り込んでもらえるように できればと思っています。

他にもopen-vm-toolsには機能があるかもしれません。 NetBSD/amd64 7.99.51で確認しましたので、動かない機能がありましたら 教えてください。

コメント

このブログの人気の投稿

#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法

Vaio Pro 11/13用のサードパーティーのACアダプター

Windows 7 Professional用のNFSクライアントを使う (NFS 4.1のみ)