전체적인 작업의 이해

이 이상 무슨 설명이 더 필요한가?


몇 차례 이런 질문이 나왔던 것으로 기억하는데, 그 때마다 댓글로 설명하기도 참 난감하고... 그래서 포스팅으로 정리해 봅니다. 하려는 작업이 무엇인지는 위의 스크린 샷 설명만을 보시면 확실히 아시겠죠? 이게 간단하다면 간단한건데, 복잡하다면 또 복잡할 수도 있거든요. 일단 필요한 만큼 한 번 설명을 해보죠.

참고로 이 내용은 VHD 부팅을 지원하는 윈도우 7 Ultimate, Enterprise, 윈도우 8 Pro, Enterprise 만 적용할 수 있습니다.





일단 알아두기 - 최종 VHD 의 위치는 어디인가?

VHD 가상 디스크로 현재 사용 중인 윈도우를 옮긴다? 그렇다면 이 작업엔 크게 다음의 두 가지 경우를 생각할 수 있습니다.

첫 째. VHD 를 기존의 윈도우 드라이브가 아닌 다른 드라이브에 위치시켜놓고 사용하려는 경우.
둘 째, VHD 를 기존의 윈도우 드라이브에 위치시켜놓고 사용하려는 경우. [기존 윈도우는 제거]


이 중에서 기본은 첫 째의 경우입니다. 해당 경우에 해당하는 작업을 기본 베이스로 하여 약간의 추가적인 작업을 더해 둘 째 작업을 진행할 수 있습니다. 이 둘은 거의 같다고 할 수 있기 때문에 오늘 이 글 하나로 설명을 마치도록 하겠습니다. 이건 작정하고 길게 가겠다는 말 입니다.




작업의 시작 전 도구 선택하기

일단 시작하기 전에 먼저 조금 설명을 해보자면 이번 글에서 하려는 작업을 아주 간단하게 정의하면 윈도우 복제의 범주에 들어가게 됩니다. 그래서 이전에 한 번 설명드렸던 적이 있는 동일한 윈도우를 멀티 부팅으로 구성하려는 경우 윈도우 복제를 통해 간단하게 작업하기 글과 사실상 기본적인 틀은 거의 같다고 할 수 있습니다. 단지 그 대상이 가상 디스크로 바뀌었을 뿐이죠. 뭐 그렇고요. 아무튼 일단 본격적으로 작업을 시작하기에 앞서 작업에 어떠한 도구를 사용할 지를 결정해야 합니다.


작업에는 크게 아래와 같은 세 가지 범주의 작업 도구를 생각해볼 수 있습니다.

1. 윈도우 기본 내장 시스템 이미지 만들기

윈도우에 기본적으로 내장된 백업 및 복원의 시스템 이미지 만들기는 윈도우가 설치된 파티션을 그대로 VHD 가상 디스크 형식으로 저장합니다. 그래서 시스템 이미지 만들기를 통해 생성된 VHD 파일을 그대로 활용하는 것이죠. 이 방법의 최대 장점은 별 다른 도구를 준비하지 않아도 된다는 것입니다. 윈도우에서 곧바로 작업할 수도 있고요.

하지만 한 가지 단점이 있는데 시스템 이미지는 현재 윈도우가 설치된 실제 파티션의 크기대로 VHD 가상 디스크의 최대 크기가 설정되기 때문에 좀 더 작은 VHD 가상 디스크를 만들고자 할 때는 좀 불편하다는 문제가 있습니다. 만약에 VHD 가상 디스크의 크기를 기존 윈도우 파티션보다 작게 만들려면 먼저 윈도우 파티션의 크기를 축소한 후 작업해야 합니다. 뭐 꼼수의 성격이 강하지만 불가능한 것은 아니니까요. 참고로 VHD 가상 디스크의 최대 크기는 언제든지 확장할 수 있으니 더 크게 만드는 건 문제가 되지 않습니다.


2. Ghost 와 같은 파티션(드라이브) 복사(복제) 프로그램

시만텍 고스트나 노턴 고스트, 트루 이미지 등과 같은 클론, 이미징 프로그램들에는 파티션(드라이브)를 그대로 다른 파티션(드라이브)로 복사(복제)할 수 있는 기능이 포함되어 있습니다. 해당 프로그램들도 시스템 이미지 만들기와 같이 대부분 따로 윈도우 PE 등으로 부팅하지 않아도 볼륨 스냅샷을 통해 윈도우에서 곧바로 작업할 수 있죠.

또한 VHD 를 따로 직접 만드는 방식이기 때문에 VHD 최대 크기의 설정이 자유롭다는 장점도 있습니다. 이를 통해 원본인 윈도우 파티션보다 더 작은 최대 크기를 가진 VHD 가상 디스크를 만드는 작업도 손쉽게 할 수 있죠. 대부분의 파티션(드라이브) 복사 프로그램들이 원본보다 더 작은 대상으로 복사하는 것을 지원하기도 하고요. (언급한 프로그램들 모두 지원)

하지만 단점이라면 언급한 프로그램들은 모두 상용 프로그램들이라는 것과, 시만텍 고스트를 제외하곤 모두 기본적으로 윈도우에 설치해야 한다는 부담이 있습니다. 물론 해당 프로그램들 중에 하나를 현재 사용하고 있다면 별 문제가 되지 않겠지만요.


3. ImageX 와 같은 백업 복원 프로그램

ImageX 는 드라이브 백업 도구 중 가장 손쉽게 구할 수 있다는 장점이 있습니다. AIK(ADK) 에서 기본적으로 제공되니까요. 이게 가장 큰 장점이며 2 의 프로그램들과 마찬가지로 VHD 를 따로 직접 만드는 방식이기 때문에 VHD 최대 크기의 설정이 자유롭다는 장점도 있습니다.

하지만 가장 큰 단점이라면 앞의 도구들과는 다르게 현재 구동 중인 윈도우 볼륨을 곧바로 백업할 수 없기 때문에, 반드시 윈도우 설치 DVD 와 같은 윈도우 PE 로 부팅한 후 작업을 해야 한다는 것과, 복제와 달리 [먼저 백업 -> 다시 복원] 이라는 과정을 거쳐야 하기 때문에 백업을 저장할 수 있는 여유 공간도 충분해야 하고, 앞서의 도구들보다 시간도 오래 걸리는 단점이 있습니다.


자~ 그렇다면 어떤 도구를 사용하는 게 가장 좋으냐? 그건 여러분의 상황과, 취향 문제이지 딱히 뭐가 제일 좋다라고 하기엔 뭐하네요. 그냥 끌리는 데로 선택하여 작업하시면 될 듯합니다. 어차피 전 이 글에서 셋 모두 설명할 테니까요.


아무튼 그럼 저는 처음의 스크린 샷에서 보았던 D: 드라이브에 VHD 가상 디스크를 위치시키는 것을 기준으로 작업을 진행하도록 하겠습니다. 디스크가 하나 뿐인 상황도 가정하는 게 좋을 듯 하니까요. 참고로 이 글 하나로 최대한 많은 걸 설명하려 하기에 중간 설명이 좀 길게 들어갈 수도 있습니다. 이 점 유의하시고 그럼 본격적으로 작업을 시작하도록 하겠습니다.




1. 사전 준비 - 컴퓨터 복구 구성의(WnRE.wim) 해제

윈도우를 옮긴 후 컴퓨터 복구가 깨지면 귀찮으니까 작업 전 먼저 컴퓨터 복구를 해제하여 WinRE.wim 구성을 원래의 윈도우 폴더로 되돌려주고, 더불어 VHD 윈도우에서는 사용할 수 없는 최대 절전 모드 기능을 미리 해제하여 쓸데없는 hiberfil.sys 파일이 작업에 포함되지 않게 합니다. [VHD 로 부팅을 진행하면 알아서 해제되지만 사용하려는 도구에 따라 쓸데없이 복사 작업에 포함되기 때문입니다.]

01. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 ReAgentcPowerCfg 작업을 진행합니다.

reagentc /disable
powercfg -h off




컴퓨터 복구 구성과 최대 절전 모드를 해제하였으면 이제 본격적으로 작업을 시작합니다. 작업에 사용할 도구에 따라 적절히 원하는 단락으로 이동하시면 됩니다. [뭐 차례로 보셔도 상관은 없습니다. 헷갈리지만 않으시면...]

2-A <- 시스템 이미지 만들기를 사용할 경우.
2-B <- 고스트와 같은 파티션(드라이브) 복사 도구를 통해 작업하려는 경우.
2-C <- ImageX 와 같은 파티션(드라이브) 백업 도구를 통해 작업하려는 경우.





2-A. 시스템 이미지 만들기를 통해 VHD 가상 디스크로 윈도우 옮기기

시스템 이미지 만들기는 한 호흡에 가도록 하겠습니다. 아래의 작업을 진행합니다.

01. 시작 -> 모든 프로그램 -> 유지 관리 -> 백업 및 복원 -> 시스템 이미지 만들기로 들어갑니다.



02. 백업을 저장할 위치로 VHD 파일을 위치시킬 드라이브(글에선 D:)를 선택한 후 다음을 클릭합니다.



03. 기본적으로 윈도우 드라이브(C:)가 선택되어져 있습니다. 그대로 다음을 클릭합니다.



04. 백업 시작을 클릭합니다.



05. 윈도우 드라이브를 VHD 파일 형식으로 백업하는 작업이 시작됩니다.



06. 백업이 모두 완료되면 시스템 복구 디스크를 만들지를 물어봅니다. 필요없습니다. 아니요를 선택합니다. 시스템 이미지 만들기로 필요한 작업은 모두 마쳤습니다. 이후 시스템 이미지 만들기와 백업 및 복원을 모두 종료합니다.



07. 앞서 백업 위치로 지정했던 D: 의 루트에 WindowsImageBackup 이란 폴더가 생성되어 있는 걸 확인할 수 있습니다. [D: -> WindowsImageBackup -> 본인의 컴퓨터 이름 폴더 -> Backup xxxx-xx-xx xxxxxx 폴더] 로 들어가면 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.vhd 와 같이 볼륨 GUID 형식의 이름으로 VHD 파일이 존재하고 있습니다. 해당 파일이 바로 윈도우 드라이브를 백업한 VHD 파일입니다.

파일을 찾았으면 해당 VHD 파일만 잘라내어 적절히 본인이 원하는 경로로 옮긴 후, 원하는 대로 이름을 바꿔줍니다. VHD 파일을 옮겼으면 이후 WindowsImageBackup 폴더는 필요가 없기 때문에 통채로 삭제하면 됩니다.



08. 실행(Windows + R) -> diskmgmt.msc 를 통해 디스크 관리를 실행하고, 동작 -> VHD 연결을 통해 준비한 VHD 파일을 시스템에 연결합니다. [참고로 읽기 전용으로 연결하면 이후의 작업을 진행할 수 없습니다.]



09. 모든 준비를 마쳤습니다. VHD 가상 디스크의 드라이브 문자를(글에선 G:) 기억한 후 다음 3 단락으로 넘어갑니다.
a. 만약 시스템 예약 파티션이 구성되어 있다면?

만약 시스템 예약 파티션이 함께 구성되어 있는 시스템이라면 03 의 과정에서 윈도우 드라이브와 함께 시스템 예약 파티션도 선택되어 있습니다. 해제할 수 없기 때문에 그대로 두 드라이브를 모두 백업하면 됩니다.



이후 백업을 마친 후 07 의 과정에서 확인해보면 VHD 파일이 두 개가 생성되어 있습니다. 용량을 보면 어떤 게 시스템 예약 파티션을 백업한 VHD 파일이고, 어떤 게 윈도우 드라이브를 백업한 VHD 파일인지 파악이 될 겁니다. 시스템 예약 파티션을 백업한 VHD 파일은 필요가 없기 때문에 버리고, 윈도우 드라이브를 백업한 VHD 파일만 가지고 동일하게 작업을 진행하면 됩니다.

b. 현재 윈도우 파티션의 크기보다 VHD 가상 디스크를 더 크게 사용하고자 한다면?

만약 현재 사용 중인 윈도우 파티션의 크기가 너무 작다고 생각되어 그보다 더 크게 VHD 가상 디스크를 만들어 사용할 생각이라면, 생성된 VHD 파일을 시스템에 연결하기 전 먼저 VHD 가상 디스크의 최대 크기를 확장하면 됩니다. 이는 01~07 까지의 작업은 동일하게 대신 08 의 작업은 아래와 같이 DiskPart 로 대체하여 작업을 진행하면 됩니다.

diskpart
select vdisk file="D:\VHD\Win7.vhd"
expand vdisk maximum=40960 <- 확장을 원하는 크기를 MB 단위로 입력
attach vdisk
select partition=1
extend
exit



작업 후 디스크 관리를 통해 확인해보면 해당 가상 디스크의 최대 크기 및 안에 포함된 파티션이 확장된 것을 확인할 수 있습니다. 드라이브 문자를 파악한 후 마찬가지로 다음 단락으로 넘어갑니다.


c. 현재 윈도우 파티션의 크기보다 VHD 가상 디스크를 더 작게 사용하고자 한다면?

만약 현재 사용 중인 윈도우 파티션의 크기가 너무 크다고 생각되어 그보다 더 작게 VHD 가상 디스크를 만들어 사용할 생각이라면, 작업을 시작하기 전 먼저 윈도우 파티션의 크기를 축소한 후, 그렇게 축소된 상태에서 시스템 이미지 만들기를 통해 VHD 파일을 생성하면 됩니다.

이렇게 VHD 파일의 생성이 완료되면, 윈도우 파티션을 다시 원래대로 확장하면 됩니다. 혹시나 파티션의 축소와 확장 작업에 대해 모르신다면 아래의 두 글을 참고하시길 바랍니다.

[디스크 관리] 파티션 축소하기 - 너무 큰 파티션의 크기를 축소하는 방법
[디스크 관리] 파티션 확장하기 - 공간이 부족한 파티션의 크기를 확장하는 방법



윈도우 파티션의 축소는 원하는 VHD 가상 디스크의 크기로 적절히 축소하면 되겠죠? 시스템 이미지 만들기를 통해서는 이것 외에는 딱히 다른 방법이 떠오르지 않는군요.

그런데 만약 이렇게 볼륨 축소를 통해서 자신이 원하는 크기가 나오지 않는다면(최대한 축소해도 원하는 크기보다 축소된 파티션의 크기가 더 크다면) 이젠 시스템 이미지 만들기만으로는 딱히 답이 없고, 애초에 고스트나 ImageX 등을 활용하는 다른 방법을 통하는 수 밖에는 없을 듯 합니다.





2-B. 고스트를 통해 VHD 가상 디스크로 윈도우 옮기기

시만텍 고스트나 노턴 고스트, 트루 이미지 등의 파티션(드라이브) 복사를 지원하는 프로그램을 사용하는 작업의 기본 틀은 같습니다. 단지 윈도우 파티션을 가상 디스크 파티션으로 복사하는 부분만 사용하는 프로그램으로 작업하면 되는 것이죠. 아무튼 글에선 시만텍 고스트를 기준으로 작업하도록 하겠습니다.

이번엔 VHD 준비 부분, 윈도우 파티션 복사 부분, 이렇게 두 호흡으로 가도록 하겠습니다. VHD 준비 부분은 공통이고, 윈도우 파티션 복사 부분만 자신이 사용하는 프로그램으로 작업하시면 됩니다. 참고로 VHD 가상 디스크의 생성은 DiskPart 를 사용하도록 하겠습니다. [디스크 관리로 설명하려고 했더니 초기화에 뭐에 너무 길어지네요?]


1. VHD 가상 디스크 준비하기

01. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 DiskPart 작업을 통해 VHD 가상 디스크를 준비합니다.

diskpart
create vdisk file="D:\VHD\Win7.vhd" type=expandable maximum=30720 <- 가상 디스크 크기 (MB)
attach vdisk
create partition primary
format fs=ntfs quick <- 시만텍 고스트를 사용하는 경우 포맷은 생략해도 상관 없음.
assign
exit



02. 디스크 관리를 통해 VHD 가상 디스크가 정상적으로 생성되고, VHD 가상 디스크 안에 파티션도 정상적으로 생성되었는지 확인합니다. VHD 가상 디스크 파티션의 드라이브 문자를(글에선 G:) 확인한 후 기억합니다.

* 이 때 VHD 파일을 드라이브의 루트가 아닌 위와 같이 특정 폴더의 하위에 넣을 거라면 DiskPart 작업 전 미리 해당 폴더를 생성해야 합니다.

* VHD 파일을 특정 폴더 하위에 넣고 해당 VHD 파일로 부팅할 예정이라면 폴더 경로에 한글과 같은 2 바이트 문자나 특수 문자가 포함되어 있으면 안 됩니다. 영문 또는 숫자로만 폴더 이름을 정하세요(ex. VHD)

* VHD 가상 디스크의 크기는 원하는 대로 적절히 만들면 됩니다. 더 크게 만드는 건 별 문제가 안 되고요. 보통 대부분의 파티션(드라이브) 복사 프로그램은 원본보다 더 작은 대상으로의 복사 작업도 지원하기 때문에(물론 고스트도 지원), 현재 윈도우 파티션보다 더 작게 VHD 가상 디스크를 만들어도 됩니다. 단! 아무리 작게 만들어도 현재 윈도우 파티션에 포함된 전체 데이터의 크기보다는 크게 만들어야 합니다.



2. 윈도우 파티션을 가상 디스크로 복사하기

01. 고스트를 실행 가능한 위치에 미리 준비한 후 관리자 권한으로 명령 프롬프트를 실행하여 해당 경로로 이동, 다음과 같이 파티션 복사 작업을 진행합니다.

ghost32 -clone,mode=pcopy,src=1:1,dst=4:1 -sure -fx -fnf



02. 복사 작업을 모두 마쳤으면 G: 드라이브를 확인하여 정상적으로 복사되었는지 확인한 후 3 단락으로 넘어갑니다.
* src=1:1 <- 원본(Source)이 될 파티션(윈도우 파티션), 첫 번째 디스크의 첫 번째 파티션
* dst=4:1 <- 대상(Destination)이 될 파티션(VHD 가상 디스크 파티션), 네 번째 디스크의 첫 번째 파티션

* 윈도우는 디스크 번호를 0 부터 시작하고, 고스트는 디스크 번호를 1 부터 시작합니다. 고로 윈도우에서 디스크 0 은 고스트에서 디스크 1 이 됩니다. 이점 유의하시고 명령을 보시면 될 듯 합니다. 헷갈리면 그냥 그래픽 모드에서 복사하세요.

* 이와 같이 윈도우에서 파티션 복사 작업을 진행하는 경우, 윈도우 파티션과 같이 원본이 현재 사용 중인 파티션인 경우 자동으로 볼륨 스냅샷(Volume Snapshot) 기능을 활성화하여 복사 작업을 진행합니다. 만약에 고스트를 사용할 줄 알고 그래픽 모드에서 작업할 예정이라면 작업의 마지막 단계에서 반드시 Volume Snapshot 을 선택하셔야 합니다. [윈도우 파티션은 잠글 수 없기 때문에 Force Lock 은 사용 불가]

* 64 비트 윈도우를 사용 중이라면 고스트도 64 비트 버전으로 사용하시길 바랍니다.[Ghost64.exe] 32비트 고스트를 사용하는 경우 볼륨 스냅샷 기능이 정상적으로 작동하지 않아 작업이 실패하게 됩니다.






2-C. ImageX 를 통해 VHD 가상 디스크로 윈도우 옮기기

글을 쓰다보니까 IamgeX 까지 해야 되나 하는 생각이 들기도 하지만, 기왕 정리를 시작한 거 한 번에 정리하기로 하죠. ImageX 로는 현재 실행 중인 윈도우를 바로 백업할 수 없기 때문에, 윈도우 PE 로 부팅하여 작업을 진행해야 합니다. 윈도우 PE 는 간단하게 윈도우 7 설치 DVD 를 사용하도록 하겠습니다.

그러니 미리 윈도우 7 설치 DVD 의 비트 버전에 맞는 ImageX 파일을 준비하시길 바랍니다. 각 버전의 ImageX 실행 파일은 본 블로그의 다운로드 페이지에서 받으실 수 있습니다.

저는 ImageX 파일을 VHD 파일을 위치시킬 드라이브인 D: 드라이브의 루트에 미리 준비시켜 놓도록 하겠습니다. 더불어 VHD 가상 디스크를 위치시킬 폴더도 미리 생성해 두었습니다.



자~ 그럼 IamgeX 도 한 호흡에 가도록 하죠. 아래의 작업을 진행합니다.

01. 윈도우 7 설치 DVD 로 부팅한 후 Shift + F10 을 눌러 명령 프롬프트를 실행, 다음의 DiskPart 작업을 진행하여 본 작업에 필요한 드라이브 문자들을 미리 파악합니다. 윈도우 PE 에서는 윈도우 때와 드라이브 문자가 달라지기 때문에 반드시 변화된 드라이브 문자를 먼저 파악해야 합니다. 용량이나 레이블 정보를 보셔서 파악하시길 바랍니다.

diskpart
list volume
exit




02. 드라이브 문자를 파악했습니다. 윈도우 드라이브는 C:, ImageX 파일을 준비했고 VHD 파일을 위치시킬 드라이브는 F: 입니다. 이에 맞춰 아래의 작업을 순서대로 진행합니다.

F:
imagex /capture /compress fast C: F:\Backup.wim "Backup C"

diskpart
create vdisk file="F:\VHD\Win7.vhd" type=expandable maximum=30720 <- 가상 디스크 크기 (MB)
attach vdisk
create partition primary
format fs=ntfs quick label="Windows 7" <- 반드시 포맷해야 하며 레이블은 원하는대로 지정.
assign letter=v <- 드라이브 문자는 적당히 V: 로 할당하도록 하겠습니다.
exit

imagex /apply F:\Backup.wim 1 V:\
del F:\Backup.wim /q

* 이는 ImageX 를 통해 윈도우 드라이브 전체를 Backup.wim 이미지 파일로 백업한 후, VHD 가상 디스크를 생성하여 파티션까지 포맷을 마친 상태로 준비하고, 이후 이렇게 준비된 VHD 가상 디스크에 백업한 윈도우를 다시 풀어주는 것입니다. 이후 더이상 필요없는 Backup.wim 파일은 곧바로 삭제하였습니다.


03. 작업을 모두 마쳤으면 시스템을 재부팅하여 윈도우로 다시 진입합니다. 이후 실행[Windows + R] -> diskmgmt.msc 를 통해 디스크 관리를 실행하고, 동작 -> VHD 연결을 통해 윈도우 PE 에서 준비한 VHD 파일을 시스템에 연결합니다. [참고로 읽기 전용으로 연결하면 이후의 작업을 진행할 수 없습니다.]



04. 모든 준비를 마쳤습니다. VHD 가상 디스크의 드라이브 문자를(글에선 G:) 기억한 후 다음 3 단락으로 넘어갑니다
* VHD 가상 디스크의 크기는 고스트 때와 마찬가지로 원하는 대로 적절히 만들면 됩니다. 현재 윈도우 파티션에 포함된 전체 데이터의 크기보다만 크게 만드시면 됩니다.

* ImageX 로 백업하고 복원하는 부분을 고스트와 같은 다른 파티션(드라이브) 백업 도구로 대체하여도 됩니다. 뭐 그냥 그렇다고요.

* 이건 ImageX 와는 상관없는 이야기이니 그냥 참고만 하시길 바랍니다. 만약에 고스트도 ImageX 도 이도 저도 아무 것도 없다면? 이와 같은 윈도우 PE 상태에서 XCopy 로 윈도우를 직접 복사해도 됩니다.

xcopy "F:\*.*" "V:\" /s /e /h /o /x /y /c

근데 이걸 사용하지 않는 이유는? 하드 링크된 파일들에 대한 처리를 정상적으로 못하기 때문에 윈도우 비스타 이후 즉, 윈도우 비스타, 윈도우 7, 윈도우 8 의 경우 윈도우의 전체 용량이 WinSxS 에 하드 링크로 존재하는 파일들의 크기만큼 늘어나 버립니다. 이러한 하드 링크된 파일들을 XCopy 로 처리하는 방법을 아직 모르겠네요.





3. VHD 가상 디스크 윈도우의 레지스트리 수정하기 - 드라이브 문자 정리

1. 이 작업이 필요한 이유

이제 VHD 로 옮긴 윈도우를 부팅에 등록하고 VHD 로 부팅을 해야 하죠. 근데 현재 상태에서 곧바로 VHD 윈도우를 부팅에 등록하고 VHD 윈도우로 부팅을 진행하면 정상적으로 윈도우에 진입할 수도 있고 안 할 수도 있습니다. 그리고 부팅이 되더라도 아래와 같은 경우의 수가 생길 수도 있단 말이죠.

분명 VHD 윈도우로 부팅했는데 기존의 윈도우 파티션이 C: 를 가지고 있는 상황


파티션 정보를 보면 VHD 로 부팅한 게 확실하죠? 근데 기존의 윈도우 파티션이 C: 를 가지고 있네요? 이건 VHD 가 원래 C: 를 할당받아야 되는데 기존의 파티션이 C: 를 가지고 있는지라 정상적으로 C: 를 가져오지 못한 상황입니다. 시스템 예약 파티션이 구성되어 있으면 위와 같이 될 확률이 거의 100% 라고 보시면 됩니다.

물론 이렇게 부팅이라도 되면 그냥 이 상태에서 레지스트리를 통해 강제로 드라이브 문자를 변경하는 방법을 사용하여 위에서 보이는 C: 와 G: 를 서로 바꿔주면 됩니다. [지금 하려는 작업이 해당 작업을 미리 진행하는 겁니다.]

이건 여담이지만 참고로 만약에 시스템 예약 파티션이 없는 상태 즉, 기존 윈도우 파티션이 동시에 시스템 파티션이었다면? 윈도우는 시스템 파티션이 부팅 파티션이 아닌 경우 새로운 윈도우로 부팅하면 시스템 파티션의 드라이브 문자를 없애버리려는 특이한 성격을 가지고 있어요. 그래서 그런 경우 기존의 윈도두 파티션의 드라이브 문자가 제거되고, 얼떨결에 C: 가 사라져 버렸으니 VHD 가상 디스크가 정상적으로 C: 를 할당 받게 되죠.

아무튼 이런 두 가지의 경우는 그나마 나은 상황이라고 할 수 있습니다. 근데 여차하면 로그인 단계에서 더이상 바탕 화면으로 진입하지 못하는 사태가 발생하는 경우도 있으니까요. 잣나무 열매 같은 상황이죠. 그럼 어쩔 수 없이 다시 기존 윈도우로 부팅하여 현재 하려는 작업을 진행해줘야 합니다.

그러니까 이러나 저러나 지금 하려는 작업을 미리 해놓고 VHD 로 부팅하는 게 좋다는 거죠.



2. VHD 윈도우의 레지스트리 드라이브 문자 설정 바꿔주기

자~ 어떤 도구로 VHD 가상 디스크를 준비했든, 현재 VHD 가상 디스크가 연결되어 있고, G: 드라이브를 할당받은 상태입니다. 이 상태에서 작업을 진행하도록 하겠습니다. [어쩌다 보니 C: 와 G: 가 비슷하게 생겨서 헷갈릴 수 있게 되었네요, 그냥 잘 구별하세요;;;]

01. 실행[Windows Key +R] -> regedit 를 통해 레지스트리 편집기를 실행합니다. 이후 HKEY_LOCAL_MACHINE 키를 선택한 후 메뉴의 파일 -> 하이브 로드로 들어갑니다. [* 먼저 HKEY_LOCAL_MACHINE 키를 선택하지 않으면 하이브 로드 메뉴가 활성화되지 않습니다.]



02. 현재 VHD 가상 디스크(G: 드라이브)에 복제되어 있는 윈도우의 시스템 레지스트리 하이브 파일을 로드합니다.

G:\Windows\System32\config\SYSTEM



03. 키 이름은 적당히 Temp 로 설정합니다. [* 키 이름은 원하는대로 해도 상관 없지만 그냥 Temp 로 하죠.]



04. 하이브 로드가 끝났으면 HKEY_LOCAL_MACHINE\Temp\MountedDevices 로 이동합니다. 여기에서 작업한 도구나 뭐 여타 여러 가지 변수에 따라 현재 VHD 가상 디스크인 G: 의 값이 있는 경우와 없는 경우, 두 가지의 경우가 있을 수 있습니다.

만약에 아래와 같이 \DosDevices\G: 값이 있다면 먼저 해당 값을삭제합니다. 없으면 05 단계로 바로 넘어갑니다.



05. 이제 \DosDevices\C: 값을 선택한 후 F2 를 누르거나 마우스 오른쪽 버튼을 클릭해서 이름 바꾸기를 통해, 값의 이름을 \DosDevices\G: 로 바꿔줍니다. [* 값을 수정하는 게 아니라 이름을 바꾸는 겁니다.]

\DosDevices\C: -> \DosDevices\G: 로 이름 바꾸기



06. 즉, 최종적으로 아래와 같이 기존의 \DosDevices\C: -> \DosDevices\G: 로 이름이 바뀌어서 결과적으로 해당 레지스트리 키에서 \DosDevices\C: 는 사라진 상태가 되어야 합니다.



07. 작업을 모두 마쳤으면 그대로 레지스트리 편집기를 종료합니다.
* 사실 \DosDevices\C: 를 반드시 \DosDevices\G: 로 바꿀 필요는 없습니다. 본인이 VHD 로 부팅한 후 기존 윈도우 드라이브에 사용할 드라이브 문자를 지정해주면 됩니다.

* 뭐가 뭔지 잘 모르겠으면 그냥 \DosDevices\.. 은 전부 다 지워버려도 됩니다. 단! 그러면 VHD 윈도우로 부팅한 후 드라이브 문자를 다시 원하는대로 정렬해줘야하는 불편이 있습니다.

* 만약 이후 4 단락의 작업을 진행하여 부팅을 시도하였는데 바탕 화면으로 진입하지 못하는 상황이 발생한다면 다시 원래의 윈도우로 부팅한 후 이 작업으로 되돌아와 바로 앞에서 말한 팁과 같이 \DosDevices\.. 를 모두 지워버리시고 다시 부팅해 보시길 바랍니다.





4. VHD 가상 디스크 윈도우를 부팅에 등록하고 부팅하기

이제 VHD 가상 디스크로 옮긴 윈도우를 부팅에 등록하고 부팅만 하면 됩니다.


1. VHD 윈도우 부팅 등록하기

01. 관리자 권한으로 명령 프롬프트를 실행한 후 BCDBoot 를 통해 부팅을 등록하고 BCDEdit 를 통해 등록된 VHD 윈도우의 부팅 표시 이름을 수정합니다.

bcdboot G:\Windows /l ko-KR
bcdedit /set {default} description "Windows 7 - VHD"


* 반드시 먼저 BCDBoot 작업을 진행한 후 BCDEdit 작업을 진행해야 합니다. 이는 BCDBoot 를 통해 G:\Windows 를 부팅에 등록하면 이후부터는 G:\Windows 가 {default} 식별자를 부여받기 때문에 그렇습니다. 그 전까지는 현재 C:\Windows 의 윈도우가 {default} 이기 때문에 BCDEdit 작업을 먼저 진행하면 VHD 윈도우가 아닌 원래 윈도우 부팅의 표시 이름을 바꾸는 작업이 되어 버립니다.



2. VHD 윈도우로 부팅하고 확인하기

이제 시스템을 재시작하면 멀티 부팅 메뉴가 출력되고, VHD 윈도우가 기본 부팅 항목으로 설정되어 있기에, VHD 윈도우로 부팅을 진행하게 됩니다.



단! 이 때 시스템 예약 이미지나 고스트 작업과 같이 윈도우를 실행 중인 상태에서 곧바로 윈도우 복제 작업을 진행한 경우에는 아래와 같이 윈도우 오류 복구 단계가 출력되게 됩니다. 이는 윈도우가 실행 중인 상태에서 윈도우를 복제하였기 때문에 첫 번째 부팅에서는 마치 시스템의 전원을 강제로 끈 것과 비슷한 상황이 되었기 때문에 이러한 상황이 발생하는 것입니다. 원래 그런거고 문제가 있는 상황이 아니기 때문에 그대로 표준 모드로 Windows 시작을 선택하시면 됩니다.



윈도우에 진입하였으면 디스크 관리를 실행하여 VHD 가상 디스크가 정상적으로 C: 를 할당 받았는지 확인합니다.



이렇게 멀티 부팅 상태로 로컬 윈도우와 VHD 윈도우 둘 모두를 그대로 사용할 거라면 작업은 여기에서 끝입니다. 그대로 6 단락으로 넘어가시면 되고요. 하지만 만약에 기존의 로컬 디스크에 설치된 윈도우를 제거하고 VHD 윈도우만 사용할 거라면 5 단락의 작업을 추가적으로 진행해야 합니다.




5. 기존 윈도우의 제거

여기에는 크게 두 가지의 경우가 있을 수 있습니다. 자신의 상황에 맞게 작업하시면 됩니다. [후우... 이제 슬슬 피곤해지는데요?]


1. 기존 윈도우 파티션이 일반 파티션인 경우

기존 윈도우 파티션이 일반 파티션인 상황(페이지 파일까지는 윈도우에서 곧바로 대처 가능)


시스템 예약 파티션이 구성되어 있는 경우 이렇게 기존의 윈도우 파티션이 아무런 속성도 없는 일반 파티션인 경우가 일반적입니다. 이 때는 그냥 고민할 것 없이 해당 파티션을 윈도우에서 곧바로 포맷하시면 됩니다.



만약에 해당 파티션에 페이지 파일 속성이 부여되어 있다면 먼저 페이지 파일을 제거한 후 포맷하시면 됩니다. 자세한 내용은 아래의 글을 참고하세요. [페이지 파일을 제거하는데에는 설정 후 윈도우의 재부팅이 필요합니다.]

[윈도우 7] 가상 메모리(페이징 파일) 관리하기


기존의 윈도우를 제거하였으면 해당 부팅 메뉴도 더이상 필요가 없기 때문에 삭제합니다. 시스템 구성[실행 -> msconfig] -> 부팅을 통해 삭제하시면 됩니다.





2. 기존 윈도우 파티션이 시스템 파티션인 경우

기존 윈도우 파티션이 시스템 속성을 가진 경우(윈도우에서 곧바로 포맷 불가능)


시스템 파티션은 윈도우에서 포맷할 수 없습니다. 그리하여 어쩔 수 없이 윈도우 PE 로 부팅해서 작업을 진행해야 하죠. 마찬가지로 간단하게 윈도우 7 설치 DVD 를 사용하시면 됩니다. 윈도우 7 설치 DVD 로 부팅한 후 포맷 작업을 진행하고, 이렇게 되면 BOOTMGR 부트 매니저가 제거되어 부팅 정보가 사라지기 때문에, 다시 VHD 윈도우에 대한 부팅을 구성해야 합니다.

01. 시스템을 재시작하여 윈도우 7 설치 DVD 로 부팅한 후 Sfhit + F10 을 통해 명령 프롬프트를 띄은 후 다음의 작업을 진행합니다. [* 아래의 list volume 명령을 통해 확인한 결과 기존 윈도우 드라이브는 C:, VHD 파일이 위치한 드라이브는 F: 라는 가정하에 명령을 보시면 됩니다.]

diskpart
list volume <- 확인 결과 기존 윈도우 드라이브는 C:, VHD 파일이 위치한 드라이브는 F: 로 가정.
select volume=C
format fs=ntfs quick label="Drive G"
select vdisk file="F:\VHD\Win7.vhd"
attach vdisk
select partition=1
assign letter=V
exit

bcdboot V:\Windows /l ko-KR


02. 시스템을 재시작합니다.





6. 마무리 작업 - 컴퓨터 복구 구성의(WinRE.wim) 복원

최종적으로 미리 해제해놓은 컴퓨터 복구 구성을 다시 복원하면 됩니다.

01. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 ReAgentc 작업을 진행합니다.

reagentc /enable



수고하셨습니다. 모든 작업을 마쳤네요. ^^




7. VHD 파일을 기존 윈도우 드라이브로 옮기기

지금까지 알아보았던 것은 다른 드라이브에 VHD 파일을 위치시키는 경우였습니다. 이번엔 이와는 달리 기존의 윈도우를 제거하고 해당 드라이브에 VHD 파일을 위치시키는 경우입니다. 아주 약간의 부연 설명만이 더 필요하기 때문에 그에 대한 설명만 간략하게 하도록 하겠습니다.


일단 이 경우도 작업은 위의 1~5 단락까지의 작업과 동일합니다. 단! 한 가지 반드시 주의하셔야 할 게 있는데요. 2 단락의 작업에서 A, B, C 어떤 방법을 사용하든, VHD 가상 디스크를 생성할 때 기존의 윈도우 드라이브 크기보다 작게 VHD 가상 디스크를 생성하셔야 합니다. 그래야 VHD 파일을 기존의 윈도우 드라이브로 복사한 후 VHD 로 정상 부팅할 수 있습니다.

이게 왜 그러냐면요. VHD 는 부팅과 동시에 최대 크기로 확장되죠. 근데 기존 윈도우 드라이브와 동일한 최대 크기를 가진 VHD 파일이 해당 드라이브에서 확장되면? 공간 부족이 발생하게 됩니다. 왜 공간 부족이 발생하느냐? VHD 파일이 미묘하게 더 크고, 기존 윈도우 드라이브는 MFT 정보 등으로 인해 아무런 파일이 없더라도 어느 정도 약간의 용량이 사용되고 있기 때문입니다. 이러한 이유로 결국 공간 부족이 발생하는 것이죠.

그래서 아무튼 기존의 윈도우 드라이브 크기보다 VHD 가상 디스크의 최대 크기를 좀 더 작게 만들어야 하는 겁니다. 전체적인 작업에서는 이것만 주의하시면 됩니다.


기존 윈도우 드라이브를 포맷하는 5 단락의 작업까지 모두 마치면 최종적으로 기존 윈도우 드라이브는 비어 있게 되죠? 그럼 이제 다시 윈도우 PE 로 부팅하여 현재 VHD 파일을 기존의 윈도우 드라이브로 옮긴 후, 새롭게 BCDBoot 를 통해 부팅을 구성하거나, BCDEdit 를 통해 기존의 부팅 항목을 수정하면 됩니다.

이 경우엔 BCDEdit 를 통해 기존의 부팅을 수정하는 게 좀 더 간결합니다. 아래와 같이 작업하면 됩니다. [BCDBoot 로 작업하려는 경우 다시 VHD 를 연결하고 해야 하고, 작업 후 기존의 부팅 항목도 제거해야 하는 불편이 있습니다.]

move /y "F:\VHD\Win7.vhd" "C:\VHD\"
bcdedit /set {default} device vhd="[C:]\VHD\Win7.vhd"
bcdedit /set {default} osdevice vhd="[C:]\VHD\Win7.vhd"

* 이 때 F: 는 PE 에서의 현재 VHD 파일이 위치한 드라이브, C: 는 기존 윈도우 드라이브, C:\VHD 는 윈도우에서 미리 생성하였다고 가정

끝입니다. 이제 최종적으로 6 단락만 진행하면 되죠. VHD 파일을 기존 윈도우 파티션에 위치시키는 것도 간단하죠?


참고로 만약 기존의 윈도우 드라이브가 시스템 파티션이었던 경우라면, 그러니까 5 단락 제 2 작업을 진행해야 하는 경우라면, 5 단락 제 2 작업을 진행한 후 위의 작업을 추가적으로 진행하는 것보다는, 이 둘을 한 번에 처리하는 게 더 효율적입니다. 그러니까 아래와 같이 말이죠.

diskpart
list volume <- 확인 결과 기존 윈도우 드라이브는 C:, VHD 파일이 위치한 드라이브는 F: 로 가정.
select volume=C
format fs=ntfs quick label="Drive G"
exit

md C:\VHD
move /y "F:\VHD\Win7.vhd" "C:\VHD\"

diskpart
select vdisk file="C:\VHD\Win7.vhd"
attach vdisk
select partition=1
assign letter=V
exit

bcdboot V:\Windows /l ko-KR


작업에서는 이 이상 더 크게 드릴 말이 없네요. 작업에 대한 이야기는 여기까지 하도록 하겠습니다.




윈도우 8 도 모든 작업이 동일

VHD 부팅을 지원하는 윈도우 8 도 이번 글에서 설명한 것과 동일하게 작업을 진행하시면 됩니다. 물론 VHD 부팅을 지원하는 Pro, Enterprise 에디션에 한하는 것도 동일합니다.


근데 한 가지 윈도우 7 때와 다른 점이 있는데, 그것은 윈도우 8 에서는 시스템 이미지 만들기가 제어판 -> 윈도우 7 파일 복구 -> 시스템 이미지 만들기에 위치해 있다는 점입니다.

그리고 이렇게 시스템 이미지 만들기를 통해 생성되는 가상 디스크 파일은 VHD 포맷이 아니라, 윈도우 8 에서 새롭게 추가된 VHDX 포맷이라는 점입니다. 뭐 VHD 나 VHDX 나 실 사용에서는 크게 다른 부분이 없고 End User 입장에서는 사실상 같은 거라고 봐도 무방하기 때문에 뭐 크게 신경쓸 부분은 아닙니다.


뭐 이정도면 된 것 같네요. 이번 글은 여기까지 입니다. ^^

글이 생각보다 길게 안 나와서 다행이네요. 근데 글을 모두 작성하고 난 후에 생각해보니까 실수했네요. 이 글을 윈도우 8 을 기준으로 작성했어야 했는데... 왜 제가 이걸 윈도우 7 기준으로 작성했을까요? 나중에 윈도우 8 을 기준으로 다시 한 편 더 작성하면 되기야 하겠지만, 이걸 또 똑같이 작성해야 하나? 라는 뭐 그런 생각도 들고... 하아... 무의식 중에 습관적으로 윈도우 7 으로 작업했어... 하아... 생각하니까 열 받네?

 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 돈워리 2012.09.07 00:45 신고  댓글주소  수정/삭제  댓글쓰기
    대단한 강좌입니다.^^
    imagex64 도 윈도우7,8이 틀리네요.. 다운로드까지..
    한번에 해결되었습니다.
    캐플님 글엔 중독성이 있습니다.^^
    • BlogIcon CApple 2012.09.07 07:59 신고  댓글주소  수정/삭제
      ImageX 는 비트 버전만 맞춘다면 윈도우 7 AIK 에 포함된 것이나 윈도우 8 ADK 에 포함된 것 아무거나 사용해도 됩니다. 어쩌다보니 둘을 같이 제공하고 있네요. 윈도우 8 ADK 에 포함된 버전이 더 최신 버전이니 그걸 위주로 사용하면 되겠네요.
  2. BlogIcon 니드뽀폴쉐 2012.09.07 12:16 신고  댓글주소  수정/삭제  댓글쓰기
    어제 확인했으나 도저히 읽지 못할 것 같아 맑은 정신에 다시...ㅋ


    고급 정보(?)에 대한 강의 감사합니다~ ^^


    근데, vhd가 시스템 파티션보다 약간 작아야 된다고 하셨고, 이유도 설명하셨는데...
    최소한 작아야 하는 정도나 비율이 있나요? 한... 2%만 작아도 되려나... ^^;;;;
    • BlogIcon CApple 2012.09.07 12:46 신고  댓글주소  수정/삭제
      해당 드라이브에 다른 파일들은 전혀 넣지 않고 VHD 파일만 넣을 예정이며, 자식 VHD 등을 생성하지 않을 거라면, 뭐 여유 공간 1GB 정도만 생각하고 그 정도만 더 작으면 되지 않을까요? 다른 파일들도 넣고 자식 VHD 등도 생각한다면 그에 맞춰서 적당히 잘 계산해야 겠죠. ㅎㅎㅎ

      p.s 시스템 파티션이 아니라 해당 VHD 가 위치할 드라이브입니다. ^^ 시스템 파티션이라고 하면 약간 오해의 소지가 있으니까요. ㅎㅎㅎ
    • BlogIcon 니드뽀폴쉐 2012.09.07 15:42 신고  댓글주소  수정/삭제
      음... 그렇군요. 답변 감사합니다~ ^^
  3. 구름처럼 2013.02.15 23:45 신고  댓글주소  수정/삭제  댓글쓰기
    안녕하세요
    그대로 따라 했는데 안되는 부분이 있어서 질문드려요
    hdd는 한개구요 c ,d 로 파티션이 나누어져 있어요
    c에 있는 win7을 d 에 시스템이미지만들기 방법으로 vhd를 만들었습니다
    그리고 vhd로 부팅하는것 까지 성공했는데 기존위도우가 c로 그대로 잡혀있고 vhd로 부팅된게 f로
    잡혀 있는거에요 , 그래서 다시 기존 c 로 부팅하고 이번에는 드라이브문자변경하기를 따라해서
    f를 삭제하고 c를 f로 바꿔서 재부팅했는데 바탕화면을 준비중입니다 ~ 화면에서 오랜시간 있다가
    다음 바탕화면이 나올시기에 바탕화면이 나오지 않고 파란 화면만 있어요?
    그러니까 질문의 요지는 드라이브문자변경후 바탕화면이 안나와요
    • BlogIcon CApple 2013.02.15 23:56 신고  댓글주소  수정/삭제
      "그래서 다시 기존 c: 로 부팅하고"

      해당 부분에서 잘못하셨습니다. 현재 VHD 윈도우로 부팅한 상태에서 드라이브 문자를 변경하셔야죠. 생각해보세요. VHD 윈도우가 C: 를 할당 받아야 하는데 못 받았습니다. 그러면 현재 VHD 윈도우에 설정된 드라이브들의 설정을 바꿔서 VHD 에 해당하는 드라이브의 문자를 정상적으로 C: 로 바꿔줘야 하겠죠? 그런데 왜 이전의 윈도우에서 작업을 하시나요? 거긴 앞으로 사용할 VHD 윈도우와는 상관이 없는 곳인데 말이죠. 거기에서 잘못된 겁니다.
  4. 구름처럼 2013.02.17 00:08 신고  댓글주소  수정/삭제  댓글쓰기
    답변 감사합니다
    vhd로 부팅한후 디스크관리에서 c를 다른드라이브문자로 변경하려고 했는데
    어떤 오류메세지가 나오면서 바꿀수가 없었어요

    그래서 강좌 내용에서 제가 건너뛴 드라이브 문자 미리변경하는 부분을
    다시 따라 하게 됬습니다

    ""만약 이후 4 단락의 작업을 진행하여 부팅을 시도하였는데 바탕 화면으로 진입하지 못하는 상황이 발생한다면 다시 원래의 윈도우로 부팅한 후 이 작업으로 되돌아와 바로 앞에서 말한 팁과 같이 \DosDevices\.. 를 모두 지워버리시고 다시 부팅해 보시길 바랍니다.""

    강좌 내용대로 바탕화면이 나오지 않아 이제 모두 지워버렸는데 그래도 안되는상황입니다
    그리고 예약파티션은 없는 상태이구요, 안되면 vhd 삭제하고 다시 만들어볼게요
    감사합니다.
    • BlogIcon CApple 2013.02.16 23:24 신고  댓글주소  수정/삭제
      아~ 그러셨군요. 제가 질문을 정확하게 이해하지 못했었네요. 보통 그렇게 작업하시면 문제가 없는데 문제가 발생하네요.

      VHD 윈도우로 부팅한 후 VHD 가 F: 로 잡혀 있다면, 글과는 조금 다르지만 현재 VHD 윈도우로 부팅한 상태에서 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 에서 C: 와 F: 의 이름을 바꿔줘보세요. 그렇게 작업하셔도 됩니다.

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com