試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

VMware Player 2の共有フォルダ機能の設定(ゲストLinux)

ホストOSの準備

共有フォルダ機能を使用するにはVMware ToolsがゲストOSに必要なので、あらかじめVMware Workstationの.tar.gzファイルをダウンロード、展開した後、vmware-distrib/lib/isoimages/以下のCDイメージ(linux.isoなど)を別の場所に移動しておき、後で仮想マシンのCD-ROMとして設定する。
VMware Workstationの.tar.gzファイルに含まれるVMware ToolsのCDイメージをVMware Player上で使用することに関しては、「問題なし」とのこと。以下、参考URL。

CDイメージファイルが用意できたら、ゲストOSの.vmxファイルに、

ide1:0.present = "TRUE"
ide1:0.startConnected = "TRUE"
ide1:0.fileName = "/ ...[linux.isoまでのパスを書く]... /linux.iso"
ide1:0.deviceType = "cdrom-image"

のように記述して、仮想CD-ROMとして使用できる状態にする。linux.isoの場所を「fileName」の値に書く。「startConnected」をFALSEにした場合、起動時にCD-ROMが外れている状態になるので、後で上部の「CD-ROM」のところで有効にする。

ゲストOSの準備

ゲストOSとして、Ubuntu 7.04 x86_64版を使用している。
まず、CD-ROMがマウントされていなければ

$ sudo mount -t iso9660 /dev/cdrom /media/cdrom

のようにしてマウントしておく。次に

$ tar zxf /media/cdrom/VMwareTools-6.0.0-44426.tar.gz

のようにして、VMware Toolsを展開し、

$ cd vmware-tools-distrib/
$ sudo ./vmware-install.pl

インストーラを実行。実行ファイル*1のコピー、カーネルモジュールの作成*2、Xの設定などを行い、インストールが終了したら、Xのセッションからログアウト。

全般の設定

共有フォルダの設定は、手動で.vmxファイルの中に追加する。これをしないと、共有フォルダ機能は使用できない。

sharedFolder.maxNum = "2"

この数字は、共有を作成する数に合わせる。多くても少なくてもいけない。

共有フォルダ機能の有効・無効に関しては

常に有効
sharedFolder.option = "alwaysEnabled"

一時的(次回電源を落とすかかサスペンド機能を使用するまで)有効
sharedFolder.option = "onetimeEnabled"

無効
sharedFolder.option = "disabled"

のいずれかを記述。これはGUIでも変更でき、vmxファイルの上記部分にも反映される。左上にあるメニューから共有フォルダの項目を選択する。

共有ごとの設定例

sharedFolder[0から始まる番号].[項目名] = [値]の形式。

sharedFolder0.enabled = "TRUE"
sharedFolder0.present = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.hostPath = "/tmp/"
sharedFolder0.guestName ="temp"
sharedFolder0.expiration = "never"

sharedFolder1.enabled = "TRUE"
sharedFolder1.present = "TRUE"
sharedFolder1.writeAccess = "FALSE"
sharedFolder1.readAccess = "TRUE"
sharedFolder1.hostPath = "/home/"
sharedFolder1.guestName ="home"
sharedFolder1.expiration = "never"

「hostPath」はホストOS上の場所で、「guestName」は、Linuxゲストでは、マウントされるディレクト/mnt/hgfs/の下に作られる、共有ごとのディレクトリの名前となる。上の設定例では

$ ls -F /mnt/hgfs/
home/  temp/

となり、それぞれのディレクトリの中身がホストOS上の「hostPath」以下になる。
なお、一度上のような「共有ごとの設定」を作成すれば、各種設定はGUIで変更できる。共有ごとのプロパティを開くと、下のようなダイアログが出る。

挙動についてのメモ

  • マウントは自動で行われる。なお、/mnt/hgfs/という場所は、現在のバージョンにおいては残念ながら変更できない。*3
  • 共有フォルダの中で作成したファイルは、ゲストOS上でどのユーザが作成したものであっても、ホストOS上では、VMware Playerを実行しているユーザが作成したものとして扱われる。ゲストOS上からは、共有フォルダの中に作られるファイルは、(ゲストOS上の)root権限で作成したファイルも(ゲストOS上の)一般ユーザが作成したファイルも、所有者が同じに見える。

使用したバージョン:

*1:x86版とx86_64版それぞれに対して、実行ファイルが用意されているのが分かる

*2:ビルド環境が整っていない場合、必要なパッケージを入れておく

*3:/mnt/hgfs/と「ハードコーディング」されていることの裏付けとして、vmware-config-tools.plの中でも「/mnt/hgfs/」という文字列が何度か出てきている