Category Archives: Virtualization

Virtualbox 小技巧

如何精簡虛擬硬碟大小

首先登入 Virtual Machine 用以下指令把未使用的空間填滿 zero

dd if=/dev/zero of=zerofile bs=1M

填滿未使用空間後刪除 zerofile,然後 shutdown Virtual Machine

最後用以下的 Virtualbox 指令進行精簡虛擬硬碟大小

/opt/VirtualBox/VBoxManage modifyhd <myvdifile> compact

本篇主要參考這個 網址

 

修改虛擬硬碟 UUID

通常我們會先灌一個最小的 Linux 系統,建立新 Virtual Machine 時就可以把這個虛擬硬碟拿來用,而不必每次建 Virtual Machine 就要灌一次作業系統 。

例如你有一個 centos.vdi,要架 DNS 時就把 centos.vdi copy 一份檔名叫 dns.vdi,要架 Web 時就再把 centos.vdi copy 一份檔名叫 www.vdi,但是每個 vdi 檔都有一個 uuid 重複的話 VirtualBox 就不讓你重複使用,這時間可以用以下指令變更 vdi 檔的 uuid

/opt/VirtualBox/VBoxManage internalcommands sethduuid <myvdifile>

本篇主要參考這個 網址

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Ubuntu 9.04 安裝 VMware Server 2.0.1 Build 156745

最近在 Ubuntu 9.04 上安裝 VMware Server 2.0.1 Build 156745,執行 vmware-config.pl 時出現 vsock 模組 compile 錯誤的訊息,雖然最後可以進 web interface,但是 VMware Server 的反應很慢,硬碟空間的顯示也不正確。最後在 Ubuntu 的討論區找到 這篇文章 第53篇的 patch 在 Ubuntu 9.04 x64、kernel 2.6.28-14-generic #47 的系統測試後確定是有效的,有同樣困擾的人可以試看看。

附記:

Windows guest 在安裝完 VMware Tools 後會有一個 shrink disk 的功能把 vmdk 檔縮小,我在執行這個功能時出現 ‘The attempt to shrink the disk failed’ 的錯誤,由於縮小的過程是邊讀舊的 vmdk 檔,邊寫出新的 vmdk 檔,我的情形是原 vmdk 檔有 9G 但是硬碟空間只剩 7~8 G 所以沒有足夠的空間可以執行 shrink disk 作業。

Virtualbox 的 VM 是否有啟用 IntelVT-x 或 AMD-V 在 GUI 右下方會有狀態顯示,VMWare 要啟用 IntelVT-x 或 AMD-V 可以在 vmx 設定檔加入以下這行

monitor.virtual_exec = “hardware”

更詳細的說明文件在這個 URL

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

當 virtualbox 遇上 media disconnected

當我們在 notebook 準備好一個 virtual machine 要在辦公室外啟動或在客戶端 demo 時,可能因為所處環境沒有無線網路可用或者客戶端無法提供網路,這時候看著畫面上

Media State . . . . . . . . . . . : Media disconnected

怎麼辦呢?

Linux 沒有這個問題,只要網路卡正常,ethernet 都是 up 的,virtualbox 2.1 版之後主端界面採用 packet filter 機制,連 bridge 都不用設了。Windows 部份找了一陣子資料,有2個可行的作法

  1. 安裝 Microsoft Loopback adapter,把 virtual machine 的主端界面設為 Loopback adapter 就可以了,只是這個 Loopback adapter 不能用 127 開頭的網段和 Linux 的習慣不太一樣
  2. 在 ethernet port 裝個 loopback 接頭,讓 windows 的網路 port up 起來,這個我就沒試過了,也沒有看過那種接頭,有興趣的人可以注意一下

2009.5.9 加註

virtualbox 2.2 版以後新增了 VirtualBox Host-Only Network 界面,基本上就是一個 Loopback adapter,所以不需要另外再加裝 Microsoft 的 Loopback adapter driver 了。

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

設定 virtualbox 連接 host OS 及 guest OS 網路 – Ubuntu 8.10

主要的概念跟前一篇介紹 virtualbox 在 Windows 下網路設定的文章非常類似,都是運用 bridge 的方法,只是不同作業系統操作方式不一樣,步驟如下:

步驟一、 安裝套件

所需的套件 ubuntu 8.10 都已內建,清單如下

  • virtualbox-ose
  • bridge-utils

步驟二、 ubuntu 網路設定

ubuntu 8.10 內建新版的 NetworkManager 在一般使用狀況下,非常方便,但是仍有不少問題。這例子裡我們採用手動設定方式,並假設你的 ethernet device 是 eth0,bridge device 為 br0,您必須手動修改 /etc/network/interfaces,加入以下設定

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
bridge_ports eth0 vbox0

步驟三、 virtualbox 網路設定

由於我們的架構是把 virtual machine 的虛擬網卡和 ubuntu 的實體網卡利用 bridge 方式放在同一個網段內,virtualbox 在啟動時必須為每個 virtual machine 建立一個對應的虛擬網卡,通常命名為 vbox0、vbox1,etc。

這部份的設定要修改 /etc/vbox/interfaces,每個 virtual machine 加入一行如下設定:

vbox0 <your username> br0
.

.
步驟四、開放建立虛擬網卡權限

這部份要修改 /etc/udev/rules.d/20-names.rules,讓 virtualbox 每次系統啟動時有權限建立步驟3所定義的網卡

將以下這行
KERNEL==”tun”,                          NAME=”net/%k”
改成
KERNEL==”tun”,                          NAME=”net/%k”, GROUP=”<your user group>”, MODE=”0660″

步驟五、完成設定

完成以上步驟後,重新啟動 ubuntu,讓 ubuntu 完成所有網路設定。接下來只要修改 virtual machine 的網路設定,將 NAT mode 改成 Host Interface mode,interface name 則從 vbox0、vbox1,etc 挑一個填入。啟動 virtual machine 後,將 virtual machine 的 IP 改成 bridge 網段的一個 IP 即可。

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

設定 virtualbox 連接 host OS 及 guest OS 網路 – Windows

virtualbox 的虛擬機器 (VM) 預設的網路模式為 NAT,只要 host OS 有連上 internet,guest OS 不需額外設定即可連上 internet。但是有一個比較不方便的地方就是 host 和 guest 的資料交換。

這時候可以利用作業系統的 bridge 機制將 host OS 及 guest OS 放在同一個網段,雙方就可以互相存取彼此的資料,以 windows host OS 為例,所需步驟如下:

  1. 在 virtualbox VM 的網路設定先新增一個主端界面,這時候會自動安裝一個網路驅動程式,並且建立一個虛擬網卡 VirtualBox 主端介面 1
  2. 在 windows 的網路連線清單中,先按住 Ctrl 鍵同時選擇您的 ethernet 界面卡及新產生的 VirtualBox 主端界面1,然後點滑鼠右鍵選擇 新增到橋接器 選項
  3. 完成步驟2後如果以 ipconfig /all 來查看,原本的 ethernet 界面卡會被 Ethernet adapter 網路橋接器 取代,這時候您可以手動設定 Ethernet adapter 網路橋接器 的 IP 或指定 DHCP 自動取得 IP
  4. 啟動 VM 後將 VM 的 IP 設定成和 Ethernet adapter 網路橋接器 同一網段,這時候 host OS 跟 guest OS 應該可以互相 ping 的到,host OS 的 IP 就是 Ethernet adapter 網路橋接器 的 IP,這時候2個 OS 就可以互相傳輸資料了

2009.9.2 加註

Virtualbox 在 3.0 版後簡化了網路設定,要設定 bridge 只需在網路設定頁面 Attached to:  選擇 Bridged Adapter,Name: 選擇要和 VM 作 bridge 的實體網卡即可。

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
Loading...