2010년 1월 1일 금요일

Sdelete로 VHD 파일 용량 줄이기

신비로그의 다음 포스팅을 참고하였다.

http://shinb.textcube.com/252 - VHD 파일 최적화하기

 

가변 용량으로 만든 VHD 파일의 크기는 한번 커진 이상 줄어들지 않는다. 이것을 diskpart 의 compact명령을 이용해서 줄여줄 수 있지만, 그것도 일단 완전히 비어있는 영역이 아니면 줄여주지 못한다. 그래서 compact를 사용하기 전에, 삭제된 것으로 보이지만 실제로는 데이터가 들어있는 영역을 깨끗하게 WIPE해줄 필요가 있다.

 

 

그러한 용도로 사용할 수 있는 것이 바로 Sdelete 이다.

 

Sdelete 의 옵션을 살펴보면,


SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: sdelete [-p passes] [-s] [-q] <file or directory>
       sdelete [-p passes] [-z|-c] [drive letter]
   -c         Zero free space (good for virtual disk optimization)
   -p passes  Specifies number of overwrite passes (default is 1)
   -q         Don't print errors (Quiet)
   -s         Recurse subdirectories
   -z         Clean free space

 

 

-c 옵션과 -z 옵션이 있는데, 본인이 이해한 바로는 -c 는 삭제된 부분의 데이터에 모두 0x00 을 세 번(Number of overwite passes 가 1일경우) write 해서 virtual disk 의 압축률을 높이기 위한 것이고, -z 는 0x00, 0xFF, 그리고 난수를 write 해서 지워진 데이터를 복구할 수 없도록 만드는 명령이다.

 

지금 하고자 하는 일은 VHD 파일의 용량을 줄이고자 함이므로 -c 옵션이 적절할 것이다.

 

 

작업 순서는 다음과 같다.

 

  1. Sdelete 파일을 실행하기 쉽도록 루트디렉토리(c:\등)에 카피
  2. windows 7 부팅USB 등을 이용해서 PE 모드로 들어가기
  3. shift + F10 을 눌러 command prompt 를 띄운다.
  4. > diskpart
  5. diskpart> select vdisk file=vhd파일경로
  6. diskpart> attach vdisk
  7. diskpart> list vol - VHD가 로드된 드라이브명 확인
  8. diskpart> exit
  9. > sdelete -c 드라이브명:
  10. > diskpart
  11. diskpart> select vdisk file=vhd파일경로
  12. diskpart> detach vdisk
  13. diskpart> compact vdisk


이 과정을 마치고 나니, 대략 1기가 정도의 용량이 줄어들었다.

자식 파일을 만들어놓은 상태에서 부모 vhd파일을 최적화했지만, 어차피 삭제된 영역만 깨끗히 지운 것이기 때문에 자식파일 실행에는 아무런 문제가 없었다.

댓글 1개:

  1. trackback from: vmdk 파일을 vhd로! vmdk2vhd
    오늘은 VMWare과 VirtualBox용 가상 하드디스크 파일을 Windows용 vhd 파일로 바꾸는 프로그램을 소개합니다. 이름은 vmdk2vhd인데요, 무설치입니다. 제작사 홈페이지 : http://vmToolkit.com/ ZIP 파일로 되어있어서 EXE 파일로 올립니다. 실행만 하면 됩니다. VmdkConvert.exe 변환하는 방법: 프로그램을 실행하면 아래와 같은 창이 뜨게 됩니다. 전 여기서 Windows 7 PE Disk를 선택합니다..

    답글삭제