Pages

2015-03-11

VMDK Compact虛擬磁碟壓縮與防錯

本文探討如何對於VM(Virtual Machine)檔案進行適當的壓縮,讓它有利於VM管理及發佈。以VMware 11.1.0版本為例,建立一個Win7 x64 English + Update虛擬系統磁碟Size為20GB(已清除系統垃圾及System Update備份檔),接著使用VMware軟件的VMDK虛擬磁碟進行壓縮(Compact):

VMDK Compact

經過冗長等待,原本目錄20G Size可變成16GB,它去除了原本佔住的unused空間。

VMDK FileList

接著再以WinRAR進行分檔壓縮(Normal Compress Ratio, 4095MB Split),最後得到壓縮後Size共為5.08GB。這些VM壓縮檔除了利於發佈下載外,也可上傳至百度空間備份(4GB Limit each)及私密分享。實務中發現超大檔RAR分檔壓縮若無加上Recovery Record,在解壓縮及網路傳輸中可能會造成Checksum錯誤(我曾想換用7z分檔壓縮,但基於一些理由還是使用RAR),因此在製作RAR壓縮時,記得勾選「Add recovery record」(3%)的選項。更貼心一點的,就是使用Hash Check工具產生檔案驗證資訊,供大檔網路傳輸完成後比對。

RAR Recovery Record 

WinRAR FileList

壓縮後,進行解壓測試 (源頭製作時嚴謹辛苦一點,可避免使用的人浪費更多的時間解決問題)

RAR Test Archive

當透過網路FTP傳輸至彼端時,往往Hash比對不一致了,Test解壓縮會有Checksum錯誤,重新下載往往仍不能解決問題。幸好有製作Recovery Record,只要修復該檔fixed之後,再重新比對Hash就正確了。

image

以前我挺相信TCP/IP FTP傳輸的完整性,但在這次VMDK壓縮分檔的傳輸還原的過程裏,遭受到很莫名奇怪的挫敗經驗,即使已試過關閉防毒、換不同套FTP軟件、取消FTP ZCompress、重傳N次。面對這種動輒數十GB的傳輸解壓縮,解決問題的時間成本很昂貴,因此製作RAR壓縮時多一分周全,總是好的。

No comments: