Virtualbox
VirtualBox:快照時不保留連接的設備更改(如何?)
(這類似於我的 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 掛載到客戶機上。
在製作快照之前,您必須解除安裝設備。否則,在恢復時,設備的狀態將與來賓核心中磁碟記憶體的狀態不匹配,從而導致大量損壞。
解除安裝設備後,在創建快照之前將其與虛擬機分離。