이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^

- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.

- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)

- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)

- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.

[참고] 이 내용은 윈도우 7 기준 입니다.



윈도우 7 을 사용 중이고 윈도우 7 이 설치된 VHD 파일을 미리 준비하신 경우라면 해당 VHD 를 바로 시스템에 연결하여 BCDBOOT 를 통해서 부팅 목록에 추가를 해주시는 것만으로 VHD 에 설치된 윈도우로 부팅하는 것이 가능합니다. 과정은 어려운 부분 없이 매우 간단하니 잘만 따라오시면 처음 해보시는 분들도 쉽게 하실 수 있으실 겁니다.

VHD 에 설치된 윈도우 7 을 부팅 목록에 추가하는 과정은 크게 세 가지 단계로 나누어집니다.

1. VHD 가상 디스크 파일을 시스템에 연결하고 드라이브 문자를 할당받는 과정.
2. 연결된 VHD 안의 윈도우를 BCDBOOT 를 통해 부팅 목록에 추가하는 과정.
3. BCDEDIT 를 통해 이렇게 추가된 부팅 목록을 입맛에 맞게 편집하는 과정.



이 세 과정은 언제나 이 순서대로 흐름을 타고 작업이 이루어지니 잘 기억을 하시길 바랍니다. 그럼 시작해 볼까요?








1. VHD 를 시스템에 연결한 후 드라이브 문자를 할당 받기


가장 먼저 윈도우 7 이 미리 설치되어 있는 VHD 파일을 준비해 두셔야 합니다. 이건 여러분들이 알아서 구하시거나 만드셨겠죠? 이제 이 VHD 가상 디스크 파일을 시스템에 연결을 해 주어야 하는데 디스크 관리를 통할 수 도 있고 DiskPart 를 통할 수 도 있습니다.

윈도우 7 으로 부팅한 상태라면 간단하게 디스크 관리를 통해서 작업하시면 되고 윈도우 7 또는 Windows PE 3.0, 윈도우 7 설치 DVD, 복구 모드와 같이 명령 프롬프트 밖에 사용할 수 없는 상황이라면 DiskPart 를 통해서 작업을 진행하시면 됩니다. 물론 두 과정을 모두 보여드리도록 하겠습니다.


[주의] VHD 파일의 위치는 여러분의 자유입니다. 현재 윈도우가 설치된 드라이브에 위치해 두셔도 되고(현재 부팅한 윈도우가 VHD 에 설치된 윈도우가 아니라는 가정하에) 다른 데이터 보관용 드라이브에 두셔도 부팅하는데에는 아무런 문제가 없습니다. 다만! VHD 로 부팅을 시작하면 고정 크기 가상 디스크 형식으로 바뀌니 VHD 파일이 위치한 드라이브에 고정 크기 디스크 형식으로 변경된 VHD 를 수용할 수 있을 만큼의 공간이 꼭 필요합니다. 만약 드라이브의 용량이 부족하여 고정 크기 형식의 VHD 를 수용할 수 없다면 100% 블루 스크린을 경험하시게 될 겁니다.




디스크 관리를 통해 VHD 를 시스템에 연결하기

자 그럼 시작해 볼까요? 먼저 디스크  관리를 시작합니다. 키보드의 WinKey + R 을 눌러 실행을 띄운 후 diskmgmt.msc 를 실행합니다.





디스크 관리가 시작되면 동작 -> VHD 연결 항목으로 들어갑니다.





윈도우가 설치되어 있는 VHD 파일을 열어줍니다.





VHD 파일이 시스템에 연결되면 자동으로 드라이브 문자가 할당됩니다. 이 드라이브 문자를 기억해 둡니다. 예제에선 F: 드라이브 입니다. 여러분은 다르겠죠? 드라이브 문자를 기억하셨으면 디스크 관리를 종료합니다.









DiskPart 를 통해 VHD 를 시스템에 연결하기

이번에는 윈도우 7 뿐만 아니라 PE 3.0, 윈도우 7 설치 DVD, 복구 모드에서 동일하게 사용할 수 있는 DiskPart 를 통한 방법입니다. 명령 프롬프트를 실행하신 후 DiskPart 를 실행하시고 DiskPart 명령 인터프리터에서 다음의 명령을 내려줍니다.

[참고] 윈도우 7 에서 작업을 진행 중이시라면 관리자 권한으로 명령 프롬프트를 실행합니다.

select vdisk file="d:\win7.vhd"
- 시스템에 연결할 VHD 파일을 선택합니다.

attach vdisk
- 선택한 VHD 파일을 시스템에 연결합니다.

select partition=1
- 연결된 가상 디스크의 첫 번째 파티션을 선택합니다. 보통 VHD 에 설치된 윈도우는 파티션을 하나로 잡고 첫 번째 파티션에 윈도우를 설치하는 경우가 대부분이니 이대로 하시면 됩니다.

detail partition
- 파티션의 정보를 출력합니다. 해당 파티션에 할당된 드라이브 문자를 기억합니다.

exit
- DiskPart 를 종료합니다.






[참고] 만약 PE 부팅과 같은 해당 파티션에 드라이브 문자가 할당이 되어 있지 않다면 select partition=1 을 하신 후 exit 로 종료 하기 전에 아래의 명령을 추가로 내려줍니다.

assign letter=f
- 해당 파티션에 F: 드라이브 문자를 할당합니다. 이 때 F: 는 시스템에 아직 할당되지 않은 드라이브 문자여야 합니다. 여러분의 상황에 맞게 입력하세요.








디스크 관리와 DiskPart 를 통해서 VHD 를 시스템에 연결하고 할당된 드라이브 문자를 확인해 보았습니다. 여기까지는 그리 어려운게 없었죠? 앞으로도 어려울 건 없습니다. ^^ 이제 할당된 드라이브 문자를 기억하신 상태에서 다음의 작업으로 넘어갑니다.








2. BCDBOOT 를 통해 VHD 에 설치된 윈도우를 부팅 목록에 추가하기


윈도우가 설치된 VHD 를 시스템에 연결했으니 이제 VHD 에 설치되어 있는 윈도우를 BCD 저장소에 추가하여 부팅할 수 있도록 부팅 목록에 추가해 주셔야 합니다. 이 작업은 BCDBOOT 를 통해서 하게 됩니다. BCDBOOT 는 도스부터 시스템을 사용해온 사용자라면 SYS.COM 프로그램을 생각해 보시면 빠를 겁니다. 작업은 아주 간단합니다. 관리자 권한으로 명령 프롬프트를 실행하신 후 다음의 명령을 내려줍니다.

[참고] Windows PE 3.0, 윈도우 7 설치 DVD, 복구 모드는 이미 Administrator 계정으로 로그인된 상태입니다. 그러니 관리자 권한 따위는 필요 없습니다.

bcdboot f:\windows /l ko-kr
- F: 드라이브에 설치된 Windows 를 부팅 목록에 추가해 줍니다. 드라이브 문자는 여러분에게 맞게 입력해 주시면 됩니다. 이 때 부팅 목록을 추가할 BCD 저장소가 위치한 시스템 파티션의 위치는 펌웨어(바이오스)에서 인식한 파티션이(활성 파티션) 자동으로 지정됩니다. 입력 로케일은 한국어로 설정합니다.






이 때 F: 드라이브는 위에서 알아본 가상 디스크의 드라이브 문자입니다.

만약 시스템 파티션의 위치가 C: 드라이브라면 bcdedit f:\windows /s c: /l ko-kr 과 같이 명령을 내려주셔도 상관은 없습니다. 보통 많은 글들에선 이렇게 설명을 하고 있습니다. /s 매개 변수는 사용자가 수동으로 시스템 파티션의 위치를 지정해 줄 때 사용하는 매개 변수입니다. /s 매개 변수를 생략하면 bcdboot 가 알아서 자동으로 바이오스에서 인식한 시스템 파티션에 위치한 BCD 저장소에 부팅 항목을 추가해 줍니다. 그러니 특별한 목적을 가지지 않은 한 굳이 /s 매개 변수까지 입력해 주실 필요는 없습니다.

이 내용은 시스템 예약 파티션을 포함하여 설치한 경우에도 마찬가지로 적용됩니다. 시스템 예약 파티션이 포함된 경우 시스템 파티션은 시스템 예약 파티션이 되죠. 그런데 시스템 예약 파티션에는 드라이브 문자가 할당되어 있지 않습니다. 그렇기 때문에 /s 매개 변수를 줄 수가 없죠. 이러한 경우 시스템 예약 파티션에 드라이브 문자를 할당한 후 작업을 하는 경우가 있는데 /s 매개 변수를 그냥 생략하시면 드라이브 문자가 할당되어 있지 않더라도 bcdboot 는 자동으로 시스템 파티션인 시스템 예약 파티션을 찾아 해당 파티션에 위치한 BCD 저장소에 부팅 항목을 추가해 줍니다. 아시겠죠? 모로가도 서울로만 가면 된다지만 특별한 목적 없이 굳이 어려운 길로 돌아가실 필요는 없습니다. ^^



자 이제 BCD 저장소에 VHD 에 설치된 윈도우를 추가해 주었습니다. 이대로 사용해도 좋지만 멀티 부팅이 꾸며진 경우 현재 추가해준 윈도우를 구별하기 위해 추가로 BCDEDIT 를 통해 항목을 수정해 주시는 게 좋습니다. 다음으로 넘어가죠.








3. BCDEDIT 를 통해 부팅 항목 수정하기


사실 이런 작업이 설명하기 제일 까다로운데요. 아예 BCDEDIT 에 대해 글을 한 편 쓰면 모를까(DiskPart 정리하면서 너무 외면받아서 그런 정리 글 되도록 다시 쓰고 싶지 않군요 -_-) 흠... 그냥 중요한 내용들만 추려서 설명을 드리도록 하겠습니다. BCDEDIT 에 정통하신 분들은 알아서 잘 꾸미실거라 믿고 꼭 필요한 내용들만 알아보죠.

관리자 권한으로 명령 프롬프트를 실행합니다. 일단 BCDEDIT 를 통해서 부팅 목록을 확인하여 VHD 에 설치된 윈도우 항목을 찾아냅니다.

bcdedit
- 현재 설정되어 있는 항목들을 출력해 줍니다.






BCD 저장소의 항목을 구별하는 방법을 알려드리도록 할께요. 일단 이건 알아야 이 다음으로 진행해 나갈 수 있으니 말이죠.

BCD 저장소에서 원하는 부팅 항목을 찾는 방법은 굉장히 간단합니다. 각 항목 중 의 Device 항목만 살펴 보시면 됩니다. Device 항목에 partition=F: 드라이브 항목이 있죠? 우리가 방금 추가한 VHD 의 윈도우가 F: 드라이브죠? 그럼 이 항목의 Identifier 을(그냥 줄여서 ID) 확인하시면 됩니다. {default} 죠? 그럼 앞으로 명령을 내릴 때 이 {ID} 를 사용하시면 됩니다. 쉽죠? 아무 것도 아닙니다~!

근데 지금은 VHD 가 연결된 상태에서 바로 BCDBOOT 를 통해 추가한 상태인지라 위와 같이 드라이브 문자로 판별이 가능하죠? 하지만 윈도우를 재부팅한 후라던지 그럴 땐 이게 좀 바뀝니다. 아래와 같이 말이죠.





마찬가지로 Device 항목을 살펴 보시면 됩니다. 근데 이 땐 Partition=드라이브 문자 가 아니라 VHD 로 표시가 되죠. 그럼 자기가 원하는 윈도우가 포함된 VHD 찾으시고 해당 항목의 {ID} 를 확인하시면 되는 겁니다. 쉽죠? 어려울 건 없습니다. 근데 위와 같은 경우엔 {ID} 항목이 드럽게 길죠? 저걸 다 외워서 쳐야 되느냐?




이제 필요한 기초 설명은 다 드렸습니다. 이해하시겠죠? 이제 {ID} 를 찾았으니 해당 항목에 대한 수정을 해 보도록 하겠습니다. 가장 먼저 부팅 항목의 이름을 바꿔줘 보도록 하죠.

bcdedit /set {id} description "Windows 7 Ultimate K 32bit - VHD"
- {ID} 항목의 이름을 Windows 7 Ultimate K 32bit - VHD" 로 변경합니다.



쉽죠? 현재 멀티 부팅이 꾸며졌는데 부팅 항목을 표시하는 시간이 30 초로 너무 긴 편입니다. 이걸 한 5 초 정도로 줄이고 싶습니다. 줄이면 됩니다.

bcdedit /timeout 5
- 부팅 목록 표시 시간을 5 초로 설정합니다.



어려울 건 없습니다. 근데 현재 새롭게 추가한 항목이(VHD 에 설치된 윈도우) 가장 위에 있습니다. 이게 맘에 안 드시나요? 가장 아래로 내리죠.

bcdedit /displayorder {id} /addlast
- {id} 항목을 가장 마지막으로 위치 시킵니다.



Displayorder 항목은 설정이 처음으로(addfirst) 마지막으로(addlast) 두 가지 밖에 없습니다. 그러니 여러 개의 부팅 항목이 있을 때 이를 순서대로 정렬하시려면 이걸 잘 따져서 정렬하시는 방법 밖에 없습니다.

현재 VHD 에 설치된 윈도우가 기본 부팅 항목으로 설정이 되어 있습니다. 그런데 다른 윈도우를 기본 부팅 윈도우로 사용하고 싶으신가요? 그럼 다른 항목을 기본 부팅 항목으로 설정하시면 됩니다.

bcdedit /default {id}
- {id} 항목을 기본 부팅 항목으로 설정합니다.



쉽죠? 대충 이정도만(부팅 항목 이름 바꾸고 순서 바꾸고 기본 항목 변경) 아시면 꾸며진 멀티 부팅을 수정하는데 아무런 불편이 없으실 겁니다.





그럼 위에서 배워본 내용을 종합해서 현재 글에 적용해 볼까요? VHD 에 설치된 윈도우 항목은 현재 {Default} 이고 기본 부트 항목으로 설정하고자 하는 항목은 {Current} 항목입니다. 위의 내용을 모두 적용한다는 가정하에 아래와 같이 명령을 내려주시면 됩니다.

bcdedit /set {default} description "Windows 7 Ultimate K 32bit - VHD"
bcdedit /timeout 5
bcdedit /displayorder {default}
/addlast
bcdedit /default {current}






간단하죠? 이제 재부팅하시면 아래와 같이 우리가 꾸민대로 부팅 항목이 꾸며진 걸 확인하실 수 있으실겁니다.







추가로 VHD 에 설치된 윈도우 말고 기존의 윈도우로 부팅하여 다시 BCDEDIT 를 통해 항목을 살펴본 모습입니다.





놀라지 마세요. 이렇게 {ID} 가 바뀔 수도 있답니다. BCDEDIT 작업은 언제나 현재 BCDEDIT 를 통해서 살펴보신 후 작업을 진행하셔야 합니다.

: