1. 程式人生 > >VirtualBox使用vboxmanage clonehd實現虛擬機器克隆

VirtualBox使用vboxmanage clonehd實現虛擬機器克隆

問題背景:
由於開發需要,我就想克隆1個或N個虛擬機器,一般在裝好Guest OS並做完打補丁、安裝常用軟體等操作後都會建立一個備份,如果Guest OS發生了問題可以隨時恢復到乾淨的系統。但是有時需要在不同的軟體環境下做不同的事情,開始時我希望能用一個VDI檔案生成兩個不同的備份並分別配置成 不同的環境,但是發現VirtualBox的備份是線性的,也就是說只能針對當前狀態做一個備份,而恢復備份時也只能恢復到上一個備份的狀態,不能同時存 在兩個不同的當前狀態。沒有辦法,只能把初始的VDI檔案複製出來一份用於另外的環境。但是很快發現,複製出來的VDI檔案無法在虛擬介質管理器中註冊, 因為每個VDI檔案都有一個唯一的UUID,而VirtualBox不允許註冊重複的
UUID。

解決方法:

Virtualbox雖然在圖形介面下沒有主機克隆的功能,但是在命令列下還是提供這個功能的,在VirtualBox的安裝目錄下執行"VBoxManage clonevdi"命令就可以實現虛擬機器的克隆。

下面以我自己的實踐過程為例說明下具體克隆過程:

1. 進入命令提示符:開始--執行---cmd

2. 切換到VirtualBox預設安裝目錄:

C:\Users\Administrator>  D:
D:\Program Files\Oracle\VirtualBox\

3. 執行VirtualBox克隆命令開始克隆,該克隆命令的具體格式如下:

 VBoxManage clonevdi   "/oldpath/to/VDI檔名" "/newpath/to/VDI檔名"

D:\Program Files\Oracle\VirtualBox>VBoxManage clonehd  "D:/virtual-os/ubuntu.vdi"   "D:/virtual-os/ubuntu_2.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Clone hard disk created in format 'VDI'. UUID: 85f8934b-a29a-43a6-8262-7134b40bdfeb


4. 執行完VBoxManage clonevdi 命令後會在Virtualbox的指定目錄下生成一個新的vdi檔案(我這是ubuntu_2.vdi),然後新建一個虛擬機器使用該虛擬磁碟就可以實現虛擬機器克隆



學習總結:
1.  注意
: 執行命令 vboxmanage  clonehd 時命令vboxmanage後面不需要加.exe字尾
2.  你可能克隆的時候回遇到如下圖所示錯誤:


產生的原因是Vbox處於執行狀態或休眠狀態,所以只要關閉Vbox這個問題就解決啦~~
3. 
vboxmanage是一個很有用的工具,使用它還可以對vdi檔案進行壓縮:
vboxmanage modifyhd ubuntu.vdi --compact
4. 同一個Virtualbox軟體裡不可直接複製vdi檔案再次使用,若要將vdi檔案複製重用, 必須採用clone命令:
vboxmanage clonehd /path/to/old.vdi  /path/to/new.vdi
5. 老版本的Virtualbox使用clonevdi引數,新版本改用clonehd
引數