ImageX 를 통해 가상 디스크의 데이터를 새 가상 디스크로 옮기기 - 최적화, 축소
기존 자료 백업 2009. 12. 26. 12:11 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
[활용 1] VHD 에 윈도우 7 을 설치하여 사용하다 보면 처음에 VHD 의 최대 크기를 너무 크게 설정하여 난감할 때가 있습니다. 하지만 안타깝게도 VHD 파일의 크기를 줄이는 명령은 없습니다. 이럴 땐 어쩔 수 없이 좀 더 작은 가상 디스크를 생성하여 기존의 가상 디스크에서 모든 파일을 옮겨와야 합니다.
[활용 2] 또는 우리가 흔히 윈도우를 설치하여 사용하는 가상 디스크는 동적 확장 방식의 가상 디스크이기 때문에 한 번 늘어난 VHD 파일의 크기는 줄어들지 않는 특성으로 인해 오래 사용하다 보면 VHD 파일의 크기가 쓸 때 없이 커지는 문제가 생길 수 있습니다. 이에 대한 자세한 내용은 아래의 글을 참고하시길 바랍니다.
마찬가지로 이럴 땐 기존의 가상 디스크에서 새로운 가상 디스크로 모든 파일을 옮기면 가상 디스크 파일의 크기가 실제로 사용 중인 크기에 맞춰 최적화되는 효과를 낼 수 있습니다.
이러한 목적을 위해 기존의 가상 디스크의 데이터를 새 가상 디스크로 옮기는 작업이 필요할 수 있는 것 입니다.
만약 윈도우 7 을 두 개 이상 멀티 부팅으로 사용 중이라면 작업을 하고자 하는 VHD 에 설치되어 있는 윈도우 말고 다른 윈도우로 부팅하여 작업을 진행하시면 되지만 글에서는 사용 중인 윈도우 7 이 VHD 에 설치된 윈도우 7 하나 뿐이라는 가정 하에 작업을 진행하도록 하겠습니다.
[참고] 윈도우 7 설치 DVD 로 부팅하는 것을 제외한 DiskPart 와 ImageX 작업은 윈도우 7 설치 DVD 로 부팅하여 작업할 때나 다른 윈도우 7 으로 부팅하여 작업할 때나 동일합니다. 그러니 윈도우 7 을 두 개 이상 멀티 부팅으로 꾸며서 사용하시는 분들은 그냥 다른 윈도우 7 에서 동일하게 작업을 하시면 됩니다.
그럼 가장 먼저 윈도우를 백업할 수 있는 툴을 구해야 하는데 이러한 툴에는 고스트나 트루 이미지와 같은 여러가지가 있지만 글에서는 마이크로소프트사에서 사용하는 ImageX 를 통해서 작업을 진행하도록 하겠습니다. 아래의 글에서 ImageX 6.1.7600.16385 32bit 버전을 다운로드 받으신 후 C: 드라이브를(가상 디스크) 제외한 다른 드라이브의 루트에 복사해 놓습니다. (보통 그냥 D: 드라이브에 저장해 놓으시면 될 듯 합니다.)
이제부터 우리가 할 과정을 간단하게 정리하면 아래와 같습니다.
일단 현재 부팅된 VHD 의 윈도우에서는 작업을 할 수 없습니다. 그렇기 때문에 작업을 하기 위해선 윈도우 7 설치 DVD 가 필요합니다. 윈도우 7 설치 DVD 로 부팅하여 명령 프롬프트를 띄우는 과정까지 들어갑니다. 윈도우 7 설치 DVD 로 부팅하여 아래의 화면에서 키보드의 Shift + F10 을 눌러주시면 됩니다.
[참고] 윈도우 7 설치 DVD 외에 컴퓨터 복구로 부팅하여 작업하셔도 됩니다. 편하신 방법을 사용하시면 됩니다.
가장 먼저 원본 VHD 가상 디스크를 시스템에 연결하여 드라이브 문자를 할당 받아줌으로써 가상 디스크의 데이터를 백업할 수 있도록 준비합니다. 이 작업에는 DiskPart 가 사용 됩니다.
드라이브 문자는 여러분이 적절히 할당해 주시면 됩니다. 이제 원본 가상 디스크를 시스템에 연결하였으니 가상 디스크의 데이터를 백업해 주면 됩니다.
이제 시스템에 연결된 가상 디스크의 데이터를 WIM 이미지 파일로 백업하도록 하겠습니다. 이 작업에는 ImageX 가 사용됩니다. 이 때 윈도우에서 ImageX 를 저장해 놓은 드라이브는 현재 VHD 로 부팅한 상태가 아니기 때문에 드라이브 문자가 하나씩 당겨집니다. (D: -> C:) ImageX 로 저장해 놓은 드라이브로 이동하여 아래의 명령을 내려줍니다.
[주의] 간혹 윈도우에서의 드라이브와 PE 에서의 드라이브 문자가 서로 다를 수 있습니다. 그러니 아래의 명령을 내리기 전에 DIR 명령을 통해 정확한 드라이브 문자들을 파악하신 후 작업을 진행하시길 바랍니다.
이 때 WIM 이미지 파일을 저장하는 드라이브는 원하시는 곳 아무 곳에나 저장해도 상관없지만 되도록이면 여유 공간이 충분한 드라이브에 저장을 해 주시는 게 좋습니다.
이제 원본 VHD 가상 디스크에서 할 작업은 모두 끝났습니다. 그러니 해당 VHD 파일을 시스템에서 분리하고 제거해 주시면 됩니다.
이제 기존의 가상 디스크 파일이 존재했던 동일한 경로와 이름으로 새로운 가상 디스크를 생성하고 이를 시스템에 연결한 후 드라이브 문자를 할당 받아야 합니다.
이 때 목적에 따라 가상 디스크의 크기를 더 작게 생성할 것인지 기존과 동일하게 생성할 것인지를 결정하셔야 합니다.(물론 더 크게 생성하셔도 상관은 없습니다. ^^) 가상 디스크의 축소를 원하셨다면 기존의 가상 디스크보다 최대 크기를 작게 가상 디스크를 생성하시면 되고(물론 백업한 모든 데이터가 충분히 들어갈 정도의 크기로 생성하셔야 합니다.) 단순히 최적화를 원하셨다면 기존의 크기와 동일하게 생성하시면 됩니다.
글에서는 가상 디스크의 크기를 축소하기 위해 작업을 한다고 가정하여 기존의 가상 디스크의 크기보다 작게 생성 해 보도록 하겠습니다. 다음의 명령을 내려줍니다.
이제 원본 가상 디스크에서 백업했던 데이터를 새롭게 생성한 가상 디스크로 풀어주는 작업만 남았습니다. 다음의 명령을 내려줍니다.
이로써 가상 디스크의 크기를 축소 또는 최적화 작업을 모두 완료하였습니다. 축소든 최적화든 아무튼 현재 가상 디스크는 실제로 사용 중인 데이터의 크기 만큼 가상 디스크 파일이 최적화된 상태입니다.
이제 모든 작업을 마쳤으니 시스템을 재시작 하시면 됩니다. 글에서 생성한 Backup.wim 이미지 파일은 작업의 결과에 특별한 문제가 없다면 필요없으니 삭제하시면 됩니다. 수고하셨습니다. ^^
[활용 2] 또는 우리가 흔히 윈도우를 설치하여 사용하는 가상 디스크는 동적 확장 방식의 가상 디스크이기 때문에 한 번 늘어난 VHD 파일의 크기는 줄어들지 않는 특성으로 인해 오래 사용하다 보면 VHD 파일의 크기가 쓸 때 없이 커지는 문제가 생길 수 있습니다. 이에 대한 자세한 내용은 아래의 글을 참고하시길 바랍니다.
마찬가지로 이럴 땐 기존의 가상 디스크에서 새로운 가상 디스크로 모든 파일을 옮기면 가상 디스크 파일의 크기가 실제로 사용 중인 크기에 맞춰 최적화되는 효과를 낼 수 있습니다.
이러한 목적을 위해 기존의 가상 디스크의 데이터를 새 가상 디스크로 옮기는 작업이 필요할 수 있는 것 입니다.
만약 윈도우 7 을 두 개 이상 멀티 부팅으로 사용 중이라면 작업을 하고자 하는 VHD 에 설치되어 있는 윈도우 말고 다른 윈도우로 부팅하여 작업을 진행하시면 되지만 글에서는 사용 중인 윈도우 7 이 VHD 에 설치된 윈도우 7 하나 뿐이라는 가정 하에 작업을 진행하도록 하겠습니다.
[참고] 윈도우 7 설치 DVD 로 부팅하는 것을 제외한 DiskPart 와 ImageX 작업은 윈도우 7 설치 DVD 로 부팅하여 작업할 때나 다른 윈도우 7 으로 부팅하여 작업할 때나 동일합니다. 그러니 윈도우 7 을 두 개 이상 멀티 부팅으로 꾸며서 사용하시는 분들은 그냥 다른 윈도우 7 에서 동일하게 작업을 하시면 됩니다.
그럼 가장 먼저 윈도우를 백업할 수 있는 툴을 구해야 하는데 이러한 툴에는 고스트나 트루 이미지와 같은 여러가지가 있지만 글에서는 마이크로소프트사에서 사용하는 ImageX 를 통해서 작업을 진행하도록 하겠습니다. 아래의 글에서 ImageX 6.1.7600.16385 32bit 버전을 다운로드 받으신 후 C: 드라이브를(가상 디스크) 제외한 다른 드라이브의 루트에 복사해 놓습니다. (보통 그냥 D: 드라이브에 저장해 놓으시면 될 듯 합니다.)
이제부터 우리가 할 과정을 간단하게 정리하면 아래와 같습니다.
1. 원본 VHD 가상 디스크 파일을 시스템에 연결하고 드라이브 문자를 할당.
2. ImageX 를 통해 원본 가상 디스크의 데이터를 WIM 이미지 파일로 백업.
3. 원본 VHD 가상 디스크를 시스템에서 분리하고 제거.
4. 새로운 VHD 가상 디스크를 생성하고 드라이브 문자를 할당.
5. ImageX 를 통해 새로운 가상 디스크로 WIM 이미지 파일을 복원.
2. ImageX 를 통해 원본 가상 디스크의 데이터를 WIM 이미지 파일로 백업.
3. 원본 VHD 가상 디스크를 시스템에서 분리하고 제거.
4. 새로운 VHD 가상 디스크를 생성하고 드라이브 문자를 할당.
5. ImageX 를 통해 새로운 가상 디스크로 WIM 이미지 파일을 복원.
일단 현재 부팅된 VHD 의 윈도우에서는 작업을 할 수 없습니다. 그렇기 때문에 작업을 하기 위해선 윈도우 7 설치 DVD 가 필요합니다. 윈도우 7 설치 DVD 로 부팅하여 명령 프롬프트를 띄우는 과정까지 들어갑니다. 윈도우 7 설치 DVD 로 부팅하여 아래의 화면에서 키보드의 Shift + F10 을 눌러주시면 됩니다.
[참고] 윈도우 7 설치 DVD 외에 컴퓨터 복구로 부팅하여 작업하셔도 됩니다. 편하신 방법을 사용하시면 됩니다.
1. 원본 VHD 가상 디스크를 시스템에 연결하고 드라이브 문자 할당 받기
가장 먼저 원본 VHD 가상 디스크를 시스템에 연결하여 드라이브 문자를 할당 받아줌으로써 가상 디스크의 데이터를 백업할 수 있도록 준비합니다. 이 작업에는 DiskPart 가 사용 됩니다.
diskpart
- DiskPart 를 시작합니다.
select vdisk file="c:\7uk32.vhd"
- C:\7UK32.VHD 파일을 선택합니다. 원본 가상 디스크 파일을 선택하시면 됩니다.
attach vdisk
- 가상 디스크를 시스템에 연결합니다.
select partition=1
- 가상 디스크의 첫 번째 파티션을 선택합니다.
assign letter=s
- 파티션에 임시 드라이브 문자인 S: 를 할당합니다. 이 때 S: 드라이브 문자는 다른 볼륨에 할당되지 않은 문자여야 합니다.
exit
- DiskPart 를 종료합니다.
- DiskPart 를 시작합니다.
select vdisk file="c:\7uk32.vhd"
- C:\7UK32.VHD 파일을 선택합니다. 원본 가상 디스크 파일을 선택하시면 됩니다.
attach vdisk
- 가상 디스크를 시스템에 연결합니다.
select partition=1
- 가상 디스크의 첫 번째 파티션을 선택합니다.
assign letter=s
- 파티션에 임시 드라이브 문자인 S: 를 할당합니다. 이 때 S: 드라이브 문자는 다른 볼륨에 할당되지 않은 문자여야 합니다.
exit
- DiskPart 를 종료합니다.
드라이브 문자는 여러분이 적절히 할당해 주시면 됩니다. 이제 원본 가상 디스크를 시스템에 연결하였으니 가상 디스크의 데이터를 백업해 주면 됩니다.
2. 가상 디스크의 데이터를 WIM 이미지 파일로 백업하기
이제 시스템에 연결된 가상 디스크의 데이터를 WIM 이미지 파일로 백업하도록 하겠습니다. 이 작업에는 ImageX 가 사용됩니다. 이 때 윈도우에서 ImageX 를 저장해 놓은 드라이브는 현재 VHD 로 부팅한 상태가 아니기 때문에 드라이브 문자가 하나씩 당겨집니다. (D: -> C:) ImageX 로 저장해 놓은 드라이브로 이동하여 아래의 명령을 내려줍니다.
[주의] 간혹 윈도우에서의 드라이브와 PE 에서의 드라이브 문자가 서로 다를 수 있습니다. 그러니 아래의 명령을 내리기 전에 DIR 명령을 통해 정확한 드라이브 문자들을 파악하신 후 작업을 진행하시길 바랍니다.
c:
- C: 드라이브의 루트로 이동합니다. C: 드라이브는 ImageX 가 저장되어 있는 데이터 드라이브 입니다.
imagex /capture /compress fast /check /scroll s: d:\backup.wim "Windows 7"
- ImageX 를 통해 S: 드라이브를 D:\Backup.wim 파일로 백업합니다. 이 때 S: 드라이브는 원본 가상 디스크이며 D: 드라이브는 데이터 드라이브입니다. /scroll 매개 변수는 진행 과정을 표시해 주는 용도이니 빼셔도 상관은 없습니다.
- C: 드라이브의 루트로 이동합니다. C: 드라이브는 ImageX 가 저장되어 있는 데이터 드라이브 입니다.
imagex /capture /compress fast /check /scroll s: d:\backup.wim "Windows 7"
- ImageX 를 통해 S: 드라이브를 D:\Backup.wim 파일로 백업합니다. 이 때 S: 드라이브는 원본 가상 디스크이며 D: 드라이브는 데이터 드라이브입니다. /scroll 매개 변수는 진행 과정을 표시해 주는 용도이니 빼셔도 상관은 없습니다.
이 때 WIM 이미지 파일을 저장하는 드라이브는 원하시는 곳 아무 곳에나 저장해도 상관없지만 되도록이면 여유 공간이 충분한 드라이브에 저장을 해 주시는 게 좋습니다.
3. 원본 VHD 가상 디스크를 분리하고 제거하기
이제 원본 VHD 가상 디스크에서 할 작업은 모두 끝났습니다. 그러니 해당 VHD 파일을 시스템에서 분리하고 제거해 주시면 됩니다.
diskpart
- DiskPart 를 시작합니다.
select vdisk file="c:\7uk32.vhd"
- C:\7UK32.VHD 파일을 선택합니다. 원본 가상 디스크 파일을 선택하시면 됩니다.
detach vdisk
- 가상 디스크를 시스템에서 분리합니다.
exit
- DiskPart 를 종료합니다.
del c:\7uk32.vhd
- C:\7UK32.VHD 파일을 삭제합니다.
- DiskPart 를 시작합니다.
select vdisk file="c:\7uk32.vhd"
- C:\7UK32.VHD 파일을 선택합니다. 원본 가상 디스크 파일을 선택하시면 됩니다.
detach vdisk
- 가상 디스크를 시스템에서 분리합니다.
exit
- DiskPart 를 종료합니다.
del c:\7uk32.vhd
- C:\7UK32.VHD 파일을 삭제합니다.
4. 새로운 VHD 가상 디스크를 생성하여 연결하고 드라이브 문자 할당 받기
이제 기존의 가상 디스크 파일이 존재했던 동일한 경로와 이름으로 새로운 가상 디스크를 생성하고 이를 시스템에 연결한 후 드라이브 문자를 할당 받아야 합니다.
이 때 목적에 따라 가상 디스크의 크기를 더 작게 생성할 것인지 기존과 동일하게 생성할 것인지를 결정하셔야 합니다.(물론 더 크게 생성하셔도 상관은 없습니다. ^^) 가상 디스크의 축소를 원하셨다면 기존의 가상 디스크보다 최대 크기를 작게 가상 디스크를 생성하시면 되고(물론 백업한 모든 데이터가 충분히 들어갈 정도의 크기로 생성하셔야 합니다.) 단순히 최적화를 원하셨다면 기존의 크기와 동일하게 생성하시면 됩니다.
글에서는 가상 디스크의 크기를 축소하기 위해 작업을 한다고 가정하여 기존의 가상 디스크의 크기보다 작게 생성 해 보도록 하겠습니다. 다음의 명령을 내려줍니다.
diskpart
- DiskPart 를 시작합니다.
create vdisk file="c:\7uk32.vhd" maximum=10240 type=expandable
- C: 드라이브의 루트에 10 GB(10240 MB) 짜리 7UK32.vhd 동적 확장 가상 디스크 파일을 생성합니다. 이 때 가상 디스크 파일의 이름은 삭제하였던 원본 가상 디스크와 동일하게 만들어주셔야 합니다.
attach vdisk
- 방금 생성한 가상 디스크를 시스템에 연결합니다.
create partition primary
- 가상 디스크의 모든 공간을 할당하여 주 파티션을 생성합니다.
format fs=ntfs quick
- 생성한 파티션을 NTFS 파일 시스템으로 빠른 포맷 합니다.
assign letter=v
- 파티션에 임시 드라이브 문자인 V: 를 할당합니다. 이 때 V: 드라이브 문자는 다른 볼륨에 할당되지 않은 문자여야 합니다.
exit
- DiskPart 를 종료합니다.
- DiskPart 를 시작합니다.
create vdisk file="c:\7uk32.vhd" maximum=10240 type=expandable
- C: 드라이브의 루트에 10 GB(10240 MB) 짜리 7UK32.vhd 동적 확장 가상 디스크 파일을 생성합니다. 이 때 가상 디스크 파일의 이름은 삭제하였던 원본 가상 디스크와 동일하게 만들어주셔야 합니다.
attach vdisk
- 방금 생성한 가상 디스크를 시스템에 연결합니다.
create partition primary
- 가상 디스크의 모든 공간을 할당하여 주 파티션을 생성합니다.
format fs=ntfs quick
- 생성한 파티션을 NTFS 파일 시스템으로 빠른 포맷 합니다.
assign letter=v
- 파티션에 임시 드라이브 문자인 V: 를 할당합니다. 이 때 V: 드라이브 문자는 다른 볼륨에 할당되지 않은 문자여야 합니다.
exit
- DiskPart 를 종료합니다.
5. WIM 이미지 파일의 내용을 새로운 가상 디스크로 풀어주기
이제 원본 가상 디스크에서 백업했던 데이터를 새롭게 생성한 가상 디스크로 풀어주는 작업만 남았습니다. 다음의 명령을 내려줍니다.
imagex /apply /scroll d:\backup.wim 1 v:
- D: 드라이브의 Backup.wim 이미지 파일을 V: 드라이브에 풀어줍니다. 이 때 V: 드라이브는 좀 전에 새롭게 생성한 가상 디스크의 드라이브 문자입니다. 마찬가지로 /scroll 매개 변수는 생략해 주어도 상관 없습니다.
- D: 드라이브의 Backup.wim 이미지 파일을 V: 드라이브에 풀어줍니다. 이 때 V: 드라이브는 좀 전에 새롭게 생성한 가상 디스크의 드라이브 문자입니다. 마찬가지로 /scroll 매개 변수는 생략해 주어도 상관 없습니다.
이로써 가상 디스크의 크기를 축소 또는 최적화 작업을 모두 완료하였습니다. 축소든 최적화든 아무튼 현재 가상 디스크는 실제로 사용 중인 데이터의 크기 만큼 가상 디스크 파일이 최적화된 상태입니다.
이제 모든 작업을 마쳤으니 시스템을 재시작 하시면 됩니다. 글에서 생성한 Backup.wim 이미지 파일은 작업의 결과에 특별한 문제가 없다면 필요없으니 삭제하시면 됩니다. 수고하셨습니다. ^^