
我想要製作一套由5 個虛擬機組成的“套件”,所有都是Ubuntu Server 12.04 來賓作業系統,但在作業系統之上具有完全不同的軟體堆疊(一台伺服器是安裝了Subversion、Hudson 等的「建置伺服器」)其上;另一台伺服器是帶有 JBoss 的應用程式伺服器等)。
安裝和配置 Ubuntu Server 需要幾個小時。如果可能的話,我只想執行一次(以獲得安裝在虛擬機器上的作業系統的「基本」版本),然後將此「基本」版本複製到其他 4 個版本。機器3 小時,只需專注於為每台伺服器安裝和設定應用程式。
創建虛擬機器時,我看到創建了三個檔案:
my-vm.vbox
- 我假設這是虛擬機my-vm.vbox-prev
- 不知道這是什麼my-vm.vdi
- 我假設這是安裝來賓作業系統(我的“基礎”)的實際磁碟
不幸的是,我已經建立了所有 5 個虛擬機,並且正在第一台虛擬機上安裝 Ubuntu Server,所以我的設定如下:
build-srv.vbox
,build-srv.vbox-prev
,build-srv.vdi
(VDI 已初始化,但裡面什麼都沒有)app-srv.vbox
,app-srv.vbox-prev
,app-srv.vdi
(相同,已初始化,但其中沒有任何內容)- 等等...(對於所有 5 個)
我正在建置伺服器上安裝 Ubuntu Server ( build-srv
)。我是希望一旦我完成,所有配置資訊將被包含到build-srv.vdi
.理論上,我應該能夠複製並貼上build-srv.vdi
到其他每台伺服器,然後交換它們各自的 VDI,對吧?
我確信我還必須進入虛擬機器設定並以某種方式更改 VDI,但我什至不確定我是否走在正確的軌道上。
我所需要的可能嗎?如果是這樣,我需要做什麼才能為每個虛擬機器配置我目前所在的作業系統實例的相同副本?如果沒有,我有什麼選擇(除了為每個虛擬機器重複相同的 2 小時安裝!)?先致謝!
答案1
每個 VDI 檔案都包含一個 UUID 形式的識別碼。
Virtualbox 將這些 UUID 記錄到資料庫中,並拒絕使用您剛剛複製的 VDI(但這在另一台電腦上沒問題,因為它不會記錄有關此 UUID 的任何資訊)。
我知道兩種方法:
- 複製 VDI(使用檔案管理器或命令列),然後使用vboxmanage internalcommands sethduuid "path/yourdisk.vdi"
,您將擁有該 VDI 的全新 UUID
- 或使用 Virtualbox mediamanager(進入選單)。選擇要複製的磁碟...並點擊“複製”按鈕。它將輕鬆完成相同的事情
my-vm.vbox
- 這是描述虛擬機器的 XML 檔案。您可以使用文字編輯器或網頁瀏覽器開啟它my-vm.vbox-prev
- 這是 my-vm.vbox 的備份my-vm.vdi
- 這是虛擬磁碟
編輯:該copy
功能似乎只存在於 Windows 上。我的 Linux 盒子沒有,我的 Windows 盒子有
答案2
您可能正在尋找的是多重連接磁碟模式 - 可以在建立和配置初始磁碟映像後套用。然後,您可以將其用作多個虛擬機器的核心,每個虛擬機器都將擁有基於原始版本的自己的差異映像 - 無需複製或克隆。請參閱以下位置的文件:http://www.virtualbox.org/manual/ch05.html#hdimagewrites