因為儲存空間問題,虛擬機硬碟設定為Thin的模式,當資料突然增長後又刪除,此時無法將空間釋放給其他主機使用。
查了一下文章分成兩步驟:

1. 縮小 Guest OS 的硬碟空間
2. 縮小 Host OS 的硬碟空間


Guest OS的處理步驟:

引用文章:
http://lang.idv.tw/doku.php/os/vmware/vmware_%E5%B0%87vmdk%E6%AA%94%E6%A1%88%E7%B8%AE%E5%B0%8F


Guest OS
先從Guest OS來說好了,這裡用3種比較常見的OS來說明如何達成縮小之術。

Windows XP
1.到Microsoft官網下載SDelete v1.6版 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx (sdelete.zip)
這個軟體主要的功能是把未使用到的空間全部清除,原理應該是全部填入0,也就是剛入手磁碟機的狀態,但針對的是未使用的空間,這步驟很重要,如果沒有執行這段,後面的指令還是會無效,因為vmdk未使用的空間並未被清除,軟體會當成還有資料在裡面,就沒有辦法把未使用的空間真正清除掉。
2.解壓縮把 SDelete.exe 放在C:\Windows\System32底下。
3.按Win+R呼叫出執行的視窗,或是點開始>執行也可以,輸入cmd後按Enter鍵。
4.輸入指令
sdelete -c -z c:\,假設你的Guest OS的Partition不只一個,最後面的c:\改成對應的磁碟機代號即可,例如d:\、e:\。

Linux
非常簡單,只要一行指令就搞定! 熟悉Linux的一看就知道,把zero.dat這個檔案填入無限的0,直到硬碟空間滿了就會自動停止,再把zero.dat這個檔案刪除。因為內容全都是0,所以軟體判斷未使用空間的內容都是空的,自然就可以正確釋放。

sudo dd if=/dev/zero of=zero.dat ; rm -f zero.dat 一行搞定
cat /dev/zero > zero.dat; rm -f zero.dat 這行指令也可以

 

VMware ESXi HostOS的處理步驟:

引用文章:
http://masterman.pixnet.net/blog/post/31342690-%E3%80%90vmware%E3%80%91%E7%B8%AE%E5%B0%8Flinux-vmdk-size!

最後將該VM關機,利用ssh連入ESXi主機,輸入vmkfstools -K /path/to/disk-name.vmdk

 

 

arrow
arrow
    全站熱搜

    Nathan 發表在 痞客邦 留言(0) 人氣()