安裝好 VM (Guest OS) 後第一件事便是安裝 VMware Tools,許多人對於 VMware Tools 的功能認知上有很大的誤差,認為安裝 VMware Tools 不過就是滑鼠不會被咬住或是進行時間調校而以,事實上許多 VMware 的進階功能 例如 Memory Ballooning 便是要透過 VM 上的 VMware Tools 來進行觸發的,因此強烈建議安裝好 VM 之後第一件事就是安裝 VMware Tools,下列為安裝 VMware Tools 後所提供的功能:
透過如下步驟即可對 Windows 平台的 VM 安裝 VMware Tools
在 Linux 中要安裝 VMware Tools 可使用 RPM 或 Tar ball 皆可進行安裝,此次測試平台為 CentOS 5.4 (32bit) 且 RunLevel 為 5 (圖形介面),在建立 CentOS VM 時網路卡選擇 vmxnet3 而在尚未安裝 VMware Tools 之前是抓不到此網路卡的,您可按照如下方式安裝 VMware Tools
首先開啟 vSphere Client >> 開啟 Console >> 選擇【VM \ Guest \ Install/Upgrade VMware Tools】掛載相對應的 ISO 檔給 VM 平台
使用 RPM 安裝方式
cp /media/VMware Tools/VMwareTools-4.0.0-208167.i386.rpm /tmp //若未自動掛載請手動執行 mount /dev/cdrom /media cd /tmp ; umount /media rpm -ivh /mnt/cdrom/VMwareTools-4.0.0-208167.i386.rpm /usr/bin/vmware-config-tools.pl
使用 TarBall 安裝方式
cp /media/VMware Tools/VMwareTools-4.0.0-208167.tar.gz /tmp cd /tmp ; umount /media tar zxvf VMwareTools-4.0.0-208167.tar.gz cd vmware-tools-distrib ./vmware-install.pl
安裝好 VMware Tools 後請重新啟動 CentOS,開啟 vSphere Client 在該 VM 中查看【Summary】標籤內其 VMware Tools 狀態將由先前的 Not Installed 變為 OK,並請按照如下方式確定相關服務及模組是否順利載入
#chkconfig vmware-tools --list //檢查 vmware-tools 服務是否開機啟動 vmware-tools 0:off 1:off 2:on 3:on 4:off 5:on 6:off #service vmware-tools status //檢查 vmware-tools 服務是否運作中 vmware-guestd is running #ps aux |grep vmware //檢查 vmware-tools 服務執行緒 root 3028 0.0 0.2 2944 1212 ? Ss 16:35 0:00 /usr/lib/vmware-tools/sbin32/vmware-guestd --background /var/run/vmware-guestd.pid root 3682 0.2 0.8 15496 4544 ? S 16:35 0:00 /usr/lib/vmware-tools/bin/vmware-user root 4588 0.0 0.1 3912 684 pts/1 R+ 16:42 0:00 grep vmware
利用如下指令來檢查 CentOS 是否有載入最新一代 VMware 虛擬網路卡 vmxnet3 及模組資訊,VM 重新啟動完成後 vmxnet3 網卡應可順利抓到 (當然滑鼠也不會被咬住 XD)
#dmesg |grep -e eth -e vmxnet3 //核心所抓到的網卡資訊
VMware vmxnet3 virtual NIC driver - version 1.0.1.0-NAPI
eth0: intr type 2, mode 0, 1 vectors allocated
eth0: NIC Link is Up 10000 Mbps
eth0: no IPv6 routers present
#lspci |grep Ethernet //網路卡資訊
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
#lsmod |grep vmxnet3 //網路卡模組載入資訊
vmxnet3 38020 0
#modinfo vmxnet3 //網路卡模組詳細資訊
filename: /lib/modules/2.6.18-164.el5/misc/vmxnet3.ko
author: VMware, Inc.
description: VMware vmxnet3 virtual NIC driver
license: GPL v2
version: 1.0.1.0
supported: external
vermagic: 2.6.18-8.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
depends:
alias: pci:v000015ADd000007B0sv*sd*bc*sc*i*
#ethtool eth0 //網路卡傳輸資訊
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised auto-negotiation: No
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: uag
Wake-on: d
Link detected: yes安裝好 VMware Tools 後該如何叫出 VMware Tools 設定視窗 例如想要設定 時間同步 (Time Synchronization)? 您可執行指令 /usr/bin/vmware-toolbox & 或依照下列方式建立捷徑於桌面上之後便可清鬆叫出 VMware Tools 設定視窗
ESX-4.0.0-update01-208167
VMware Tools 對於 FreeBSD 的支援度似乎就沒有那麼友善 (相對於 Linux 來說),在此次測試的 FreeBSD 及 ESX (ESX-4.0.0-update01-208167) 版本中只能順利在 FreeBSD 6.x 及 7.x 版本上進行安裝,而在最新版本 FreeBSDX 8.x 上則是安裝失敗,必須要透過 [VMware 在 2007年 時發表] 的另一個計劃 [Open Virtual Machine Tools] 才行,但美中不足的是安裝後 VMware Tools 狀態將由先前的 Not Installed 變為 Unmanaged (雖然運作都正常),以下便是將安裝分為二個部份進行說明:
ESXi-4.1.0-260247-x64
在最新版本 ESXi-4.1.0-260247-x64 中其 FreeBSD.iso 已能正確支援 FreeBSD 8.x
FreeBSD 6.x 及 7.x 都未安裝桌面環境 (X11),並請於安裝 VMware Tools 之前先確定系統是否安裝 Perl 及 compat6x 以便 VMware Tools 安裝程序可順利執行
#cd /usr/port/lang/perl5.10 ; make install clean #cd /usr/ports/misc/compat6x ; make install clean
首先開啟 vSphere Client >> 開啟 Console >> 選擇【VM \ Guest \ Install/Upgrade VMware Tools】掛載相對應的 ISO 檔給 VM 平台
#mount /cdrom #cd /cdrom #cp vmware-freebsd-tools.tar.gz /tmp #cd /tmp ; umount /cdrom #tar zxvf vmware-freebsd-tools.tar.gz #cd vmware-tools-distrib/ #./vmware-install.pl
安裝好 VMware Tools 後請重新啟動 FreeBSD,開啟 vSphere Client 在該 VM 中查看【Summary】標籤內其 VMware Tools 狀態將由先前的 Not Installed 變為 OK,並請按照如下方式確定相關服務及模組是否順利載入
#dmesg |grep vxn vxn0: <VMware PCI Ethernet Adpater> port 0x2040-0x207f irq 19 at device 1.0 on pci2 vxn0: [ITHREAD] vxn0: WARNING: using obsoleted if_watchdog interface vxn0: Ethernet address: 00:50:56:b0:7e:f0 vxn0: attached [num_rx_bufs=(100*24) num_tx_bufs=(100*64) driverDataSize=9000] #/usr/local/sbin/vmware-checkvm -h VM's hw version is 4 VMware software version 6 (good)
從掛載的 ESX (ESX-4.0.0-update01-208167) 版本中的 freebsd.iso 內容中可知目前此版本只支援 FreeBSD 6.x 及 7.x,從如下解開套件中可看到此 VMware Tools ISO 所支援的 FreeBSD 版本,因此在 FreeBSD 8.x 上面安裝當然是失敗的,雖然查看過相關文章 [VMware Communities: Installing VMware Tools in FreeBSD 8.0 on a ESXi 3.5 Server]
#ll /tmp/vmware-tools-distrib/lib/modules/binary drwxr-xr-x 2 root wheel 512 Nov 8 2009 FreeBSD6.0-amd64 drwxr-xr-x 2 root wheel 512 Nov 8 2009 FreeBSD6.0-i386 drwxr-xr-x 2 root wheel 512 Nov 8 2009 FreeBSD7.0-amd64 drwxr-xr-x 2 root wheel 512 Nov 8 2009 FreeBSD7.0-i386
因此 FreeBSD 8.x 可透過安裝 [Open Virtual Machine Tools],由於此套件等於是重新幫您的系統編譯出 VMware Tools 工具出來因此系統必須要有 Kernel 編譯相關檔案才行,安裝 FreeBSD 8.x 時記得勾選在 Distributions 中 src 項目內的 base、sbin、sys 之後才可順利安裝
#cd /usr/ports/emulators/open-vm-tools-nox11 ; make install clean #vi /etc/rc.conf //加入如下5行 vmware_guest_vmblock_enable="YES" vmware_guest_vmhgfs_enable="YES" vmware_guest_vmmemctl_enable="YES" vmware_guest_vmxnet_enable="YES" vmware_guestd_enable="YES" #reboot
安裝完成並重新開機後雖然有抓到 VMware 虛擬網卡 vmxnet2 並載入相關模組,且 VM Console 視窗上的 Shutdown Guest/Suspen 按鈕可正常使用,但在 vSphere Client 中查看【Summary】標籤內其 VMware Tools 狀態為 Unmanaged
#dmesg |grep vxn //網卡載入資訊 vxn0: <VMware PCI Ethernet Adpater> port 0x2040-0x207f irq 19 at device 1.0 on pci2 vxn0: [ITHREAD] vxn0: WARNING: using obsoleted if_watchdog interface vxn0: Ethernet address: 00:50:56:b0:1d:7f vxn0: attached [num_rx_bufs=(100*24) num_tx_bufs=(100*64) driverDataSize=9000] #kldstat //載入相關模組 Id Refs Address Size Name 1 10 0xc0400000 bb5504 kernel 2 1 0xc3914000 4000 vmmemctl.ko 3 1 0xc39a0000 5000 vmxnet.ko 4 1 0xc39a5000 5000 vmblock.ko 5 1 0xc39ab000 b000 vmhgfs.ko
從掛載的 ESX (ESXi-4.1.0-260247-x64) 版本中的 freebsd.iso 內容中可知目前此版本支援穩定的 FreeBSD 6.x、7.x、8.x 版本,從如下解開套件中可看到此 VMware Tools ISO 所支援的 FreeBSD 版本:
#ls /tmp/vmware-tools-distrib/lib/modules/binary drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD6.3-amd64 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD6.3-i386 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.0-amd64 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.0-i386 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.1-amd64 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.1-i386 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.3-amd64 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD7.3-i386 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD8.0-amd64 drwxr-xr-x 2 root wheel 512 May 9 2010 FreeBSD8.0-i386
FreeBSD 8.x 未安裝桌面環境 (X11),並請於安裝 VMware Tools 之前先確定系統是否安裝 Perl 及 compat6x 以便 VMware Tools 安裝程序可順利執行
#cd /usr/port/lang/perl5.10 ; make install clean #cd /usr/ports/misc/compat6x ; make install clean
首先開啟 vSphere Client >> 開啟 Console >> 選擇【VM \ Guest \ Install/Upgrade VMware Tools】掛載相對應的 ISO 檔給 VM 平台
#mount /cdrom #cd /cdrom #cp vmware-freebsd-tools.tar.gz /tmp #cd /tmp ; umount /cdrom #tar zxvf vmware-freebsd-tools.tar.gz #cd vmware-tools-distrib/ #./vmware-install.pl
安裝好 VMware Tools 後請重新啟動 FreeBSD,開啟 vSphere Client 在該 VM 中查看【Summary】標籤內其 VMware Tools 狀態將由先前的 Not Installed 變為 OK,並請按照如下方式確定相關服務及模組是否順利載入
#dmesg |grep vxn vxn0: <VMware PCI Ethernet Adpater> port 0x2000-0x203f irq 18 at device 0.0 on pci2 vxn0: [ITHREAD] vxn0: WARNING: using obsoleted if_watchdog interface vxn0: Ethernet address: 00:50:56:8f:00:00 vxn0: attached [num_rx_bufs=(100*24) num_tx_bufs=(100*64) driverDataSize=9000] #/usr/local/sbin/vmware-checkvm -h VM's hw version is 4 VMware software version 6 (good) #kldstat Id Refs Address Size Name 1 6 0xc0400000 bb5504 kernel 2 1 0xc3c1c000 4000 vmmemctl.ko 3 1 0xc3ca0000 5000 vmxnet.ko
在 ESX/ESXi 4.x 當中僅能為 FreeBSD 新增第二代虛擬網路卡 (VMXNET2),而在 ESXi 5.0 當中則能為 FreeBSD 新增第三代虛擬網路卡 (VMXNET3)。FreeBSD 8.x 未安裝桌面環境 (X11),並請於安裝 VMware Tools 之前先確定系統是否安裝 Perl 及 compat6x 以便 VMware Tools 安裝程序可順利執行
#cd /usr/port/lang/perl5.10 ; make install clean #cd /usr/ports/misc/compat6x ; make install clean
首先開啟 vSphere Client >> 開啟 Console >> 選擇【VM \ Guest \ Install/Upgrade VMware Tools】掛載相對應的 ISO 檔給 VM 平台
#mount /cdrom #cd /cdrom #cp vmware-freebsd-tools.tar.gz /tmp #cd /tmp ; umount /cdrom #tar zxvf vmware-freebsd-tools.tar.gz #cd vmware-tools-distrib/ #./vmware-install.pl
安裝好 VMware Tools 後請重新啟動 FreeBSD,開啟 vSphere Client 在該 VM 中查看【Summary】標籤內其 VMware Tools 狀態將由先前的 Not Installed 變為 Running,並請按照如下方式確定相關服務及模組是否順利載入
#dmesg | grep vmx
vmx3f0: <VMware Vmxnet3 Ethernet Controller> port 0x4000-0x400f mem irq 18 at device 0.0 on pci3
vmx3f0: Driver version : 0.0.8.0.
vmx3f0: Capabilities : sg jf vlan csum tso
#/usr/local/sbin/vmware-checkvm -h
VM's hw version is 4
VMware software version 6 (good)
#kldstat
Id Refs Address Size Name
1 8 0xc0400000 c68d94 kernel
2 1 0xc1069000 4988 vmxnet.ko
3 1 0xc106e000 8608 vmxnet3.ko
4 1 0xc4b2d000 4000 vmmemctl.ko
#ifconfig vmx3f0
vmx3f0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
ether 00:0c:29:68:c8:3a
media: Ethernet 10Gbase-T //可看到網卡頻寬速度為 10G
status: active在預設的情況下 FreeNAS 已經支援第二代虛擬網路卡 (VMXNET2),但是尚未原生支援第三代虛擬網路卡 (VMXNET3)。當然若是使用 E1000 網卡也是沒有問題的,下列為使用各種網卡在 FreeNAS 上能否使用以及其代號:
| 網卡 Type | FreeNAS 網卡代號 | 預設是否支援 |
| E1000 | em0 | Yes |
| vmxnet2 | vxn0 | Yes (網路功能似乎有點狀況) |
| vmxnet3 | vmx3f0 | No (需安裝 VMware Tools) |
因此還是需要在安裝 VMware Tools 並請於安裝 VMware Tools 之前先確定系統是否安裝 Perl 及 compat6x 以便 VMware Tools 安裝程序可順利執行。
#mount -urw / //因為 FreeNAS 為嵌入式架構 (解除 Read-Only 狀態) #pkg_add -r perl compat6x-amd64 //安裝 Perl 及 Compat6x
開啟 vSphere Client >> 開啟 Console >> 選擇【VM \ Guest \ Install/Upgrade VMware Tools】掛載相對應的 ISO 檔給 VM 虛擬主機
#mkdir /media/cdrom #mount -t cd9660 /dev/cd0 /media/cdrom #cp /media/cdrom/mware-freebsd-tools.tar.gz /tmp #cd /tmp ; umount /media/cdrom #tar zxvf vmware-freebsd-tools.tar.gz #cd vmware-tools-distrib/ #./vmware-install.pl
安裝好 VMware Tools 後請重新啟動 FreeNAS,在 vSphere Client 在該 VM 中查看【Summary】標籤內其 VMware Tools 欄位狀態為【Running (3rd-party/Independent)】 請確定相關服務及模組是否順利載入:
#dmesg | grep vmx
vmx3f0: <VMware Vmxnet3 Ethernet Controller> port 0x4000-0x400f mem irq 18 at device 0.0 on pci3
vmx3f0: Driver version : 0.0.8.0.
vmx3f0: Capabilities : sg jf vlan csum tso
#/usr/local/sbin/vmware-checkvm -h
VM's hw version is 4
VMware software version 6 (good)
#kldstat
Id Refs Address Size Name
1 8 0xc0400000 c68d94 kernel
2 1 0xc1069000 4988 vmxnet.ko
3 1 0xc106e000 8608 vmxnet3.ko
4 1 0xc4b2d000 4000 vmmemctl.ko
#ifconfig vmx3f0
vmx3f0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
ether 00:0c:29:68:c8:3a
media: Ethernet 10Gbase-T //可看到網卡頻寬速度為 10G
status: active[VMware Tools Configuration Utility User Guide]
[ KB1018392 - How to install VMware Tools in a Linux virtual machine using RPM]
[Rhyous » Blog Archive » How to install VMWare-tools on FreeBSD 8 or PC-BSD 8?]
[Installing VMWare Tools on FreeBSD 9]
[鳥毅的 Blog - How to install VMWare ESXi 5 tools for FreeBSD 9]
Error Message:
執行 ./vmware-install.pl 時出現如下錯誤訊息且安裝中斷
Before running VMware Tools for the first time, you need to configure it by invoking the following command: "/usr/local/bin/vmware-config-tools.pl". Do you want this program to invoke the command for you now? [yes] The VMware Tools for FreeBSD 7.2 depend on libraries provided by the compat6x-i386 package. Unfortunately we were unable to locate these libraries on your system. Please install the compat6x-i386 package from the FreeBSD Ports Tree before you attempt to configure VMware Tools. The easiest way to install this pakage is by using pkg_add utility. Refer to the man pages on how to properly use this utility. Please re-run this program after installing the compat6x-i386 package. Execution aborted.
Ans:
系統缺少 compat6x-i386 套件,請安裝後再次執行 ./vmware-install.pl 即可
#cd /usr/ports/misc/compat6x/ ; make install clean ; cd - ; ./vmware-install.pl
Error Message:
安裝 open-vm-tools-nox11 套件出現如下錯誤訊息且安裝中斷
configure: error: FreeBSD kernel tree not found. Please install the kernel sources (or provide the location using SYSDIR ) or configure using -- without-kernel-modules. ===> Script "configure" failed unexpectedly. Please report the problem to mbr@FreeBSD.org [maintainer] and attach the "/usr/ports/emulators/open-vm-tools-nox11/work/open-vm-tools-2010.10.18-313025/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. an `ls /var/db/pkg`). *** Error code 1 Stop in /usr/ports/emulators/open-vm-tools-nox11.
Ans:
因為目前系統中沒有安裝 Kernel 編譯相關套件所導致,請安裝在勾選 Distributions 中 src 項目內的 base、sbin、sys 後即可順利安裝
Error Message:
VM 的作業系統為 CentOS 6.3 (x64),欲安裝 VMware Tools 無法順利安裝並且顯示下列錯誤訊息
Before you can compile modules, you need to have the following installed... make gcc kernel headers of the running kernel Searching for a valid kernel header path... The path "" is not valid. Would you like to change it? [yes] What is the location of the directory of C header files that match your running kernel? The path "" is not valid. Would you like to change it? [yes]
從上述錯誤訊息中可以看到系統顯示無法找到 kernel header 的執行路徑在哪裡,但是我已經有安裝相關的套件了!!
#rpm -qa | grep -e kernel-headers -e kernel-devel kernel-headers-2.6.32-279.11.1.el6.x86_64 kernel-devel-2.6.32-279.11.1.el6.x86_64
Ans:
原因在於所安裝的 kernel-devel、kernel-headers 套件與 CentOS Kernel 版本不符合所導致:
# uname -r 2.6.32-279.el6.x86_64 //核心版本為 2.6.32-279 # rpm -qa | grep -e kernel-headers -e kernel-devel kernel-headers-2.6.32-279.11.1.el6.x86_64 //套件版本為 2.6.32-279.11.1 kernel-devel-2.6.32-279.11.1.el6.x86_64 //套件版本為 2.6.32-279.11.1
所以先將安裝好較新版的 kernel-headers、kernel-devel 套件移除 (會連帶移除到 gcc)
# yum -y remove kernel-headers kernel-devel
接著安裝符合目前 CentOS Kernel 版本 kernel-headers、kernel-devel 套件以及 gcc、make 套件
# yum -y install gcc make kernel-headers-$(uname -r) kernel-devel-$(uname -r)
安裝完畢後再次檢查 CentOS Kernel 版本 kernel-headers、kernel-devel 套件版本是否互相符合
# uname -r 2.6.32-279.el6.x86_64 # rpm -qa | grep -e kernel-headers -e kernel-devel kernel-headers-2.6.32-279.el6.x86_64 kernel-devel-2.6.32-279.el6.x86_64
再次執行 VMware Tools 安裝作業後便發現可以順利偵測到 kernel header 的路徑並順利安裝完成!!
Searching for a valid kernel header path... Detected the kernel headers of the running kernel at "/lib/modules/2.6.32-279.el6.x86_64/build/include". The path "/lib/modules/2.6.32-279.el6.x86_64/build/include" appears to be a valid path to the kernel headers of the running kernel.


