본문 바로가기

유용한팁

윈도우 7 VHD (Virtual Hard Disk) 부팅 총정리.

윈도우 7에서 VHD로 설치 및 부팅하는 방법을 정리해 봅니다.
참고로 엔터테인먼트 또는 얼티밋 버전에서만 가능합니다.

1. 윈도우 7을 VHD에 설치하기.

우선, 윈도우 7 설치CD를 넣고 나오는 첫 화면에서 Shift+F10을 눌러 커맨드 창을 띄웁니다.

아래의 명령어를 사용하여 VHD를 만들고 attach해 줍니다.

diskpart
create vdisk file=c:\win7base.vhd maximum=20480 type=expandable
attach vdisk
exit

위와 같이 가상하드디스크(VHD)를 만들고 attach를 하면, 가상으로 만든 하드디스크가 하나의 파티션으로 인식이 되어 윈도우를 설치할 수 있게 됩니다.
즉, 저렇게 하고나서 윈도우 설치를 진행하면 파티션 선택하는 부분에 위에서 만든 VHD가 나타납니다.
해당 VHD를 선택하고 설치를 진행하면 됩니다.
(이때, 해당 파티션에는 윈도우를 설치할 수 없습니다. 라는 문구가 나타날 수 도 있지만 무시하고 진행하면 됩니다.)

이렇게 설치하고 난 후 윈도우를 필요할 때마다 복원할 수 있도록 필요한 프로그램을 모두 설치합니다.

2. 자식 VHD를 만들어 원본 VHD를 보호하기.

이제는 자식 VHD를 만듭니다. 이렇게 하는 이유는 자식 VHD를 만들면 원본과 동일한 내용을 가지지만, 
변경 내용은 자식 VHD에만 기록되기 때문에 원본 VHD를 변경없이 보호할 수 있기 때문입니다. 
이럴 경우, 자식 VHD파일만 다시 복사해줌으로써 언제든지 처음상태로 복원할 수가 있게 됩니다. 
고스트 같은 프로그램을 사용하는 것보다 훨씬 간편하지요. 속도도 빠르구요.

명령어는 아래와 같습니다.

diskpart
create vdisk file=c:\win7main.vhd parent=c:\win7base.vhd
attach vdisk
list vol            // 새로 생성한 VHD가 나타나는지 확인.
exit

이렇게 만든 자식 VHD의 복사본을 하나 만들어둡니다.
그래서 나중에 복원할때는 이 복사본을 지금 만든 자식 VHD로 덮어씌워버리기만 하면 됩니다.
몇초 걸리지도 않고 복원이 되니까 매우 좋습니다.

복사는 도스 명령어 copy를 쓰시면 됩니다.

3. 부팅메뉴 추가하기.

위에서 만든 자식 VHD로 부팅할 수 있도록 부팅메뉴를 만들어야 합니다.

bcdboot d:\windows /s c: /l ko-kr
* d:\windows => attach된 vhd파일의 드라이브명.
* c: => 부트매니저가 설치된 드라이브명.
* /l ko-kr => 부팅언어를 한국어로.

여기까지 하면 모든게 완성입니다. ㅎㅎㅎ.

4. 기타 추가 명령어.

** 현재 부팅메뉴 살펴보기
bcdedit

** 부팅메뉴 삭제하기
bcdedit /delete {id} /cleanup

** 부팅메뉴 이름 변경하기.
bcdedit /set {id} description "Windows 7 Base"

** 부팅메뉴 출력 순서 변경하기.
bcdedit /displayorder {id1} {id2} {id3}

** 부팅메뉴 디폴트 값 변경하기.
bcdedit /default {id}

** 부팅메뉴 선택시간 변경하기.
bcdedit /timeout 5

5. 부팅 메뉴에 PE모드 등록하기.

부팅 메뉴에 PE모드를 등록해서 언제든지 커맨든 창을 사용할 수 있도록 해 봅시다. (커맨드 창은 PE모드에서 Shift+F10을 누르면 나옵니다.)
설치CD에서 source폴더에 있는 boot.wim과 boot폴더에 있는 boot.sdi라는 파일을 하드디스크의 아무 볼륨이나 최상위 루트에 복사해 둡니다.
그리고 아래의 파일을 다운로드 받아서 실행하시기만 하면 됩니다.


위 파일은 스누피님의 블로그에서 발췌한 것입니다. (링크는 http://snoopybox.co.kr/1170)
 
6. VHD파일 최적화하기.

VHD파일을 사용했을 때의 최대 단점은 이미지파일형태로 존재할때 한번 늘어난 크기는 다시 줄어들지 않는다는 것입니다.
그래서 파일을 삭제했을 경우, VHD파일이 이미지파일형태가 되었을때에도 용량이 줄어들 수 있도록 최적화 하는 방법을 알아봅시다.
원리는 간단합니다.
우리가 파일을 삭제시 해당 파일이 실제 삭제가 되는게 아니고 지워진 것처럼 표시만 하게 되는데 바로 여기서 표시만 하는게 아니라 실제로 지워버리면 되는겁니다.
(이게 바로 파일을 지워도 프로그램으로 다시 복구할 수 있는 이유이기도 합니다. 실제로 삭제하면 복구가 안되겠죠. ^^)
그러면 나중에 diskpart의 compact라는 명령어(빈공간을 제거해서 VHD파일의 용량을 줄여주는 명령어)를 이용해서 VHD의 크기를 줄여줄 수 있습니다.
자, 그럼 지워졌다고 표시만 되어있는 파일들을 찾아서 실제로 지워주는 프로그램이 필요합니다.


위 프로그램을 PE모드에서 사용할 수 있도록 적절한 위치에 압축을 풀어놓으시면 됩니다.
참고로 PE모드에서 위 명령어를 사용하시려면 boot.wim과 boot.sdi 파일이 32비트 윈도우에서 추출한 파일이어야 합니다. (64비트는 실행불가)
자, 준비가 다 되었으면 아래의 명령어를 순서대로 따라하시면 됩니다.
(작업하기 편하게 2개의 창으로 작업하겠습니다.)

start cmd                                        // 커맨드 창을 하나 더 띄운다.
diskpart
select vdisk file=c:\win7base.vhd    // 최적화하려는 VHD파일 선택
attach vdisk
list vol                                            // VHD파일의 볼륨명 확인
** 2번째 창에서 명령> sdelete -c 드라이브명:
detach vdisk
compact vdisk
exit