2010年9月15日 星期三

Ubuntu 10.04 安裝vmware-server 2.0.x 過程心得

先前曾在他站發過文求助vmware console問題,想說如果真能被我找到解決方法
也該po個文來分享一下,軟體應該被好好設定使用,而不是一直在幫他debug
故本文希望能讓有需要的朋友參考參考,節省爬文的時間

#適用OS Kernel: ubuntu 10.04 2.6.3x (9.10之前版本解決方式不同,這裡只適用10.04)
#vmware版本:適用於vmware-server 2.x(2.0.0、2.0.1、2.0.2)
#需要套件:build-essential、linux-headers、xinetd、make、gcc
#下載patch:點我下載,全部
#需要解決的問題:

1.linux kernel 從2.6.3x 開始就會在核心編譯時發生錯誤,造成失敗
2.安裝完後發現只能用127.0.0.1:8222而不能用 SSL-2的https://127.0.0.1:8333開啟
3.安裝完後無法於firefox 3.6以上版本開出web console(cannot access virtual machine console)
4.console 可以開出後在視窗最外圍一直出現 grub/unbgrub的問題,無法點擊外圍的icon

vmware-server 是vmware 的免費軟體(對於個人使用者而言),目前最新的版本是2.0.2,需要的朋友可以自行
至官網申請免費帳號並下載該版本
vmware的各種發行版本多數不清,我也沒真的去研究到底能否將整個辦公室都虛擬化,我當初用他只為了解決
我工作上需要多重作業系統,但我有時又需要共同開啟,這時vm的虛擬化真的就是一個解決辦法.....
有網友問過,幹嘛不考慮virtual box..沒辦法,一開始我所需要環境就已經架構在VM裏面了,我也懶的重弄
我做好的東西也可以分享給其他同事也是挺方便的.....只要他有本事搞到可用的VM版本

個人認為workstation版本較好用,效能好像也比較好,但既然用在linux裏面我也懶的再去搞什麼破解版之類的
那是以前用windows的專利,現在只想著怎麼搞定這免費但就沒甘心的軟體!!!

step-1:


#sudo apt-get install build-essential linux-headers-`uname -r` xinetd
#sudo apt-get install make
#sudo apt-get install gcc

不確定有沒有安裝可用"dpkg -l 套件名稱"來看看

並將下載的vmware-server 2.x.x.x.tar.gz 解開


$tar -zxvf VMware-server-2.0.2-203138.x86_64.tar.gz

如果直接執行 vmware-install.pl將會於gcc編譯階段得到錯誤而中止
請先準備以下檔案:(上方有載點)
00-vmware-2.6.32_functional.diff.txt
02-vmnet-include.diff.txt.gz
01-vmware-2.6.32_cosmetic.diff.txt
vmware-config.pl.diff.txt
patch-vmware_2.6.3x.sh

將02-vmnet-include.diff.txt.gz給解開,並將所有的.txt副檔名給移除


$gunzip 02-vmnet-include.diff.txt.gz
$rename s/.txt// *

修改patch-vmware_2.6.3x.sh裡的參數
將DIR=/root/dev 改成DIR=patches file的路徑
並將第53行的第一個 ../給刪掉
執行:


#. ./patch-vmware_2.6.3x.sh /path/vmware-server-distrib/lib/modules/sourc

之後即可執行安裝


$sudo ./vmware-install.pl

step-2:
安裝完畢後,依造慣例會用127.0.0.1:8333來開啟加密連線的VM,卻發現一片空白,沒有登入畫面
原因出在Firefox 3.6預設不支援SSL-2連線,他支援較安全的SSL-3,所以要去about :config裡將security.enable_ssl2
給enable起來(改成ture)

step-3:
讓人很頭痛的來了,好不容易patch完vmware,結果居然開不出web的console,那我幹嘛灌VM!!
原因出在firefox 3.6x版本會讓firefox裡的vmware plugins出問題,無法呼叫consloe
最後還是在VM的討論區裡有位網友peter提出了解決方法,他就從那支vmware plugin的.xpi檔下手


#cd /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.x.x/webapps/ui/plugin/



$ls -al
......
-rw-r--r-- 1 root root 18746065 2010-07-29 20:04 vmware-vmrc-linux-x64.xpi
-rw-r--r-- 1 root root 19283343 2010-07-29 20:04 vmware-vmrc-linux-x86.xpi
-rw-r--r-- 1 root root 21402968 2010-07-29 20:04 vmware-vmrc-win32-x86.exe
-rw-r--r-- 1 root root 13848322 2010-07-29 20:04 vmware-vmrc-win32-x86.xpi

看您是那種系統x86或amd-64架構,並將其xpi解壓縮,至於xpi我實在不知道要用那支程式解
最後還是用預設的圖形介面解壓縮程式"file-roller",而且還需要權限才能解開,解開後進入plugins
內設定vmware-vmrc的權限,我的作法是設SUID flag,並執行vmware-vmrc


在plugin內
$sudo mkdir folder-name
$sudo file-roller -f vmware-vmrc-linux-x64.xpi -e folder-name
$cd folder-name/plugins
$sudo chmod 4555 vmware-vmrc
$./vmware-vmrc -h 127.0.0.1:8333

vmware console可以開了,您可以設個捷徑或是直接設一個該路徑的alias來執行
開起來就像這樣

step-4:
到這裡,如果用起來都沒有問題的話,以下的內容就可以不用看了
但是,如果您的vm console已經開出來但卻發現最外圍的游標怪怪的一直點不到一些icon
那就是因為GTK在作怪,GTK library 版本大於2.18,GNOME桌面程式版本大於2.28
vmware會發生滑鼠 grab/ungrab 的情況,參考linuxlight和vmware論壇得知為vmware GTK的問題
在vmware解決之前需使用VM本身之GTK lib,不能使用系統的lib,很鳥吧....
論壇上告訴我們應該要修改home目錄下的firefox裡的vmware plugin設定
但因為先前為了解決console問題,我選擇解開/usr/lib目錄下的plug-in檔案,而不是用/home/.mozilla裡的plugin設定
故這次要修改的是step-3的plugin路徑


先看一下gtk版本
#dpkg -l gnome-desktop*
#dpkg -l libgtk*

如果您是用舊版的firefox (ex:3.5x),開web console沒問題者,您只要做以下修改


$vim ~/.mozilla/firefox/.****.default/extensions/VMwareVMRC@vmware.com/plugins/lib/wrapper-gtk24.sh
於第2行加入
export VMWARE_USE_SHIPPED_GTK=yes
儲存後離開

如果您是用3.6x以上的firefox就需要修改下面路徑


$sudo vim /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.x.x/webapps/ui/plugin/folder-name/plugins/lib/wrapper-gtk24.sh
於第2行後加入
export VMWARE_USE_SHIPPED_GTK=yes
儲存後離開


終於解決了上述的問題,也真的花我不少時間(打字也是),用VM有個要注意的地方,就是"太新的kernel不要冒險"
大部份是跨越新的Linux發行版本出問題,通常vm都慢好多步,升上去,可能就是噩夢的開始...先爬爬文吧

以下附上所參考的論壇或是討論區網址
Vmware討論區:關於套件的patch
Vmware討論區:關於cosole
VMware mouse grub/ungrub的問題

★08/15 更新:
因為安裝vmware時會一並安裝apache-tomcat,所以明明我沒安裝tomcat6卻有著webAccess的process在listen


$netstat -ntul
............
tcp 0 0 0.0.0.0:8308 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN



$sudo lsof +M -i4
............
webAccess 2031 root 5u IPv4 8114 0t0 TCP *:8308 (LISTEN)
webAccess 2031 root 16u IPv4 8419 0t0 TCP *:8009 (LISTEN)

所以如果本機有在執行防火牆時,webAccess會讓防火牆產生一個access漏洞
其實也不能算是啦,但如果沒有需要遠端web登入,本來就應該將tcp port 8009、8308給drop掉

以上同步發表於mobile 01裡


本文引用自:http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=29052