⑴ VMware快照的VMware快照修復VMDK文件
當創建VMware快照時,實際上我們並沒有復制原始磁碟當中的任何數據。而是將原始磁碟設置為VMware快照讀狀態,並且創建一個VMware快照回滾日誌——有時也稱之為增量磁碟,這種增量磁碟其實就是在VMware快照創建之後,針對任何虛擬機寫入操作所產生的佔位符。
圖1.增量文件當中包含的僅僅是快照創建之後的虛擬機變化部分
圖一展示了VMware快照的工作流程。假設磁碟當中包含了一個單詞「SNAPSHOT」,並且每個字母都位於自己的VMware快照磁碟塊當中。當我們創建磁碟VMware快照的時候,原始磁碟變為只讀狀態,一個新的增量VMDK文件被創建。這時第二個塊變為「L」,並且「S」被加入到第九個塊當中,這樣就產生了新的單詞「SLAPSHOTS」。為了保證所有VMware快照文件都是安全的,我們需要進行一系列操作。我們可以刪除VMware快照,這樣將會簡單地將新的塊合並到原始的VMDK文件當中,並且將「SLAPSHOTS」提交給虛擬機——或者我們可以回滾到另外一個時間點,比如磁碟剛剛讀入「SNAPSHOT」的時候。每次創建VMware快照的時候,都會創建一個新的增量磁碟,保證我們能夠回滾到VMware快照鏈當中的任何時間點。 如果原始VMDK文件遭到破壞或者被刪除,那麼VMware快照管理員就會面臨很多棘手問題。正如圖二所示,包含「SNAPSHOT」的原始VMware快照磁碟已經消失。現在我們手中只剩下了包含字母「L」和「S」的增量磁碟,而指向磁碟的元數據(metadta)已經消失。
圖2.如果只使用損壞或者丟失VMDK文件的VMware快照,那麼無法重建原始文件。也許你已經得出了結論:如果包含「SNAPSHOT」的原始VMware快照磁碟或者原始塊丟失,那麼使用增量磁碟當中的部分數據無法重建任何東西。 僅僅使用VMware快照文件來恢復丟失的VMDK文件是不可能的,但是根據丟失VMDK文件的不同,我們可能擁有幾種解決方案。一個VMware快照虛擬機磁碟由兩個不同的文件組成:VMDK文件——虛擬磁碟的最重要組成部分——保存了所有數據,以及描述符文件——VMX文件——為虛擬機配置文件提供相關VMware快照磁碟信息。如果VMDK文件丟失,那麼只能寄希望於保存了VMware快照備份文件,而如果描述符文件丟失,那麼可以使用ESXi命令行進行恢復。
⑵ VMware快照文件存放位置在哪裡
VMware的快照其實就是一個新的vmdk文件。
其原理就是創建快照的那個時間點開始,新的數據的記錄在新的vmdk文件中了。
存儲位置就是當前虛擬機的存儲目錄。
⑶ VMware虛擬機中的幾個常用文件的介紹
1、vmx文件:表示虛擬系統文件,我們用虛擬機程序打開這個文件以啟動虛擬系統。
2、vmem文件:表示虛擬內存文件,與pagefile.sys(亦稱分頁文件)同。當虛擬系統執行關機操作後,vmem文件消失,但掛起關閉時,不消失。
3、vmdk文件:表示虛擬機的一個虛擬磁碟。
4、vmss文件:執行掛起操作後產生的文件。(相當於一個快照文件?)
5、當運行一個「虛擬系統」時,為防止該系統被另外一個VMware程序打開,導致數據被修改或損壞,VMware會自動在該「虛擬系統」所在的文件夾下,生成三個鎖定文件
(虛擬系統鎖定,虛擬磁碟鎖定,虛擬內存鎖定),分別為:
」systemType.vmx.lck」,」systemType.vmdk.lck」,」systemTyep.vmem.lck」。
常見問題
雖然VMware這種鎖定機制能夠很好地防止同一個虛擬系統文件被多個VMware運行程序運行,避免了數據被破壞。但它也帶來了一些問題。即當出現斷電或其它意外情況,可能導致某個虛擬系統文件無法正常打開。原因往往在於:該虛擬系統文件沒有解鎖。解決辦法:只要把三個lck文件夾刪去即可。
⑷ 如何清除VMware Server快照文件(下)
這些步驟對於從運行在Windows XP SP2上的虛擬機刪除快照是有效的,不過這些步驟可以應用在任何操作系統上,只要「dd」程序已經傳輸到這個操作系統上。 1.關閉子操作系統和虛擬機。 2.添加一個與之前硬碟驅動器大小相等的硬碟驅動器到虛擬機。在添加時,請不要將其加到與之前硬碟驅動器相同的位置(這將是包含虛擬機文件的目錄)。在虛擬機目錄里創建一個叫做「disk1」的子文件夾,將新硬碟驅動器添加到這里。這樣做的話,以後區分這兩個驅動會更容易些。在子操作系統里區分這兩個硬碟驅動很容易,因為它們在Windows里分別是「Disk 0」與「Disk 1」,在UNIX或Linux里分別是「/dev/sda」與「/dev/sdb」。 3.啟動虛擬機和子操作系統。 4.登錄操作系統,使用與原始磁碟相同文件系統類型初始化和格式化新磁碟。 5.使用「dd」塊級復制原始磁碟的內容到新磁碟。「dd」包含在UNIX 與Linux里,不在Windows里。Windows里一個叫做WinDD的程序有相同的功能。 6.關閉子操作系統和虛擬機。 7.從虛擬機移除這兩個硬碟驅動器。 8.在虛擬機目錄里創建一個叫做「disk0」的子文件夾,並將虛擬機目錄里的所有VMDK文件移到這個子文件夾里。 9.使用命令行的vmware-vdiskmanager命令擴展新硬碟到理想的大小。句法是這樣的:vmware-vdiskmanager -x SIZE VMDK_FILE_PATH。這個命令位於Windows的「C:Program FilesVMwareVMware Servervmware-vdiskmanager.exe」和Linux的「/usr/bin/vmware-vdiskmanager」。 盡管VMware警告這個命令不應該用於擴展Windows系統磁碟,不過還是很好用。並且就算出現問題,原始硬碟文件也不會被刪除。 10.將新硬碟驅動器添加回虛擬機(現在使用驅動自身的目錄)。 11.如果虛擬機子操作系統是Windows,掛載Windows XP/Vista ISO鏡像;如果子操作系統是Linux或Windows,掛載Linux Live CD。 12.開啟虛擬機,確保在啟動期間按下「ESC」鍵,以便出現提示,允許選擇啟動設備。從掛載的ISO鏡像啟動。 13.Windows XP和Windows Vista安裝程序都有退出命令提示符的功能。Linux Live CD都能訪問一個終端。在命令行使用像Windows的「diskpart」或Linux的「parted」磁碟工具程序在虛擬機新硬碟上進行第一次分區。用「diskpart」進行第一次分區的句法是: diskpart select disk 0 select partition 1 active 使用「parted」進行第一次分區的句法是: parted set 1 boot on 請記住,這些命令假定硬碟有一個分區,並且這個分區是活動/引導分區。這些步驟背後的想法仍然是健全其他分區計劃,不過實際的命令必須被修改,以便反映在使用的分區計劃。 14.卸載ISO鏡像並重新啟動虛擬機。 15.虛擬機現在應該從新硬碟啟動子操作系統。如果沒有啟動的話,那麼關閉虛擬機並移除新硬碟驅動。添加原始硬碟驅動並啟動虛擬機。子操作系統啟動原始硬碟驅動應該沒有問題。 16.如果虛擬機成功啟動,請繼續關閉子操作系統和虛擬機。 17.從虛擬機移除新硬碟驅動器。從「disk1」子文件夾移動新硬碟驅動的文件到虛擬機根級別的文件夾。刪除「disk1」目錄。將新硬體驅動添加回虛擬機。 18.這時候通過刪除「disk0」目錄來刪除原始硬碟驅動的VMDK文件是很安全的。將這些文件備份到外部硬碟驅動是個好方法,並把這些文件保留幾周,防止這個操作萬一出現任何問題可以恢復。 19.啟動虛擬機,並啟動子操作系統。