동적 확장 가상 디스크 형식의 VHD 파일은 그 특성상 한 번 늘어난 용량은 다시 줄어들지 않습니다. 그래서 DiskPart 의 Compact 명령을 이용하여 최적화를 해주면 되지만 이 또한 VHD 가상 디스크의 비어있는 영역에 삭제한 파일들의 흔적이 남아있어 생각한 만큼 확실하게 최적화가 잘 안 되는 실정입니다.
이렇게 Compact 명령을 통해 최적화가 생각한 만큼 이루어지지 않는 원인은 윈도우의 파일 삭제 특성 때문입니다. 우리에겐 파일이 삭제된 것처럼 보이지만 실제론 파일에 대한 연결만 끊기고 디스크에는 아직 파일이 남아있기 때문이죠. 이러한 특성은 VHD 가상 디스크에서도 그대로 적용이 됩니다. 그래서 우리가 Compact 명령을 적용하더라도 생각한 만큼 VHD 파일의 용량이 줄어들지 않게 됩니다. 이와 관련된 자세한 내용은 아래의 글을 참고해 보시길 바랍니다.
이렇게 동적 확장 방식의 VHD 가상 디스크 파일을 Compact 명령으로 최적화하는데 문제가 되는 것은 바로 연결만 끊기고 가상 디스크 상의 비어있는 공간에 잔존하고 있는 삭제된 파일들의 흔적입니다. 가상 디스크에서 비어있는 공간에 파일들의 흔적을 깨끗하게 제거해 주면 VHD 가상 디스크 파일에 대한 최적화가 좀 더 확실하게 이루어지게 됩니다.
이러한 가상 디스크의 비어있는 공간을 깨끗하게 삭제해주는 와이핑툴은 찾아보시면 많이 있으실 겁니다. 그 중에서도 글에서는 지난 번에 소개해 드린 파일 삭제 프로그램인 SDelete 프로그램을 사용하도록 하겠습니다.
위의 두 글 중에 아무데서나 파일을 다운로드 받으신 후 압축을 푸시고 SDelete.exe 파일을 윈도우 폴더의 System32 폴더에 복사해 놓으시면 앞으로 명령 프롬프트 어떤 경로에서든 SDelete 를 사용하실 수 있으실 겁니다. 그럼 이제부터 우리가 할 과정을 간단하게 정리해 보도록 하겠습니다.
1. VHD 가상 디스크 파일을 시스템에 연결하고 드라이브 문자를 할당.
2. SDelete 를 통해 가상 디스크의 비어있는 공간을 와이핑.
3. DiskPart 의 Compact 명령으로 VHD 가상 디스크 파일 최적화.
이 작업은 최적화 하려는 VHD 가상 디스크 파일에 설치된 윈도우 7 을 제외한 다른 윈도우 7, 또는 윈도우 7 의 컴퓨터 복구 모드, 윈도우 7 설치 DVD 에서 작업을 진행하셔야 합니다.
윈도우 7 에서 작업을 진행하실려면 SDelete.exe 파일은 윈도우 폴더의 System32 폴더로 복사해 두시면 되고 컴퓨터 복구 모드나 윈도우 7 설치 DVD 로 부팅하여 작업하실 분들은 C: 드라이브가 아닌 다른 드라이브의 루트에 SDelete.exe 파일을 복사해 두시길 바랍니다. 글에서는 D: 드라이브의 루트에(PE 로 부팅시 C: 드라이브) 복사해 두었다는 가정하에 작업을 진행하도록 하겠습니다. 그럼 작업을 시작해 보죠.
VHD 가상 디스크 파일을 시스템에 연결하고 드라이브 문자를 할당
이 작업을 윈도우 7 에서 진행 중이시라면 VHD 를 시스템에 연결하고 드라이브 문자를 할당하는 과정은 간단하니 VHD 를 사용하시는 분들이라면 모두 아실거라고 생각합니다. 그래도 혹시 모르니 모르시는 분들은 아래의 글을 참고하셔서 VHD 가상 디스크를 시스템에 연결하시길 바랍니다.
하지만 해보신 분들이라면 아시겠지만 동일한 원본을 가지고 작업하더라도 언제나 ImageX 를 통한 쪽이 조금 더 축소의 폭이 큰 것을 알 수 잇습니다. 아래와 같이 말이죠.
확실히 ImageX 를 통해 최적화한 쪽이 좀 더 축소의 폭이 큰 것을 확인할 수 있으시죠? 이유는 간단합니다.
ImageX 로 가상 디스크의 데이터를 백업할 때 위와 같이 사각형안의 데이터는 제외하기 때문입니다. 즉, ImageX 를 통한 최적화와 SDelete + Compact 를 통한 최적화에서 차이가 나는 용량은 위에서 제외된 폴더 및 파일들의 용량인 것 입니다. Pagefile.sys 와 hiberfil.sys 파일은 VHD 가상 디스크에는 존재하지 않으니 그 둘을 제외한 나머지 파일들에서 그 만큼의 차이가 나는 것이죠. 특히 System Volume Information 과 휴지통 쪽의 데이터로 인해 주로 차이가 나게 됩니다. ^^a 아셨죠? 혹시나 궁금해 하실까봐 그냥 끄적였습니다.... -_-;