FreeBSD 5.3にVMware Workstation 3.2.1をインストールした際のメモです。
準備
カーネルのコンフィギュレーションファイルに、
options VFS_AIO options NET_WITH_GIANT
を追加してaio(4)をカーネルに組み込むか、もしくは、/boot/loader.confに、
aio_load="YES" debug.mpsafenet="0"
を追加して、モジュールを起動時に読み込むことにする(こちらの方が楽なのでおすすめ)。
この例では、ipnatを使うので、カーネルのコンフィギュレーションファイルに、
options IPFILTER options IPFILTER_LOG
を追加して、カーネルを再構築。
VMwareは、linprocfs(5)を使用するので、/etc/fstabに、
linproc /compat/linux/proc linprocfs rw 0 0
を追加して、起動時、linprocfsを/compat/linux/procにマウントさせるようにする。
/etc/sysctl.confに次の一行を加える。
kern.ipc.shm_allow_removed=1
で、再起動。
インストール
インストールは、いつも通り、
cd /usr/ports/emulators/vmware3 make install
とする。ただし、ネットワークのセットアップが次のように聞かれる。
vmnetの設定
| 画面 | 説明 |
![]() | ホスト側と仮想PCをつなぐネットワークであるvmnetを設定するのでYesを選択。 |
![]() | ブリッジ接続は使用しないのでNoを選択(こうすると、ホストマシンとしか通信が出来なくなるが、後でipnatを利用して外に出るようにするので問題なし)。 |
![]() | vmnet内でのホストマシンのIPアドレスは、デフォルトの192.168.254.1で問題はないのでOKを押して次に進む。 |
![]() | サブネットマスクも、デフォルトの255.255.255.0でOK。 |
![]() | 確認画面に間違いが無ければ、Yesを選択してネットワークの設定を終了。 |
これで、vmnetという仮想ネットワークのインタフェースが追加され、起動時、上記の設定で呼び出される。
ipnat.rules
vmnetでは、host onlyを選択したので、ホストと仮想マシンの間でしか通信ができない。外に出れないと、困る場合があるので、ipnatを利用する。
既にカーネルには、IPFILTERのオプションを付けているので、後は、/etc/ipnat.rulesを編集(無ければ作成)し、
map fxp0 192.168.254.0/24 -> 0/32 proxy port ftp ftp/tcp map fxp0 192.168.254.0/24 -> 0/32 portmap tcp/udp auto map fxp0 192.168.254.0/24 -> 0/32
の様に書き加える*1。 この他、例えば、ホストマシン(IPアドレス192.168.0.2と想定)のポート1234にやって来たTCP接続を、vmnetの仮想マシン(IPアドレス192.168.254.2)のポート1234に転送したければ、
rdr fxp0 192.168.0.2/24 port 1234 -> 192.168.254.2 port 1234 tcp
の様に書き加えれば良い。 詳細は、ipnat(5)を参照。
以上の設定は、/etc/rc.confに
gateway_enable="YES" ipnat_enable="YES"
を追加することにより、起動時、/etc/rc.d/ipnatのコマンドスクリプトが実行され、上記ルールが読み込まれる。
ゲストOSのインストール
- 仮想マシンを準備するため、ウィザードを使用したい場合は、VMwareのGUIの画面から進むと、linuxのbashがcoreを吐いてウィザードを起動できないので、そういう場合は、「/usr/local/lib/vmware/bin/vmware-wizard」を直接実行する。
- 何かをインストール中、異様に時間がかかるようであれば、メニューから、Settings→Miscと進み、Disable acceleationにチェックを入れてみると改善される場合がある。
Windows
Sambaによるファイルとプリンタの共有
ゲストOSにWindows系のOSをインストールした場合、ホスト側とファイルやプリンタをネットワーク共有できるようにするためSambaをインストールしておくと便利です*3。
# cd /usr/ports/japanese/samba # make install
インストールしたら、/usr/local/etc/smb.confの[global]のセクション内で、
hosts allow = 192.168.0.0/24 192.168.254.0/24 127.0.0.1
などと書き換え、vmnet内(192.168.254.0/24)からの接続を、smbdに許可しておく必要があります。 そして、workgroupの名前をゲストOSとSambaで、同じものに統一します。
もし、ホスト側のユーザのホームディレクトリを共有する場合、[homes]のセクションで、
valid users = %S
とした方がセキュリティ上、良いかも知れません。
そして、smbdに接続するためのユーザとパスワードの設定を、smbpasswd(8)を使って行い、/etc/rc.confに
samba_enable="YES"
を追加すればSambaを開始する事が出来ます。
あと、もし、プリンタを使用する際、ホスト側ではなく、仮想マシンのWindows用のプリンタドライバを使用したい場合は、/usr/local/etc/smb.confの[printers]のセクションで、
use client driver = yes
を追加し、仮想マシンの方にドライバをインストールすれば良いでしょう*4。
Samba3の場合
japanese/samba3の場合は、/usr/local/etc/smb.confに、
# charset settings display charset = CP932 unix charset = EUCJP dos charset = CP932
のように設定しておく事が必要です*5。
*3WindowsサーバのNTFS同様に、より細かく柔軟性を持ったアクセス制御を実現したい場合は、Sambaを「WITH_ACL_SUPPORT=yes」付きでコンパイルすると可能です。そうすることで、UFS2がサポートするようになったACL(Access Control List - アクセス制御リスト)を利用することができます(※利用するためにはtunefs(8)でACL有効化フラグをオンにしている必要があります)。詳細は、ONLamp.com: Using FreeBSD's ACLs参照。
*4これで、ゲストOSから、ネットワークを介して、対応プリンタから、プリンタブルCDにラベルを印刷するといった特殊な印刷も出来るようになりました。
*5ホスト側の日本語ファイル名をja_JP.eucJPとして管理している場合の設定。もし、converters/libiconvをWITH_EXTRA_PATCHESのオプションを付けてビルドしてあるのなら、EUCJP-MSのcharsetも使える。こちらの方が問題が起こる可能性は少なくなると考えられる。
その他
emulators/rtc関連
rtc: 100 > kern.hz: Timing will be inaccurate, please increase hz.
と延々と繰り返されており、鬱陶しい。この警告は、/boot/loader.confに
kern.hz="1000"
ちなみに、余談になりますが、OSの内部タイマーをデフォルトの100Hzから1000Hzに変更すると*8、FreeBSDの場合でも、NetcraftでUptimeを取得する事が出来なくなります。
コメント
Mon Jan 03 21:54 2005 KM: 先日、cvsupでportsを更新したら、linux_baseのデフォルトが7から8に上がっていたので、それに依存しているものをビルドし直しました。その際、emulators/vmware3の方が、vmnetが正常に機能しない等、おかしな事になっているようです。これは、/usr/ports/emulators/vmware3/Makefileの最後にある、
.if exists(${WRKDIR}/Makefile.inc.net)
.include "${WRKDIR}/Makefile.inc.net"
.endif
.include <bsd.port.post.mk>
を
.include <bsd.port.post.mk>
.if exists(${WRKDIR}/Makefile.inc.net)
.include "${WRKDIR}/Makefile.inc.net"
.endif
とする事で回避できます。
Thu Feb 17 02:55 2005 KM: 現時点の5.3-STABLEでは、PR:76644と同じ症状で、こちらの環境でもOSが落ちました…。VMware4.5.xのportingに取り組んでいるようです。
- vmware 4.5.2 - freebsd-emulation MLより
- Orlando Bassotto - FreeBSD
Sat Jul 02 21:04 2005 KM: 5.4-RELEASEでも駄目でした。
Fri Oct 14 20:45 2005 KM: Mon Jan 03 21:54 2005に書いた問題は、emulators/vmware3/Makefile - Revision 1.88で修正されたようです。
関連情報
- ports/emulators/vmware3/ - CVS Repository.
- FreeBSD - このWikiフォーラム内におけるFreeBSDに関係するものの目次です。 ...




