Virtual Box 에서 Virtual Hard Disk 크기 줄이기


Virtual Box 를 사용하다 보면 기존에 있던 파일들을 삭제 하였는데도 그 파일들의 영향으로 VirtualBox Disk Image (VDI) 의 사이즈는 그대로 유지되어 필요없이 하드디스크를 낭비하게 됩니다.



이럴 경우 VBoxManage 라는 Utility 를 사용할 수 있습니다.


일단 VBoxManage 를 사용하기 전에 선행작업으로 VDI 안의 내용 중 사용하지 않는 공간을 NULL 로 채워넣는 작업을 해야 합니다.


Guest OS 가 Windows 계열이라면 Microsoft 에서 배포하는 SDelete 라는 프로그램으로 필요없는 공간을 삭제해 줍니다.


http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx <== 여기에서 다운로드

그리고 Command line 에서


c:\sdelete.exe -z -r c:



이후 Host OS 에서 


VBoxManage modifyhd --compact yourImage.vdi 


라고 실행 합니다. 이때 에러가 뜨면 


VBoxManage modifyhd --compact 62343ecb-4999-4e70-9700-f1234fdbb1


형태로 UUID 로 실행을 합니다.


이렇게 하면 0%....10%...20%.......90%...100% 하고 완료가 됩니다.


그리고 disk size 를 확인해 보면 줄어 있는 것을 볼 수 있습니다.


Ubuntu 계열에서는 zerofree 라는 Utility 를 사용하라고 하는 곳도 있는데 간단하게


$ dd if=/dev/zero of=test.file


이렇게 실행하면 disk가 full 로 찰때 까지 test.file size를 늘여서 채웁니다.

disk full error 를 보고 난 후


$ rm test.file


을 해주면 windows 에서 sdelete 를 한 것과 같은 효과를 볼 수 있습니다.


이 상태에서 system 을 끄고


VBoxManage modifyhd --compact yourImage.vdi


를 실행하면 disk size가 줄어들게 됩니다.



어떤 곳에서 Clone Disk 를 사용하면 된다고 쓰여 있는곳도 있던데 시간만 잡아먹고 실패 했습니다.

그냥 위의 방법으로 하는게 제일 좋을 듯 하네요.




Posted by 인포개더러
,