ลดขนาด Virtual Disk(.vdi) ของ VirtualBox

จากการหาข้อมูลเจอวิธีทำค่อนข้างตรงกันคือให้

0.ตรวจ HDD ของเราต้องเป็นแบบ Dynamic Disk

หมายถึงเราตั้งขนาดให้ใหญ่ไว้ก่อนได้ แต่ขนาดของไฟล์ hdd .vdi จะมีขนาดเท่ากับพื้นที่จริงที่ VM ใช้งาน ใช้งานน้อยก็มีขนาดน้อย ถ้าใช้งานมากขึ้นก้มีขนาดมากขึ้นไปจนสุดที่เราตั้งค่าไว้ แต่เวลาที่เราใช้งานไปสักพักจนขนาดเริ่มเยอะขึ้น มันจะคงขนาดไว้เลยไม่มีการลดขนาดลงถึงแม้เราจะลบข้อมูลใน VM ทิ้งไปแล้วก็ตาม ดังนั้นถ้าข้อมูลใน VM มันมีไม่เยอะ แต่ขนาด HDD มันเพิ่มไปจนสูงมันจะเปลืองเนื้อที่ของ Host เราจึงต้องทำการลดขนาดมันลงมาให้เท่ากับเนื้อที่ที่ถูกใช้งานจริงๆ

1.เข้าไปใน VM

เมื่อลบข้อมูลที่ไม่ต้องการทิ้งไปเรียบร้อยแล้วจะทำให้เหลือพื้นที่ว่างแล้วจะทำการ Defragment ด้วยก็ได้

เสร็จแล้วเข้าสู่งานหลักคือ โหลดโปรแกรม SDelete v2.01 มารัน เพื่อ Clear พื้นที่ที่ไม่ได้ใช้ให้ว่าง

https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete

เปิด Command Prompt ขึ้นมาแล้ว cd เข้าไปที่ Folder SDelete แล้วสั่ง

sdelete.exe c: -z

c: คือ Drive ที่เราต้องการ Clear

คำสั่ง -z คือ Clear พื้นที่ว่าง

ถ้าเป็นโปรแกรม Version เก่าจะใช้ -c แต่ Version ใหม่เปลี่ยนเป็น -z จึงทำให้หลายคนสับสนกันเยอะ

ลองไปอ่านดูได้ที่ [3]

2.หลังจากเสร็จแล้วให้ออกมาข้างนอกที่ Host
เปิด Command Prompt ขึ้นมาแล้ว cd เข้าไปที่ Folder VirtualBox

ส่วนมากจะอยู่ที่ C:\Program Files\Oracle\VirtualBox

พิมพ์คำสั่ง

cd “C:\Program Files\Oracle\VirtualBox”
VBoxManage.exe modifymedium disk “path to hdd.vdi” –compact

ถ้า HDD ของเราไม่ได้เป็นไฟล์ .vdi มันจะทำการ compact ไม่ได้ เราต้องแปลง Format ของ hdd มาเป็น .vdi ก่อน โดยใช้คำสั่ง VBoxManage clonemedium

 

 

1.https://www.howtogeek.com/312883/how-to-shrink-a-virtualbox-virtual-machine-and-free-up-disk-space/

2.https://smallbusiness.chron.com/copying-vmdk-vdi-virtualbox-43658.html

3.https://superuser.com/questions/747820/what-is-the-different-between-sdelete-c-and-z

4.https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi

5.https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete