본문 바로가기

IT 정보/컴퓨터

Windows 8 멀티 부팅 문제 해결

반응형

 

이 글은 WIndows 8의 멀티 부팅 화면이 뜨는 분들께만 해당되는 글입니다. 
저는 Windows 8을 VHD parent-child 모드로 쓰고 있습니다. 


조부모 VHD

 

Windows_8.vhd 

 

부모 VHD

 Work_Master.vhd

 

Portable.vhd 

 자식 VHD

 Work_Space.vhd

 

 -

 

문제점 
1. 멀티 부팅 모드가 나오기 전에 WIndows8 이 로드되는 현상 
윈7에서는 BIOS 화면 나오고 바로 멀티 부팅 메뉴 화면이 텍스트 모드로 바로 뜨지만 
윈8에서는 BIOS 화면 나오고 윈8 로드 화면 나오고 그다음에 멀티 부팅 메뉴 화면이 GUI 화면으로 나옵니다. 
아마도 멀티 부팅 마저도 터치 스크린으로 되게끔 할려고 그런듯... <= 이게 왜 필요하냐고? ㅡㅡ; 

2. Default 메뉴가 아닌 다른 메뉴로 부팅하면 다시 리부팅됨 
그냥 선택 메뉴로 윈도우 로드가 아닌 BIOS화면에서 부터 다시 시작됨. 진짜 리부팅!!! 
앞글에서도 적었지만 아래와 같은 명령이 수행 되는 듯 
bcdedit /bootsequence {ID} 
shutdown /r /t 0 

3. Default 메뉴로 무조건 부팅되고 처리 됨 
1. 에서 적은것처럼 메뉴 뜨기 전에 윈8이 기동되는데 이게 Default Menu로 기동 되는 것임 
그래서 Default VHD 의 size가 변경됨. 
이게 진짜 문제가 될지는 테스트 안해봤지만 이론적으론 문제가 될 수 있다고 생각됩니다. 
VHD parent-child 모드(Differencing VHD)에서 parent가 변경 되면 child를 초기화하지 않으면 
부팅이 안되는 에러 발생합니다. 
Default가 Parent인 상황에서 잠시 테스트를 위해 child로 부팅하고 
경우에 따라 child로 재부팅이 들어가야하는데 parent가 변경되버리면... 

해결 방법 
처음에는 멀티 부팅 메뉴를 띄우는 놈이 bootmgr이라고 생각하고 
단순히 윈7의 bootmgr을 복사해서 부팅해봤는데 멀티부팅 메뉴 뜨는데까지는 
위의 상황이 안벌어지고 기존 윈7의 경우와 동일하게 되어서 성공했다고 생각했습니다. 
근데 실제 메뉴 선택해서 부팅하니 아래와 같은 에러가 발생하네요.


0xc0000428

Windows cannot verify the digital signature for this file

 

진짜 해결한 방법은 윈7 VHD를 등록하니 되는군요. 
BIOS에서 윈8 로드 없이 바로 예전 텍스트 모드의 멀티 부팅 메뉴가 뜹니다. 
당연 Default VHD size는 변동 없구요. 부팅 속도도 더 빨라진 느낌입니다. 
여기서 "어? 난 윈7도 같이 등록되어 있는데 새메뉴가 뜨던데?"하시는 분들은 
윈7 설치된 상태에서 윈8을 설치하셔서 그럴겁니다. 윈8 설치 후 윈7 설치하시면 윈7 모드로 뜹니다. 
현재는 여기까지지 해봤지만 제생각에 이후에 윈8을 더 추가하면 아마도 다시 윈8의 멀티부팅 모드로 바뀌지 않을까 합니다. 그럼 다시 윈7을 추가했다가 삭제해야겠죠. 
아니면 정식버전에선 이 문제점을 고쳐줬으면 하네요 
(근데 윈8 로드 없이 bootmgr, bcd만으로 터치 화면을 만들 수 있을런지...) 

* 윈도우 8 을 설치한 후의 멀티 부팅 메뉴 (이건 찍어 놓은게 없어서 구글링...)

 

* 윈도우 7을 추가한 후의 멀티 부팅 메뉴

 


멀티 부팅에 추가/삭제 하는 방법은... 

VHD 쓰시는 분들이면 diskpart 명령에 bcdboot 명령은 아시겠지만 
스누피님의 BCD종합관리 를 이용하면 좀 더 편리할겁니다. 
http://www.snoopybox.co.kr/1405



diskpart 에서 VHD 파일을 로드하고 bcdboot 명령으로 메뉴에 등록하는건데요 
(윈7)PE로 부팅해서 두개의 cmd 창을 띄우고 아래와 같이 처리하면 됩니다. 

* 등록 방법

x:> diskpart

diskpart> select vdisk file="VHD 파일 전체 경로"

diskpart> attach vdi

diskpart> select partition 1   ( 또는 sel par 1 )

diskpart> assign letter=z

              옆의 명령 수행 ==========================> 

diskpart> detach vdi

diskpart> exit

 

 

 

 

 

 x:> bcdboot z:/windows /s c: /l ko-kr

       (c: 는 해당 BCD가 있는 드라이브명)

 

 

* 삭제 방법 
우선 해당 메뉴의 identifier를 알아내야 합니다. 
cmd 창 띄워서 bcdedit 명령을 치면 아래와 같이 나오는데 
device 명을 보고 삭제 해야할 대상의 identifier 를 알아냅니다.

Windows 부팅 로더
-------------------
identifier              {current}
device                  vhd=[D:]\_VHD_\PC_Ent_x64_C1.vhd
path                    \Windows\system32\winload.exe
description             Windows 7 x64 1st
locale                  ko-KR
inherit                 {bootloadersettings}
osdevice                vhd=[D:]\_VHD_\PC_Ent_x64_C1.vhd
systemroot              \Windows
resumeobject            {993cc7cf-4caf-11e0-9b59-806e6f6e6963}
nx                      OptIn
numproc                 2
detecthal               Yes
quietboot               Yes
usefirmwarepcisettings  No

 

Windows 부팅 로더
-------------------
identifier              {3cb91dc8-3cfc-11e1-ad5e-f9eeacd77ee6}
device                  vhd=[D:]\_VHD_\PC_Ent_x64_C2.vhd
path                    \Windows\system32\winload.exe
description             Windows 7 x64 2nd
locale                  ko-KR
inherit                 {bootloadersettings}
osdevice                vhd=[D:]\_VHD_\PC_Ent_x64_C2.vhd
systemroot              \Windows
resumeobject            {11b1bdcf-a004-11e1-aae1-806e6f6e6963}
nx                      OptIn
numproc                 2
detecthal               Yes
usefirmwarepcisettings  No

 

Windows 부팅 로더
-------------------

 

그다음에 cmd 창에서 아래와 같은 명령으로 삭제하면 됩니다.

{GUID} 에 위에서 알아낸  identifier를 입력하면 됩니다.

 

bcdedit /delete {GUID} /cleanup /f

 


반응형