virtualbox的分支備份功能

2022-06-01 20:24:11 字數 3314 閱讀 3189

由於之前把系統搞壞了鬱悶的又重灌了下,後來長了個記性,進行備份下

snapshots:系統快照,儲存虛擬系統在某一時刻的全部執行狀態,以後可以將虛擬系統恢復到建立此快照時的狀態。在virtualbox中文版中,snapshots被翻譯成「備份」。

使用虛擬機器最方便的一點是可以隨時備份系統狀態(建立快照),然後就可以放心地折騰了,即使把虛擬系統搞壞了也可以隨時恢復到備份時的狀態,甚至是正在執行中的狀態,比「一鍵還原」還方便。

不過virtualbox以往的版本與vmware等其他虛擬機器軟體相比有乙個不足之處,就是它只能恢復到最近乙個備份的狀態,如果要恢復到更久以前的備份,得先刪除最近的備份才行。而前幾天剛剛發布的virtualbox 3.1版,增加了分支快照(branched snapshots)功能,可以將虛擬系統直接恢復到任意時間的備份,並且保留最近的備份,當修改了過去備份的狀態後,可以在原有的備份時間線上建立乙個分支,並且可以隨時在不同分支上繼續執行系統。

對於沒有用過這個功能的人,可能用具體的例子來說明會更容易理解一些。

下面是我剛在虛擬機器中裝好的乙個系統,我建立了乙個備份,命名為「新裝系統」。 

當我在這個系統中進行了一些操作之後,當前狀態相對於「新裝系統」的狀態已經改變了,我可以基於這個狀態再建立乙個備份,命名為「備份1」。

我可以根據需要繼續在不同的時間點建立備份,如「備份2」、「備份3」、「備份4」。到目前為止,操作和virtualbox以前的版本是一樣的,在以前的版本中,我只可以恢復到最近乙個備份——「備份4」,不能直接恢復到更早的備份。

而在3.1以後的版本中,可以直接恢復到「備份1」,或者任何乙個備份,而不會對其他已經建立的備份產生影響。

這個時候,虛擬系統的當前狀態就是基於「備份1」的了,在備份時間線上產生了乙個分支。

在這個分支上,可以再建立新的備份,如「備份a」、「備份b」、「備份c」。

現在,虛擬系統的當前狀態是基於「備份c」的,不過可以隨時切換到另乙個分支,比如恢復到「備份4」的狀態。

根據同樣的操作,可以恢復到任意時刻的備份繼續執行,並建立新的分支。

分支快照功能的好處是,我們可以在乙個虛擬系統中儲存不同的狀態,比如乙個用於工作,乙個用於娛樂,乙個用於測試軟體等等。可以隨時在這些不同的狀態中切換,而不用建立多個虛擬系統了。

當然,雖然備份狀態可以有很多,但是當前狀態只能有乙個,也就是說,這些不同的狀態是不能同時執行的。如果需要同時執行多個不同的環境,就得建立多個虛擬系統了,可以參考我之前的文章《在virtualbox裡複製vdi檔案》。

《在virtualbox裡複製vdi檔案》

在virtualbox的快速修復介面裡,可以隨時生成當前狀態的備份。當生成了備份之後,會在snapshots目錄下建立乙個新的vdi檔案,之後對當前狀態所做的一切操作都將針對最新的vdi檔案,而vdi目錄下的初始vdi檔案就不會再改變了。

我一般在裝好guest os並做完打補丁、安裝常用軟體等操作後就建立乙個備份,如果guest os發生了問題可以隨時恢復到乾淨的系統。但是有時需要在不同的軟體環境下做不同的事情,開始時我希望能用乙個vdi檔案生成兩個不同的備份並分別配置成不同的環境,但是發現virtualbox的備份是線性的,也就是說只能針對當前狀態做乙個備份,而恢復備份時也只能恢復到上乙個備份的狀態,不能同時存在兩個不同的當前狀態。

沒有辦法,只能把初始的vdi檔案複製出來乙份用於另外的環境。但是很快發現,複製出來的vdi檔案無法在虛擬介質管理器中註冊,因為每個vdi檔案都有乙個唯一的uuid,而virtualbox不允許註冊重複的uuid。

看了幫助檔案後,發現vboxmanage有乙個clonevdi方法可以轉殖vdi檔案,並賦予它乙個新的uuid。具體用法是在命令列裡執行:

vboxmanage clonevdi 原始vdi檔名 新的vdi檔名

直接寫vdi檔名即可,不用指明vdi檔案所在路徑,新的檔案會在全域性設定中指定的vdi目錄下建立。如果vdi檔名裡帶有空格,應該在兩端加上雙引號。vboxmanage命令位於virtualbox安裝目錄下,預設路徑是c:\program files\sun\xvm virtualbox。

用這個方法建立了新的vdi檔案後,就可以正常註冊並在另乙個虛擬機器中使用了。

2008-12-25更新:本月17日virtualbox發布了2.10版,在這個版本裡,vboxmanage clonevdi命令改為了vboxmanage clonehd,它的用法如下:

vboxmanage clonehd |

[-format vdi|vmdk|vhd|raw|]

[-remember]

可以看到,使用-format引數,除了vdi格式的虛擬磁碟檔案以外,它還支援vmdk(vmware)、vhd(virtual pc)等格式。為了向下相容,它仍然支援使用vboxmanage clonevdi命令來複製vdi格式的檔案。

2009-08-09更新:

在virtualbox的最新版本中,已經可以將同乙個vdi檔案用於多個虛擬系統了。使用方法是:先按正常方式建立乙個虛擬系統,建立或選擇乙個vdi檔案,然後做乙個備份;接下來建立第二個虛擬系統,再次選擇這個vdi檔案,同樣也建立乙個備份。這樣,兩個虛擬系統就可以各自在不同的環境下執行了,初始的vdi檔案是不變的,各自的更改記錄在備份檔案中。

2009-12-05更新:

在剛剛發布的virtualbox 3.1版中,增加了分支快照(branched snapshots)功能,可以恢復任意時刻的備份了,請參考《virtualbox分支快照功能的使用》。

jenkins單分支版本備份

jenkins單分支版本備份 上文jenkins發布控制版本號和同步 後面的問題提到,發布的版本號和分支沒有對應上,表現在如果從生產分支切到別的分支,版本號顯示會失敗。後來查到用外掛程式 active choices parameter來控制。配置如下 我以為做發布備份也很順利,編譯後壓縮包名字格式...

VirtualBox常用的命令

virtualbox常用的命令 在linux下,對於剛開始接觸virtualbox的小菜們都是通過圖形介面來建立vm的,這對於用過windows的人來說是比較容易的一件事,但是建立好vm之後我們需要在宿主機上通過命令來監控各個vm,下面介紹幾個我用過,也比較常用的幾個命令 1.檢視當前已有的vm 檢...

ubuntu下使用VirtualBox的相關問題

最近一直在搗鼓ubuntu下的虛擬機器,目前採用ubuntu host winxp guest 的方式。在vbox中使用xp系統一直感覺操作很不流暢,調整了螢幕解析度和滑鼠速度均沒有改善,最近由於虛擬機器與實體機之間的檔案共享問題,再次整理了使用虛擬機器的問題,以下有三個問題需要我寫下來方便以後檢視...