Windows 7 8 10 VHD(가상 하드 디스크,Virtual Hard Disk)에 설치하기 - ② 부모 VHD에서 자식 VHD 생성하여 Windows 부팅관리자(BCD)에 등록


앞서 포스팅에서는 VHD를 생성하고 Windows 10을 설치하는 과정을 알아보았습니다. 이번 포스팅에서는 부모 VHD에서 자식 VHD를 생성하고 Windows 부팅 관리자(BCD)에 등록하는 방법에 대해 알아보겠습니다. 이전 포스팅은 아래 링크 참조 바랍니다.


부모 VHD에서 자식 VHD 생성하기
자식 VHD를 생성 할 때는 반드시 부모 VHD 파일이 있는 동일한 파티션에 생성해야하고, 동일 경로의 디렉토리 위치는 상관없으나 부모 VHD보다 상위 디렉토리 또는 전혀 다른 경로에 자식 VHD 파일을 생성하시면 안됩니다. 다른 예를 들어 C:\Windows_VHD\Parent\Win10_PRI.VHD 파일이 존재한다면 자식 VHD를 생성할 수 있는 디렉토리 위치는

C:\Windows_VHD\Parent\자식 VHD 파일.VHD
C:\Windows_VHD\자식 VHD 파일.VHD
C:\자식 VHD 파일.VHD

이렇게 3개의 경로에 자식 VHD를 생성 할 수있습니다. 중간에 다른 경로로 가지치기를 하셔도 안됩니다. 예를 들어 C:\Windows_VHD\Diff\에 저장하셔도 안됩니다.

그리고 다른 파티션이나 디스크에 자식 VHD를 생성하는 방법도 역시 안됩니다. 이렇게 잘 못된 위치를 지정 할 경우 부팅시 파일을 찾을 수 없다는 “복구” 화면을 띄우게 됩니다. 결국 자식, 부모 VHD 파일 위치를 동일하게 가져가는 것이 가장 좋습니다.

1. 앞서 포스팅한 부모 VHD에 설치한 Windows에 각종 설정이 완료되었다면 - 개인적인 생각에는 장치드라이브까지 설치하는 것이 가장 좋은 것 같습니다. - Windows USB 부팅 디스크로 부팅  후 Windows 설치화면에서 “Shift + F10”을 함께 눌러 CMD 창을 띄웁니다.

2. DISKPART를 실행하고 DISKPART 프롬포트 상태에서 자식 VHD를 생성할 명령어를 입력합니다.
<여기서 참조로 명령어를 Full Name 을 입력하지 않아도 됩니다. 예를 들어서 아래 "attach vdisk"의 경우 "atta vdi" 만 입력해도 됩니다.>

create vdisk file=C:\Windows_VHD\Win10_Diff.VHD parent=C:\Windows_VHD\Win10_PRI.VHD
file : 자식 VHD가 저장될 디렉토리 위치와 파일명
parent : 부모 VHD의 디렉토리 위치와 파일명

자식 VHD 파일을 생성한 후 DISKPART에서 빠져나옵니다.

자식 VHD 파일이 있는 "C:\Windows_VHD" 디렉토리로 이동합니다. 아래 명령어를 차례로 입력합니다.

c:    <-- C 드라이브로 이동합니다. (부모,자식 VHD가 있는 드라이브-동일 파티션이죠.)
cd windows_vhd    <-- 자식 VHD 파일이 있는 디렉토리로 이동합니다.
dir    <-- 디렉토리에 자식 VHD 파일이 있는지 확인 합니다.
copy Win10_Diff.VHD Win10_Diff_BAK.VHD    <-- 자식 VHD 파일의 복사본을 하나 생성합니다. 이 파일은 나중에 Windows 초기화용 교체파일(복구파일)로 사용할 예정입니다. 그런데 DISKPART에서 굳이 빠져나와 복사본을 만드는 이유는 자식 VHD를 생성하고 바로 ATTACH VDISK를 하게되면 파일용량이 급격하게 커지기 때문에 반드시 ATTACH하기 전에 복사본을 만들어야 합니다.

dir    <-- 자식 VHD 복사본이 잘 생성되었는지 확인합니다.

다시 DISKPART를 실행합니다.

diskpart    <-- DISKPART 를 실행합니다.

3. DISKPART 명령 프롬프트에서 자식 VHD를 선택해줘야 합니다.

select vdisk file=c:\windows_vhd\win10_diff.vhd    <-- 자식 VHD 파일을 선택합니다.

attach vdisk    <-- 선택된 자식 VHD를 연결시켜줍니다.

4. 연결이 잘 되었는지 확인해 보겠습니다. 명령어를 입력하겠습니다.

list disk    <-- 디스크 리스트를 보여줍니다.

list volume   <-- 볼륨을 보여 줍니다. 여기서 드라이브 문자를 확인합니다. "E" 드라이브가 할당되어 있습니다.

만약, 볼륨은 보이는데 드라이브 문자가 할당되지 않았을 경우에는 아래 명령어를 입력합니다.
assign   <-- 드라이브 문자를 할당합니다.

5. DISKPART에서 빠져나옵니다.

exit   <-- DISKPART를 종료합니다.
6. 이제 Windows 부팅 관리자에 자식 VHD로 부팅이 가능하도록 등록시켜 보겠습니다. 우선 "E" 드라이브에서 Windows 디렉토리 경로를 확인해 보겠습니다.

Windows의 디렉토리 경로는 "E:\Windows"에 위치하고 있는 것을 확인하였습니다. 이제는 Windows 부팅 관리자에 등록하겠습니다.

bcdboot e:\windows /l ko-kr
/l ko-kr : 지역 매개 변수를 지정하는 옵션입니다. 지정하지 않아도 되지지만 기본값이 "미국 영어(en-us)"로 지정됩니다. 이 옵션을 생략하게되면 "bcdboot e:\windows /l en-us"라고 입력한것과 동일합니다.

"/l en-us" 또는 생략하게되면 Windows 부팅 관리자의 모든 메시지가 영문으로 표시됩니다.

이렇게 Windows 부팅 관리자에 등록되면 자식 VHD가 기본 부팅 OS로 설정됩니다.

7. CMD 창을 종료하고, Windows 설치에서 빠져나와 재부팅을 합니다. 재부팅 후 "운영 체제 선택" 에서 기본 부팅 OS로 설정된 자식 VHD가 기본 선택되어있습니다. Enter 키로 선택하여 Windows로 진입합니다.

아래 캡처와 정상적으로 부팅은 되었지만 이름(description)이 "Windows 10"으로 동일하여 어느것이 자식 VHD인지 부모 VHD인지 알 수가 없습니다.

8. 불필요한 부모 VHD를 Windows 부팅 관리에서 제거해 보겠습니다. 간단하게 두가지 방법이 있습니다. "시스템 구성" 을 사용하여 부팅 메뉴를 삭제하는 방법과 "관리자 모드 CMD"에서 삭제하는 방법이 있습니다.

시스템 구성에서 삭제하는 방법
1. 실행에서 "msconfig.exe"를 실행합니다.
2. "부팅" 탭을 선택합니다.
3. 삭제 할 부모 VHD 를 선택하고 삭제 버튼을 클릭합니다.
4. 확인을 클릭 후 재부팅을 진행하면 됩니다.


관리자:CMD 창에서 삭제하는 방법
1. 관리자 모드로 CMD 창을 실행합니다.
2. 명령 프롬프트에서 "bcdedit" 명령어를 실행합니다.
3. 리스트에서 부모 VHD 부팅 로더를 찾습니다. 내용을 보면 바로 알수가 있습니다. "identifier" 값을 복사합니다.

4. 아래와 같이 명령어를 입력합니다. identifier 값을 붙여넣습니다.
bcdedit /delete {760440e0-b285-11e7-9d43-f71011f35a11}
"작업을 완료했습니다."라고 메시지가 뜨면 삭제가 된 것입니다.
5. 확인을 위해 bcdedit를 다시 실행합니다. 아래 참조 캡처를 보시면 부모 VHD에 대한 부팅 로더가 사라진 것을 확인 할 수가 있습니다.

부모 VHD를 Windows 부팅 관리자에서 삭제를 하게되면 1개의 부팅 로더가 남기 때문에 운영 체제 선택없이 바로 Windows로 진입을 하게됩니다.

여기까지 부모 VHD에서 자식 VHD를 생성하여 Windows 부팅 관리자에 등록까지 해보았습니다. 부족한 설명이지만 도움이 되시길 바랍니다. 잘 못된 부분이나 궁금한 사항 댓글 또는 메일 부탁드립니다. 감사합니다.

참조


728x90