Virtualbox

VirtualBox:快照時不保留連接的設備更改(如何?)

  • December 12, 2016

(這類似於我的 How to tell virsh: save state of VM and vdisk, but not attach disk? but for VirtualBox and raw devices)

如何告訴 VirtualBox 在快照時不要保留原始連接設備的狀態?細節:

  • 我在主機上創建了一個 VMDK,如下所示:

VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb

並附在客人身上。

  • /dev/sdb 現在在客戶機上顯示為純設備文件。
  • 我的聰明想法:掛載/dev/sdb,我在那裡所做的任何更改都將保留在快照中,因為VirtualBox不會保存/dev/sdb的狀態
  • 我錯了。預設情況下,VirtualBox 將保存 /dev/sdb 的狀態:如果您恢復到較早的快照,您在 /dev/sdb 上所做的任何事情都將被清除。
  • 換句話說,我的狡猾計劃失敗了。
  • 有什麼辦法讓它工作嗎?我意識到我可以在主機上掛載 /dev/sdb,然後讓來賓掛載它或對其進行 sshfs 或其他什麼,但是是否有一個 VirtualBox 選項顯示“快照時不保留/恢復 /dev/sdb 狀態”?
  • 我正在嘗試使用 VM 來確定我想如何安裝 CentOS 7.2,並且,理想情況下,我希望來賓盡可能接近真實係統。

我要感謝@gilles 的出色回答,但事實證明它不太奏效。

當我關閉時,分離/dev/sdb,拍攝快照,然後恢復快照並重新附加/dev/sdb,我看到了這個(點擊查看完整大小):

在此處輸入圖像描述

基本上,VirtualBox 拒絕接觸 /dev/sdb,即使我附加了它。相反,它使用差異磁碟來儲存我所做的任何更改,並且在我恢復快照時這些更改會被還原。

您實際上可以在媒體管理器中看到差異磁碟:

在此處輸入圖像描述

但我找不到對它們做任何有用的方法。

我將留下我的讚成票和對 gilles 答案的複選標記,但將返回使用更正常的方法將 /dev/sdb 掛載到客戶機上。

在製作快照之前,您必須解除安裝設備。否則,在恢復時,設備的狀態將與來賓核心中磁碟記憶體的狀態不匹配,從而導致大量損壞。

解除安裝設備後,在創建快照之前將其與虛擬機分離。

引用自:https://unix.stackexchange.com/questions/329306