共計 2656 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要講解了“怎么利用 flat.vmdk 文件恢復 ESXI 虛擬機的 vmdk 文件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“怎么利用 flat.vmdk 文件恢復 ESXI 虛擬機的 vmdk 文件”吧!
錯誤描述
在 vSphere 上,一次重啟虛擬服務器時出現啟動不了,提示找不到 vmdk 虛擬磁盤文件
原因分析
查看這臺虛擬服務器的摘要信息,對比 datastore 上其他可用的虛擬機,發現損壞的服務器上確實缺少一個 vmdk 磁盤文件,但是可以看見一個 50G 的 xxx-flat.vmdk 文件;而正常的服務器只有 xxx.vmdk,沒有 xxx-flat.vmdk,關機之后兩個文件都存在,而且真實的磁盤容量從 vmdk 轉移到了 xxx-flat.vmdk。
虛擬主機在運行的時候,實際在使用的是 xxx-flat.vmdk,然而 xxx.vmdk 是可以同時被刪除的,才導致了問題。
這里需要說明,虛擬機的每個磁盤驅動器都包含了一對.vmdk 文件。一個是文本文件,包含了關于虛擬硬盤的描述數據;另外一個是磁盤的實際內容。例如,一個名為 examplevm 的虛擬機連接有一個硬盤。這個磁盤由如下兩個文件構成:一個小于 1KB 的 examplevm.vmdk 描述文件和一個 10GB 大小的 examplevm- flat.vmdk 平面(數據)文件,該文件包含虛擬機的實際數據,而這些數據又是以二進制的形式存放在物理磁盤上,examplevm.vmdk 描述文件就是描述這種映射關系的。.
解決辦法
1) 用 ssh 登錄 vsphere 主機,查找 xxx-flat.vmdk 文件所在的位置以及目錄,并記錄文件的大小
~ # find / -name 新建虛擬機 -flat.vmdk
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 / 新建虛擬機 -flat.vmdk
~ # ls -l /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 / 新建虛擬機 -flat.vmdk
-rw------- 1 root root 53687091200 Apr 16 09:13 /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 / 新建虛擬機 -flat.vmdk
注意,ESXi5 默認沒有開啟 ssh,需要通過 vsphere client 登錄服務器,【配置】【安全配置文件】【服務 - 屬性】手動開啟。
2) 重命名 xxx-flat.vmdk 文件
~# cd /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 /
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機_1 # mv 新建虛擬機 -flat.vmdk tmp_新建虛擬機 -flat.vmdk
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 # ls -la
drwxr-xr-x 1 root root 1680 Apr 21 05:47 .
drwxr-xr-t 1 root root 2660 Apr 18 03:16 ..
-rw-r--r-- 1 root root 102076 Apr 18 10:05 vmware.log
-rw------- 1 root root 96468992 Apr 18 05:43 vmx- 新建虛擬機 -578288005-1.vswp
-rw------- 1 root root 2147483648 Apr 18 05:43 新建虛擬機 -2277f985.vswp
-rw------- 1 root root 53687091200 Apr 21 05:47 新建虛擬機 -flat.vmdk
-rw------- 1 root root 8684 Apr 21 05:47 新建虛擬機.nvram
-rw------- 1 root root 503 Apr 18 05:44 新建虛擬機.vmdk
-rw-r--r-- 1 root root 0 Apr 16 09:13 新建虛擬機.vmsd
-rwxr-xr-- 1 root root 3690 Apr 18 05:43 新建虛擬機.vmx
-rw------- 1 root root 0 Apr 18 05:43 新建虛擬機.vmx.lck
-rwxr-xr-- 1 root root 3690 Apr 18 05:43 新建虛擬機.vmx~
3) 在虛擬機目錄下創建 xxx.vmdk 文件,大小要和 xxx-flat.vmdk 一樣大
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 # vmkfstools -c 53687091200 -a lsilogic 新建虛擬機.vmdk
Create: 100% done.
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 # ls -la *vmdk
-rw------- 1 root root 53687091200 Apr 21 05:49 新建虛擬機 -flat.vmdk
-rw------- 1 root root 503 Apr 18 05:44 新建虛擬機.vmdk
4) 將原來的 (tmp_)xxx-flat.vmdk 覆蓋掉剛創建的同樣大小的 xxx-flat.vmdk
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虛擬機 # mv tmp_新建虛擬機 -flat.vmdk 新建虛擬機 -flat.vmdk
重命名操作很快完成,啟動虛擬機既可以恢復。(改完名后新建虛擬機 -flat.vmdk 文件就不見了)
感謝各位的閱讀,以上就是“怎么利用 flat.vmdk 文件恢復 ESXI 虛擬機的 vmdk 文件”的內容了,經過本文的學習后,相信大家對怎么利用 flat.vmdk 文件恢復 ESXI 虛擬機的 vmdk 文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!