예전에 윈도우 7에서 VHD 부팅하기 라는 글을 포스팅했었는데 당시엔 VHD 파일을 직접 bcdedit으로 등록시키는 방법을 소개해드렸습니다. 그런데 윈도우 7에선 그렇게 하지 않고 더 간단히 작업하실 수 있습니다. 바로 며칠전에 포스팅했던 기존 하드를 제거했더니 윈도우 부팅이 안되요 ㅠㅠ 글에서 제가 윈도우 7의 부팅관련 이야기들을 대략 다 설명드렸는데 윈도우 7은 VHD 파일을 마운트 시킬 수 있고 bcdboot이라는 편리한 툴이 있기 때문에 간단히 등록하실 수 있습니다.
먼저 등록하실 VHD 파일이 있어야겠지요? 만약 VHD 파일이 없다면 하나 만들어서 체험해보시는 것도 괜찮을 것 같습니다. 윈도우 7에서 설치 DVD의 WIM 파일을 VHD로 만드시려면 윈도우 7에서 WIM 파일을 VHD 파일로 변경해보자 2탄 글을 참조하세요.
저는 현재 XP, 윈도우7 얼티밋 32비트, 서버 2008 R2 엔터프라이즈 버전을 멀티부팅으로 사용하고 있는데 뒤에 2개는 VHD 부팅을 사용하고 있습니다. 그런데 오늘은 이 가이드 작성을 위해 윈도우 7 얼티밋 64비트 VHD 파일을 만들어서 등록시켜보겠습니다.
아 그리고 Imagex로 Apply 시키는 작업도 역시 며칠전에 소개해드린 GImageX v2.0.17 를 활용하시면 간단히 마우스로만 작업 가능합니다.
(예제)
현재 SSD의 첫번째 파티션은 10GB를 XP에 할당해주었고 나머지 용량은 두번째 파티션에 VHD 파일 보관 용도로 사용하고 있습니다. 각 VHD 파일의 크기 역시 동적 확장 디스크로 만들어서 최대 용량 10GB로 설정해두었습니다. 이렇게 하면 약 50GB 정도의 VHD 파티션에서 최소 5개 이상의 OS를 VHD 형태로 멀티부팅 가능합니다. (사실 제가 5개 사용할 일은 없지만...) 원래같으면 5개의 파티션으로 나눠서 각각 OS를 설치해야 하고 문제가 발생하면 각 파티션을 포맷하거나 고스트같은 복구솔루션으로 돌려야겠지만 이 VHD 부팅을 활용하시면 전혀 그러실 필요가 없겠지요. 문제가 생긴 OS에 대해선 백업해둔 VHD 파일만 교체해버리면 그만입니다. (VHD에 대해 궁금하시면 제 블로그 우측 상단에서 VHD로 검색해보세요. 관련 글이 엄청 많습니다.)
여담입니다만 프로페셔널 버전이랑 얼티밋 버전이 기능차이 거의 없고 가격도 차이가 거의 없다고 하신 분들이 계시던데, 기능차이는 관점에 따라 다르겠지요. 이 VHD 부팅이 저는 엄청난 차이라고 생각하는데 활용하시는 분들이 별로 없으시니... 또한 어제 런칭파티에서 시연했던 다이렉트 엑세스 기능 (회사 네트워크에), USB에 비트라커 거는 기능, 언어팩 설치 등에서 차이가 납니다. 물론 언어팩의 경우는 하위 버전에 설치하는 방법이 있기는 있습니다. 윈도우 7 홈 프리미엄 버전에 언어팩 설치하기 참조하세요.
이제 본격적으로 윈도우 7 얼티밋 64비트 VHD 파일을 부팅메뉴에 등록시켜보겠습니다.
먼저 디스크 관리자를 실행합니다. 시작메뉴의 검색창에 diskmgmt.msc를 입력해주세요. 물론 VHD 파일을 마운트하는 기능은 DISKPART 에서도 가능합니다만 윈도우 상에선 디스크 관리자를 사용하시는게 더 편리하겠죠.
디스크 관리자에서 동작 - VHD 연결 해주시면 끝입니다.
저의 경우 그래서 현재 J 드라이브에 윈도우 7 얼티밋 64비트 VHD 파일이 마운트 되었습니다.
이제 이놈을 부팅메뉴에 추가해주면 끝이겠죠? 바로 윈도우 7의 bcdboot 기능을 이용하시면 됩니다. 명령 프롬프트를 관리자 권한으로 실행하신 다음 (보조 프로그램 - 명령 프롬프트 - 우클릭 - 관리자 권한으로 실행)
bcdboot j:\windows /s g: /l ko-kr
여기서 J 드라이브는 제가 현재 등록하려는 윈도우 7 64비트 VHD 파일이 J 드라이브에 마운트되어 있기 때문에 저렇게 지정했습니다. G 드라이브는 BOOT 폴더와 BOOTMGR 파일이 존재하는 시스템 파티션을 말합니다. 대부분은 C 드라이브겠지요? 간혹 시스템 예약 파티션에 부팅파일이 존재하는 경우... 난감하죠. 그런 분들은 디스크 관리자에서 시스템 예약파티션 100MB에다가 드라이브 문자를 할당해주신 다음 작업을 해주세요.
이게 끝입니다. VHD 파일이 멀티부팅 메뉴에 추가되었습니다. 그런데 이대로 부팅하시면 새로 추가했던 윈도우 7 64비트가 기본 부팅 OS로 설정되어 있고 부팅시간도 30초로 설정되어 있습니다. 따라서 부팅메뉴를 약간 수정해주시는게 좋겠죠? 그런데 위 파일은 방금 WIM 파일에서 VHD로 만든 따끈따끈한 파일이기 때문에 어차피 저 파일로 부팅하면 윈도우 7 설치과정이 진행됩니다. Sysprep으로 봉인한 이미지랑 비슷한 개념인데 드라이버 잡고 레지스트리 등록되고 개인설정 좀 하기 때문에 약 5분 정도가 걸립니다.
부팅메뉴 편집은 bcdedit 으로 설명드리겠습니다. EasyBCD를 사용하시면 아마 오류가 발생할 것입니다. 왜냐하면 EasyBCD는 비스타 용도로 나왔기 때문에 VHD 부팅을 지원하지 않습니다. 따라서 그걸로 수정하다보면 부팅이 깨지는 경우가 발생합니다. bcdedit으로 직접 수정해주세요. 사실 수정하지 않고 써도 무방하긴 하지만...
먼저 bcdedit을 입력해서 현재 부팅메뉴가 어떻게 구성되어 있는지 보겠습니다.
스크롤 압박 죄송합니다. 현재 위 상태인데 수정하고싶은 부분에 표시를 해두었습니다. 먼저 멀티부팅 메뉴에 나타나는 순서를 수정하고 싶습니다. 저는 윈도우 7 32비트, 64비트, 서버 2008 R2, XP 순서로 메뉴가 등장했으면 좋겠습니다. 그런데 현재는 64비트가 방금 등록되면서 기본부팅으로 잡혔고 메뉴의 가장 위에 등장합니다. 따라서 이것부터 바꾸겠습니다.
bcdedit /displayorder {current} {default} {1d78920f-bf4f-11de-ba97-005056c00008} {ntldr}
위 화면 기준으로 각 GUID (identifier 부분) 를 이렇게 순서대로 입력하시면 제가 원하는 순서의 메뉴대로 나오게 됩니다.
다음은 기본값을 변경하겠습니다. 현재 기본값은 방금 등록시켰던 64비트이지만 저는 32비트를 기본으로 사용하고 싶습니다.
bcdedit /default {current}
현재 사용중인 윈도우 7 32비트의 GUID가 {current} 이기 때문에 저렇게 입력하면 이놈이 기본부팅으로 지정됩니다.
다음은 멀티부팅 메뉴 시간 단축입니다. 기본 30초인데 저는 5초로 지정합니다.
bcdedit /timeout 5
다음은 메뉴 이름 수정입니다. 현재 윈도우 7 32비트랑 64비트가 똑같은 이름으로 등록되어 있기 때문에 부팅할 때 뭐가 뭔지 구분할 수 없습니다. 따라서 이름을 다르게 입력하겠습니다. 참고로 원래 {default} 라는 GUID를 가졌던 윈도우 7 64비트가 32비트에게 default를 넘겨주면서 자신의 GUID는 변경된 상태입니다. 따라서 이쯤에서 한번 더 bcdedit을 입력하셔서 변경된 GUID를 (사실 변경된게 아니고 default라서 보이지 않았던) 확인해주세요.
bcdedit /set {current} description "Windows 7 Ultimate K 32비트"
bcdedit /set {c6340dd9-bf8c-11de-9a11-005056c00008} description "Windows 7 Ultimate K 64비트"
이제 모든 작업을 완료하였습니다. 제가 원하던 순서와 원하던 메뉴 이름 그리고 원하던 부팅시간으로 지정을 했습니다. 이상으로 설명을 마치겠습니다. 궁금하신 내용은 제 블로그 우측 상단에서 검색해보시거나 질문 남겨주세요.