[Linux] 在 CentOS 7 上讀取 VMware ESXi 5.0 vmfs 的檔案
之前曾經在 Ubuntu 上讀取 VMware ESXi 5.0 vmfs 的檔案,
然後將讀取出來的 VM 檔案用 VMware Player 打開,也正常運作了一陣子~
不過不知道為什麼,這陣子那個 VM 又掛掉了…
決定改在 CentOS 7 上重新做一次,先把 vmfs 的檔案讀出來~
參考資料:
Mount VMFS on CentOS 7 or another Linux distro
VMFS: Unsupported version 5 – How to mount VMFS5 on Ubuntu
1. 安裝 vmfs-tools
在 CentOS 上面不像 Ubuntu 已經有個編譯好的 vmfs-tools 套件,得自己安裝~
首先到 vmfs-tools 的官網下載 vmfs-tools-0.2.5.tar.gz,
接著先安裝一些相關聯的套件:
sudo yum -y install libuuid-devel fuse-devel asciidoc
解開剛剛抓下來的 vmfs-tools-0.2.5.tar.gz,執行 ./configure, make, make install,
就能將 vmfs-tools 編譯並安裝好了:
tar zxvf vmfs-tools-0.2.5.tar.gz
cd vmfs-tools-0.2.5 ./configure make sudo make install
在 make install 時,在我的機器上有出現一些錯誤訊息,
暫時不曉得要如何解決,不過對於接下來的操作沒有影響,
因為最重要的 vmfs-fuse 這個執行檔已經安裝成功了:
testuser@localhost ~/Downloads/vmfs-tools-0.2.5 $ sudo make install install -s -m 0755 debugvmfs/debugvmfs /usr/local/sbin/ install -s -m 0755 vmfs-lvm/vmfs-lvm /usr/local/sbin/ install -s -m 0755 vmfs-fuse/vmfs-fuse /usr/local/sbin/ install -s -m 0755 fsck.vmfs/fsck.vmfs /usr/local/sbin/ make: *** No rule to make target `debugvmfs/debugvmfs.8', needed by `/usr/local/share/man/man8/debugvmfs.8'. Stop.
2. 將 ESXi 的硬碟接上 CentOS 7 機器
我是用一個硬碟抽取盒,插入 ESXi 上的硬碟後,用 USB 線連接到 CentOS 7 機器上~
接著先用 fdisk -l 看看這個硬碟的設備代號:
testuser@localhost ~/Downloads/vmfs-tools-0.2.5 $ sudo fdisk -l Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x0002dc6b Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 1953523711 976248832 8e Linux LVM ...... Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt # Start End Size Type Name 1 64 8191 4M EFI System 2 1843200 10229759 4G Microsoft basic 3 10229760 1953525134 926.7G unknown 5 8224 520191 250M Microsoft basic 6 520224 1032191 250M Microsoft basic 7 1032224 1257471 110M unknown 8 1257504 1843199 286M Microsoft basic
這邊要自已判斷一下,最簡單的是用硬碟的大小來找,
像我的 ESXi 硬碟是 1000GB,因此就是上面的 /dev/sdb,
其中裡面有 1~8 個分割區,通常最大的那個就是放 vmfs 檔案結構的分割區,
本例中是第 3 個 (926.7G),對應的設備代號是 /dev/sdb3~
3. 掛載 vmfs 檔案結構
先建立一個目錄 (如 vmfs) 做為掛載點,
接著執行 /usr/local/sbin/vmfs-fuse /dev/sdb3 vmfs,
就能把包含 vmfs 檔案結構的 /dev/sdb3 分割區掛載到 vmfs 這個目錄了:
mkdir vmfs sudo /usr/local/sbin/vmfs-fuse /dev/sdb3 vmfs
掛載之後,用 ls 就能看到原本 ESXi 裡面儲存的 VM,
本例中有 Wiki 和 Windows 7 Enterprise 兩台 VM:
testuser@localhost ~/Downloads $ sudo ls -l vmfs
total 711768
drwxr-xr-x. 2 root root 4620 Sep 19 01:12 Wiki
drwxr-xr-x. 2 root root 2100 Mar 26 2013 Windows 7 Enterprise
想要將 VM 備份出來,直接複製出來就行了,
像我用 rsync –progress 是為了在傳檔時還可以看到傳輸的進度:
rsync --progress -r vmfs/Wiki ./
複製出來的 VM 目錄,用 VMware Player 或是 VMware Workstation 直接開啟 .vmx,
就能執行 VM 囉~