VMwarePlayer2.0 の設定

以前 VMware Workstation 4.5 で作った仮想ディスクを消してしまった(笑)ので, 「qemu で仮想ディスクを作成する」を試してみた.

環境

Hard
Let's Note CF-R4, メモリは 1GB に増設済
Host
Debian GNU/Linux 4.0(etch)
Guest
Windows XP(SP2 のアップグレード版 + Windows98 の CD)

純正の USB 接続 CD-RW/DVD-ROM ドライブでもって install.

VMwarePlayer の install

落としてきて, 展開. root 権限で vmware-install.pl を実行するだけ.

今回落としてきたのは VMware-player-2.0.0-45731.i386.tar.gz, ver.2.0.0 の Build:45731 ですか.

$ tar xvzf VMwarePlayer-2.0.0-45731.i386.tar.gz
$ cd vmware-disturb
$ sudo vmware-install.pl
...

途中でネットワークの設定をどうするか聞かれるので,

  • ネットワーク設定: NAT
  • prove pribate network: no

として, 適当に 192.168.xxx.yyy なんて打っておきます. これにて install 終了.

あと, 必要無い時に起動しない様に, /etc/rc*.d/ 以下から vmnet 起動スクリプトを消しておきます. ついでに vmnet の停止も.

$ sudo update-rc.d -f vmware remove
$ sudo /etc/init.d/vmware stop

仮想マシンの作成

仮想ディスクの作成には qemu を使います. 仮想ディスク等を ~/.vmware/vdisk/ 以下に置くとして,

$ sudo apt-get install qemu
 ...
$
$ qemu-img create -f vmdk ~/.vmware/vdisk/winxp.vmdk 8G

とこんな感じで. 実際に作成されるファイルのサイズは 8k ぐらい.

次に仮想マシンの設定

$ cd ~/.vmware/vdisk/
$ vi ~/winxp.vmx
 ...
 config.version = "8"
 virtualHW.version = "4"
 displayName = "Windows XP on VMware Player"
 # ----- Memory size for guest OS -----
 memsize = "256"
 # ----- Virtual HDD image -----
 ide0:0.present = "TRUE"
 ide0:0.fileName = "windows.vmdk"
 # ----- nvram -----
 nvram = "windows.nvram"
 # ----- CD-ROM Drive -----
 ide1:0.present = "true"
 ide1:0.fileName = "auto detect"
 ide1:0.deviceType = "cdrom-raw"
 # ----- FDD -----
 floppy0.present = "FALSE"
 # ----- USB -----
 usb.present = "FALSE"
 # ----- Network -----
 ethernet0.present = "TRUE"
 ethernet0.connectionType = "nat"
 # ----- Select Guest OS -----
 guestOS = "winxppro" # Windows XP Professional
 # ----- Sound -----
 sound.present = "TRUE"
 sound.virtualDev = "es1371"
 ide1:0.autodetect = "TRUE"

こんな感じで. usb.present = "TRUE" にしてあると, ide1:0 と混乱するみたい.

Windows XP の install

USB 接続のドライブに CD を入れて, vmware を起動すると, install が始まった.

... 終わった. 仮想ディスクのサイズは 1.6 GB ぐらい.

vmwaretools の install

vmwaretools が導入されていないと

  • 時計がズレる
  • マウスが挙動不審
  • 仮想マシンの解像度が低くなる

わけで. vmwaretools を install したいわけ. だけど, VMwarePlayer には vmwaretools が同梱されていない.

VMware 社の公式見解として, OK が出ているらしいので linux 版の VMwareWorkStation に含まれている, vmwaretools を入手する. WorkStation の tar.gz 自体はすぐ入手できるので, そこから windows.iso を取りだす.

この iso イメージを仮想マシンから読む. 仮想ディスクと同じ場所に置いて, .vmx ファイルに

ide1:0.present = "true"
ide1:0.fileName = "windows.iso"
ide1:0.deviceType = "cdrom-image"

なんて指定して起動すれば良い.

音鳴らし(esd+alsa:dmix)

host OS側で音を鳴らしている(/dev/dsp を掴んでいるプログラムがあると) guest OS 側では /dev/dsp を叩けずに, サウンドバイスが使えません. また, guest 側で /dev/dsp が叩けても, 音飛びが酷くて, そのままでは使いモンになりません.

解決策は幾つかあるみたいですが, host 側の alsa の dmix (mixer プログラム)と esd(enlightment sound daemon) を使ってやると良い感じで音が鳴らせます. 偶に飛んだりしますが, 許容範囲.

alsa:dmix の設定はデフォルトのまま. esd の設定で, /etc/esound/esd.conf に

[esd]
auto_spawn=1
spawn_options=-terminate -nobeeps -as 5 -d default
spawn_wait_ms=100
# default options are used in spawned and non-spawned mode
default_options=

みたいにしておく. あとは vmwaredsp で esddsp の様に wrapper してもらう.

http://platan.vc.cvut.cz/ftp/pub/vmware/

から, vmwaredsp-1.3.tar.gz を落としてきて install する.

以前は vmware を起動させる度に esd も起動していたけれど, 最近は

if [ -d /tmp/.esd ] ; then
   echo "esound daemon is already started"
else
   exec esd &
fi

なんてのを .xsession に仕込んでいる.

感想

qemu-img で仮想ディスクを, テキスト形式の .vmx ファイルで仮想マシンの設定を作成するだけで, VMWare仮想マシンが作成できた. 多分今後も個人で使う分には VMPlayer で困らない, と思う.

VMware Workstation には, スナップショットが取れる, とかネットワークの設定が柔軟に変えられる, とかイロイロ便利な機能がある(事は知っていて, 実際に使っていた)けれど, やっぱ学生に福沢さん数人分はデカい.