一 安裝與配置
sudo install apt-get VirtualBox
2.新立得安裝或網站上下載下傳的編譯安裝完後,直接從"系統工具"就可運作Inntek VirtualBox了
3.現在需将目前使用使用者添加到vboxusers組中(如果沒做這個使用者組設定的話您運作VirtualBox會報一個權限錯:
VirtualBox kernel driver not accessible, permission problem)
sudo usermod -G vboxusers -a user
user是你的使用者名,然後重新開機電腦.否則運作會說你沒有權限.
4.Virtualbox中安裝winXP
我選擇的是DeepinXP-V5.5.iso版本(217MB),接下來開始安裝前的配置:
1) 選擇New --next 如圖3
建立你的guest機名字和選擇系統類型
然後選擇記憶體大小,一般預設192夠了.
2) 選擇guest機的虛拟硬碟大小.第一次運作當然選New新建立啦,點Next>
一路點Next>
選硬碟檔案類型,上面一種: 不固定硬碟檔案大小,随着系統擴大硬碟文會相應當擴大;下面一種: 固定硬碟檔案的大小.其他點Next.完成配置
3) 安裝作業系統XP
選擇File--virtualbox disk manager ,在CD/DVD Images中add你安裝檔案.iso
接下來啟動虛拟系統start,接下來就像真的硬碟安裝系統一樣啦..!!不過我感覺要比真實安裝要快.
4)進入系統後直接就可以上網了(前提是你的host聯網)..不過你是否發現guest中沒又聲音,哈哈不要急,關閉guest,在settings--Audio中選擇driver就行了,順便把USB也選上吧.
5)Start 盡情享受同時運作2個系統帶來的樂趣吧!
5.安裝VBoxGuestAdditions
進入guest你會發現滑鼠隻能在guest中使用,而要切換出來需要按右Crtl,比較不友善
打開虛拟機,點選菜單 Devices -> Install Guest Additions 點Nest>完了後重新開機guest
這樣guest和host之間可以自由切換滑鼠, 就像普通的應用程式視窗那樣
如果點選Install Guest Additions沒有反應?
進入guest,選擇Devices->UMount CD/DVD-ROM,然後再點選Install Guest Additions就行了。
在虛拟機視窗點選菜單 VM -> Auto Resize Guest Display
拖動改變虛拟機視窗大小, 虛拟機分辨率會自動調整适應。全屏下"右 "crtl+f切換到視窗
6. host與guest檔案共享圖形工具
$sudo apt-get install vboxsharedfolder
此軟體在本論壇置頂:vbox下的圖形化共享工具
7.guest的備份很簡單,隻要把/home/...../.VirtualBox/VDI/NewHardDisk1.vdi 檔案備份下就行了.
二 已知常見問題:
1Q 不能運作,即點選virtualbox後沒反應;
A 已知都是核心子產品沒加載,運作指令
CODE:
#dmesg | grep vboxdrv
# vboxdrv: disagrees about version of symbol struct_module
産生原因是進行了核心或者頭檔案單一更新,造成頭檔案與核心不符合,直接強制加載核心子產品即可解決:
sudo modprobe -f vboxdrv
使用這樣的方式要求每次host開機後都要手動運作一次,很不友善,要使核心與子產品相符合,可以:
1 如果你隻是進行了頭檔案更新,隻需要再次更新核心就可以了;
2 如果是更新的核心,需要先更新頭檔案後重新安裝VirtualBox。
2Q 終端運作VirtualBox指令出現COM權限錯誤;
A 主要産生原因是不是用deb包安裝而是用run包安裝後,第一次使用時就 sudo VirtualBox指令運作造成在使用者目錄下的配置檔案被修改成root了。可以手動修改權限回來,但是建議重新安裝deb包;
3Q 不知道如何與主機通信;
A VirtualBox主要采用smb與主機通信,預設采用NAT的方式,自帶DHCP服務,是以用戶端不要要進行任何設定。預設得到的用戶端ip是 10.0.2.15,網關是10.0.2.2,DNS是10.0.2.3,可以手動如此修改。但是,一般隻要重新開機一次主機後自帶的DHCP就會生效的。對 主機資源采用smb方式進行共享,需要采用\ip位址(主機的ip位址)的方式通路;
其實,VirtualBox本身還帶有一個虛拟的小型區域網路絡,提供額外的smb服務,即程式VBoxManage,使用該指令行的方式可以指定host 的目錄共享給guest機,主機被虛拟成netbios名為vboxsvr,客戶機通過通路 \\vboxsvr\共享名獲得讀寫共享,但是這種共享方式很麻煩,沒有直接host開啟smb來得友善。為簡化這種共享,網友huangjiahua (ubuntu中國)特地制作了一個配置軟體,此軟體在本論壇置頂:vbox下的圖形化共享工具。注意的是,安裝後的菜單也在系統工具下面,配置共享前 guest不能開啟。
4Q 不能用USB裝置;
A 由于系統自身usbfs權限限制,需要root權限運作VirtualBox才能加載USB裝置;即需要
sudo VirtualBox
方式來啟動程式;
參考[url]http://www.cslog.cn/Content/ubuntu_virtualbox_usb_dev.html[/url],發現隻要隻要賦予普通使用者usbfs權限,也是可以直接啟用的usb的,即在/etc/fstab檔案中添加如下一行自動挂載:
none /proc/bus/usb usbfs devgid=1000,devmode=664 0 0
注意,并不需要添加usbfs組,直接使用一個已經存在的使用者組就行了。如果你桌面一般隻有一個使用者,使用gid=1000的使用者組就是你的第一個使用者的自身組。使用devmode=666就可以使得任意使用者都有了usbfs的使用權限了。
還要注意,由于usbfs之前已經被挂載了,是以需要重新開機host。
5Q 如何設定橋接模式網絡;
A 雖然VirtualBox自帶的NAT模式網絡已經很好了,但要把guest機加入host機的網絡,就需要橋接模式,這裡網友leemars (linuxsir論壇) 作了詳細闡述,出于友善查找和收藏,我放在blog裡面了,看這裡:[url]http://blog.openrays.org/blog-htm-do-[/url] showone-tid-287.html
關于橋接模式自動運作,把在另外一個文章的解決辦法也貼在這裡:
使用blog裡面的第2中方法:
先建立一個腳本檔案,比如
sudo gedit /etc/init.d/VBoxBridgedRun
将那段代碼寫入,然後 sudo chmod 755 /etc/init.d/VBoxBridgedRun
再建立一個腳本檔案
sudo gedit /etc/init.d/VBoxBridged
寫入這行代碼:
/etc/init.d/VBoxBirdgedRun &
即:讓那段代碼在背景運作。
後面就是将後一個檔案連結到rc2.d檔案夾中,最好放在最後,即S9999VBoxBridged之類;
VirtualBox網絡配置詳解
下面簡單介紹一下Test-bed Environment:
Host : 偶的本本
OS : Arch Linux (Kernel Version 2.6.20) 已安裝uml_utilities(包含tunctl工具)和bridge-utils(包含brctl工具)兩個包.
Username : leemars
LAN IP : 192.168.1.106/24
Interface : ath0
Guest : 偶的本本上的一個虛拟機
OS : Win2003
Host Interface : tap0
Non-Host : 偶的桌上型電腦
OS : WinXP
LAN IP : 192.168.1.120/24
Wireless Router:
LAN IP : 192.168.1.1/24 Gateway
WAN IP : 172.18.60.55/24 綁定MAC
Router開啟了DHCP
Network Environment :
Non-Host直接接在無線路由上, Host通過無線網卡與無線路由連接配接. 無線路由開啟了DHCP功能.
===================================
最簡單的方案 : NAT(by VirtualBox)
Host :
直接使用VirtualBox提供的NAT功能.
Guest :
網卡設定為使用DHCP.
Guest -> WAN :
由VirtualBox的NAT提供WAN的通路服務.
Guest -> Host :
需要注意的是, 如果直接通路Guest拿到的網關IP, 會發現這個IP似乎是Host. 不過事實上不能直接通路網關IP來通路Host. 因為這個IP是由VirtualBox負責的, 隻實作了NAT的功能, 其他的一些功能并不能正常運作(如FTP). 如果要通路Host, 應該通路Host的真實IP.
Host -> Guest :
不可通路. 雖然VirtualBox的NAT功能中包括了Port Forwarding的功能, 但截至到1.3.6 Snapshot, 這個功能仍沒有出現在GUI中. 不過在OSE Version中已經可以使用這個功能. 通過Port Forwarding可以實作部分的向内通路.
VirtualBox NAT沒有什麼玩法了. 下面的方案都是使用VirtualBox的Host Interface功能.
-----------------------------------------------------------------------------
方案一 : NAT(by Linux) + Route
#echo 1 > /proc/sys/net/ipv4/ip_forward #打開轉發功能
#iptables -t nat -A POSTROUTING -j MASQUERADE #利用iptables完成NAT功能
#chmod 0666 /dev/net/tun #設定通路權限
#tunctl -t tap0 -u leemars #建立一個tap裝置, 名字為tap0, 所有者為leemars
#ifconfig tap0 up #激活tap0
#ifconfig tap0 10.10.10.1 netmask 255.255.255.0 #為tap0指定IP和網段, 為10.10.10.1/24.
網卡設定如下:
IP : 10.10.10.10
Netmask : 255.255.255.0
Gateway : 10.10.10.1
由Linux的iptables完成NAT功能, 提供WAN的通路服務.
10.10.10.1是真實的Host. Guest對Host的任何通路都可以通過通路10.10.10.1來完成.
10.10.10.10是真實的Guest. Host對Guest的任何通路都可以通過通路10.10.10.10來完成.
Non-Host -> Guest :
因為Guest是在Host的NAT之後的一個私有子網中, 是以直接通路是不行的. 不過可以通過iptables來完成Port Forwarding, 實作部分的向内通路.
方案二 : Transparent Bridge (Layer 2)
在我的機器上測試下來的結果很遺憾, 無線網卡似乎不能配合Bridge工作. 建好Bridge之後, Guest隻能通路Host, 連網關都通路不到. 是以我改用有線網卡來進行測試, 有線網卡為eth0, IP位址同ath0.
#ifconfig eth0 0.0.0.0 promisc #使eth0進入promiscuous模式
#ifconfig tap0 0.0.0.0 promisc #使tap0進入promiscuous模式
#brctl addbr br0 #增加一個網橋
#brctl addif br0 eth0 #将eth0加入網橋
#ifconfig eth0 up #激活eth0
#dhclient br0 #為br0設定IP位址
#brctl addif br0 tap0 #将tap0加入網橋
網卡設定為DHCP. 或者在設定為Host的Subnet中的一個IP位址, 如下例:
IP : 192.168.1.201
Gateway : 192.168.1.1
由網關提供WAN的通路服務.
直接通路Host的IP位址即可.
直接通路Guest的IP位址即可.
(由于建立了eth0和tap0的Bridge, Non-Host的ARP包被eth0接收到後, 被Brideg轉發至tap0上, 資料鍊路得以建立.)
方案三 : Transparent IP (Layer 3) proxy ARP bridge (by parprouted)
#ip link set tap0 up #激活tap0
#ip addr add 169.1.1.1/32 dev tap0 #為tap0任意指定一個私有位址
#parprouted [-d] ath0 tap0 #啟動parprouted監聽ath0和tap0. -d參數為Debug模式
由網關來提供WAN的通路服務.
Troubleshooting:
這個parprouted軟體有時會出現無法連通的情況. 這時可以嘗試更換Guest的IP位址來解決問題. 這個貌似是parprouted軟體的BUG.
方案四 : ARP Proxy(by Linux) + Route
#route add -host 192.168.1.201 dev tap0 #增加一個路由, 将192.168.1.201定向到tap0
#echo 1 > /proc/sys/net/ipv4/conf/ath0/proxy_arp #打開ath0上的ARP Proxy
#echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp #打開tap0上的ARP Proxy
作者:leemars(linuxsir論壇)
關于橋接模式自動運作
另類回答:
/etc/sysconfig/network-scripts/ifcfg-eth0 :
DEVICE=eth0
TYPE=ETHER
BRIDGE=br0
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1 :
DEVICE=eth1
/etc/sysconfig/network-scripts/ifcfg-br0 :
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
本文轉自 song8575 51CTO部落格,原文連結:http://blog.51cto.com/song8575/36882