본문 바로가기

부팅과 멀티 부팅

[Bootmgr] 윈도우 8 의 그래픽 멀티 부팅 메뉴와 텍스트 멀티 부팅 메뉴, 서로 바꾸는 방법과 문제 해결

* 시작하기 전에! 이 글에서 이야기할 것은 크게 다음의 다섯 가지 입니다. 그에 따라 단락을 나누도록 하겠습니다.

1. 새로운 그래픽 멀티 부팅 메뉴와 이전의 텍스트 멀티 부팅 메뉴의 특성과 상호 전환하는 방법.
2. 그래픽 멀티 부팅 메뉴로 전환이 안 되고 오직 텍스트 멀티 부팅 메뉴로만 출력되는 현상의 해결.
3. 멀티 부팅 메뉴가 출력되지 않고 곧바로 윈도우 7, 비스타 또는 윈도우 XP 로 부팅되는 현상의 해결.
4. BootMenuPolicy 옵션이 보이지 않거나 수정할 수 없는 문제의 원인.
5. 그래픽 멀티 부팅 메뉴에서 기본 부팅 항목 외의 다른 부팅 항목을 선택했을 때 부팅 구조.

윈도우 8 의 새로운 그래픽 멀티 부팅 메뉴의 특성과 사용 조건

윈도우 8 Bootmgr 부트 매니저의 새로운 그래픽 환경 멀티 부팅 메뉴


기존의 윈도우 비스타, 윈도우 7 에 포함된 Bootmgr 부트 매니저의 멀티 부팅 메뉴는 텍스트 환경이었습니다. 하지만 윈도우 8 에 이르러 업그레이드된 Bootmgr 부트 매니저는 마우스나 터치 환경을 지원하기 위해 위와 같이 그래픽 환경으로 전환되었죠. 이전의 텍스트 환경과 새로운 그래픽 환경의 특성을 간단하게 비교하면 아래와 같습니다.

이전 방식(윈도우 7) : 선 멀티 부팅 메뉴 출력 -> 후 선택한 윈도우 부팅
새  방식(윈도우 8) : 선 기본 윈도우 부팅 -> 후 멀티 부팅 메뉴 출력



이러한 선 기본 윈도우 부팅 후 멀티 부팅 메뉴 출력이라는 변화된 구조로 인해, 기본 부팅 메뉴가 아닌 다른 부팅 메뉴를 선택하면 시스템이 한 번 종료된 후 선택한 윈도우로 다시 부팅을 시작하는 모습을 보이게 됩니다. 이건 그래픽 환경 멀티 부팅 메뉴의 특성으로 사용자가 설정으로 어떻게 할 수 있는 것은 아닙니다. 만약에 이것이 불편하고 굳이 그래픽 환경이 필요치 않다면 이전 방식인 텍스트 환경으로 전환을 해야 하죠.

그 전에 먼저 윈도우 8 에서 새롭게 도입된 그래픽 환경 멀티 부팅 메뉴는 다음의 세 가지 조건이 갖추어져야 사용할 수 있습니다.

1. Bootmgr 부트 매니저가 윈도우 8 버전일 것.
2. {default} (기본) 부팅 항목이 윈도우 8 일 것.
3. {default} (기본) 부팅 항목의 BootMenuPolicy 옵션의 값이 Standard 일 것.




윈도우 8 을 새롭게 설치하면 이러한 세 가지 조건이 충족되어 자동으로 멀티 부팅 메뉴가 그래픽 환경으로 설정됩니다. 그래서 이러한 상황에서 이제 멀티 부팅 메뉴를 기존의 텍스트 환경으로 전환하고 싶다면 {default} 항목의 BootMenuPolicy 의 값을 Legacy 로 전환하면 됩니다.

그래픽 환경 : BootMenuPolicy Standard
텍스트 환경 : BootmenuPolicy Legacy








윈도우 8 의 그래픽 멀티 부팅과 텍스트 멀티 부팅 환경 전환하기

이 작업은 윈도우 8 버전의 BCDEdit.exe 를 통해서만 작업할 수 있습니다. 어차피 현재 멀티 부팅 메뉴로 그래픽 환경을 사용하고 있다면 기본 부팅 항목이 윈도우 8 일테니, 그대로 윈도우 8 으로 부팅한 상태에서 관리자 권한으로 명령 프롬프트를 실행하여 다음과 같이 작업합니다.

bcdedit /set {default} bootmenupolicy legacy



작업을 마치고 시스템을 재시작하면 아래와 같이 기존의 텍스트 환경의 멀티 부팅 메뉴가 출력됩니다.

텍스트 환경 멀티 부팅 메뉴


만약에 기존의 그래픽 환경으로 다시 되돌리고 싶다면 BootMenuPolicy 를 다시 Standard 로 되돌려주시면 됩니다.

bcdedit /set {default} bootmenupolicy standard



그래픽 환경과 텍스트 환경의 전환은 간단하죠? 기본 부팅 항목의 BootMenuPolicy 옵션을 Standard 와 Legacy 둘 중에 하나로 설정한다. 이것만 기억하시면 됩니다. 그럼 이제부터 이것과 관련해 발생할 수 있는 문제들을 해결해보도록 하죠.






멀티 부팅 메뉴가 그래픽 환경으로 전환되지 않을 때 해결법

그래픽 환경과 텍스트 환경을 상호 전환하는 것은 알았습니다. 그런데! {default} 항목의 BootMenuPolicy 항목을 아무리 Standard 로 전환해도 텍스트 환경만 출력되는 경우가 있습니다. 이건 왜 그런 걸까요?


그래픽 환경 멀티 부팅 메뉴를 사용하기 위한 조건을 다시 볼께요.

1. Bootmgr 부트 매니저가 윈도우 8 버전일 것.
2. {default} (기본) 부팅 항목이 윈도우 8 일 것.
3. {default} (기본) 부팅 항목의 BootMenuPolicy 옵션의 값이 Standard 일 것.

이 중에서 빨간색으로 강조한 부분에서 문제가 생긴겁니다. 즉, Bootmgr 부트 매니저가 그래픽 환경을 지원하는 윈도우 8 버전이 아니라, 그래픽 환경을 지원하지 않는 그 이전의 윈도우 비스타나 윈도우 7 버전이면 이런 현상이 생기는 거죠. 이건 보통 아래와 같은 원인으로 발생합니다.

A. 윈도우 비스타나 7 을 윈도우 8 보다 나중에 설치했을 때.
B. BCDBoot.exe 로 부팅 항목을 추가했는데 가장 마지막에 추가한 윈도우가 비스타나 7 이었을 때.



이렇게 되면 윈도우 8 버전이 아닌 이전 버전의 Bootmgr 부트 매니저가 시스템에 설치되고, 해당 버전의 Bootmgr 부트 매니저들은 그래픽 환경을 지원하지 않으니, 아무리 BootMenuPolicy 옵션을 수정하여 그래픽 환경으로 전환해보려고 해도 전환되지 않는 문제가 발생하는 겁니다.

그래서 이러한 문제는 간단하게 윈도우 8 버전의 Bootmgr 부트 매니저를 다시 설치하는 것으로 해결할 수 있습니다. 첫 번째 방법으로는 아래의 글에서 제공하는 파일을 통해 시스템의 Bootmgr 부트 매니저를 윈도우 8 버전으로 교체하시면 됩니다.



또는 그냥 간단하게 윈도우 8 의 부팅 항목을 다시 한 번 BCDBoot 로 새로 구성해주면 됩니다. 만약에 현재 윈도우 8 이 C: 에 위치하고 있다면 아래와 같이 BCDBoot 를 통해 다시 한 번 부팅 항목을 구성해주는 거죠.

bcdboot C:\Windows /l ko-KR


BCDBoot 는 작업하려는(추가하려는) 윈도우의 부팅 항목이 이미 존재하는 경우, 기존에 있던 부팅 항목을 지우고 다시 구성하여 추가하기 때문에, 혹 기존에 이미 부팅이 구성되어 있는 윈도우를 BCDBoot 로 다시 한 번 추가하면 부팅 항목이 두 개로 중복되어 구성되는 문제가 발생하진 않을까 하는 걱정은 하지 않으셔도 됩니다.


간단하죠? 문제의 해결은 다 했고, 간단하게 하나만 더 이야기하고 넘어갈께요. 보통 BCDBoot 를 단순한 부팅 항목 추가 도구로만 알고 계시는데요. 정확하게는 Bootmgr 부트 매니저 설치(복구) 도구입니다.



이거 이미 예전에 설명한건데 왔다 갔다 하기 힘드실테니 그냥 여기에서 다시 설명 들어갈께요. BCDBoot 로 부팅 항목 추가 작업을 진행하면, 만약에 Bootmgr 부트 매니저가 시스템에 없다면 새로 설치하고, Bootmgr 부트 매니저가 이미 설치되어 있다면 그냥 갈아 엎고 지정한 윈도우에서 Bootmgr 부트 매니저 파일들을 추출하여 다시 설치하는 겁니다. 이를 통해 Bootmgr 부트 매니저를 새로 설치하거나, 문제가 생긴 Bootmgr 부트 매니저 구성을 복구할 수 있는 거죠.



좀 더 자세하게 이야기를 하자면 BCDBoot C:\Windows /l ko-KR 과 같이 작업을 했다면, 지정한 C:\Windows 의 Boot 폴더에 위치하고 있는 Bootmgr 부트 매니저 파일 구성을 추출해서 시스템 파티션(첫 번째 디스크 활성 파티션)에 설치하게 됩니다.

근데 Bootmgr 부트 매니저가 이미 존재하고 있다면 부팅 환경 설정 파일인 BCD 파일도 이미 존재하고 있겠죠. 이 때 다른 Bootmgr 부트 매니저 구성 파일들과 달리 BCD 파일은 새로 만들지 않고 기존의 것을 그대로 사용합니다. 여기에 작업에서 지정한 윈도우의 부팅 항목만 기존의 부팅 항목들에 더해 새로 추가하는 거죠. 그래서 기존의 부팅 항목들이 그대로 유지되고, 이러한 특성을 활용하여 간단한 자동 부팅 항목 추가 도구로써 활용을 하는 겁니다.

참고로 BCDBoot 작업에서 지정한 윈도우의 부팅 항목이 이미 BCD 에 존재하고 있다면, 기존에 구성되어 있는 부팅 항목은 지우고, 새로이 부팅 항목을 구성해서 추가합니다. 그래서 기존 윈도우의 부팅 항목에 문제가 생겼을 때에도 BCDBoot 를 통해 문제를 해결하는 것도 가능한 겁니다.

이게 정확한 BCDBoot 도구의 특성과 용도입니다. 단순한 부팅 항목 추가 도구가 아니라요. 여러 글에서 나눠서 설명을 드린 기억이 나는데, 아무튼 간단하게 정리하면 이렇습니다. 기억하세요.






BootMenuPolicy 를 Standard 로 전환한 후 멀티 부팅 메뉴가 출력되지 않을 때

{default} 기본 부팅 항목의 BootMenuPolicyStandard 로 전환한 후부터 아예 멀티 부팅 메뉴가 출력되지 않고, 기본 부팅 항목 윈도우로 곧바로 부팅이 진행되는 경우입니다. 왜 그런지는 그래픽 환경 멀티 부팅 메뉴를 사용하기 위한 조건을 다시 보도록 하겠습니다.

1. Bootmgr 부트 매니저가 윈도우 8 버전일 것.
2. {default} (기본) 부팅 항목이 윈도우 8 일 것.
3. {default} (기본) 부팅 항목의 BootMenuPolicy 옵션의 값이 Standard 일 것.

이것 때문에 그렇습니다. BootMenuPolicy 는 윈도우 8 부터 새롭게 추가된 옵션입니다. 윈도우 7 시절에는 없었던 옵션이죠. 즉, 이를 완벽하게 지원하는 것은 윈도우 8 뿐이라는 겁니다. 물론 윈도우 7 부팅 항목에도 BootMenuPolicy 옵션을 구성할 순 있습니다. 하지만 윈도우 7 의 부팅은 그래픽 멀티 부팅 메뉴를 출력하는 것을 지원하지 않습니다. [그래픽 부팅 환경에서 부팅을 할 수 없다는 게 아니라, 윈도우 8 처럼 부팅 도중 그러한 화면을 출력해주는 기능이 없다는 것]

그래서 만약에 기본 부팅 항목이 윈도우 7 이고, 이러한 윈도우 7 기본 부팅 항목에 BootMenuPolicy 를 Standard 로 구성하게 되면, 그래픽 멀티 부팅 메뉴가 출력되는 게 아니라 그냥 윈도우 7 으로 곧장 부팅해버립니다.


곧장 부팅해버리는 과정을 좀 더 자세하게 이야기 해보죠. 제일 처음에 정리했던 것을 다시 보도록 하겠습니다.

이전 방식(윈도우 7 또는 Legacy)   : 선 멀티 부팅 메뉴 출력 -> 후 선택한 윈도우 부팅
새  방식(윈도우 8 또는 Standard) : 선 기본 윈도우 부팅 -> 후 멀티 부팅 메뉴 출력


선 기본 윈도우 부팅이죠? 즉, 이 단계에서 사실 이미 Bootmgr 부트 매니저에서 윈도우로 부팅 과정이 넘어갔다고 보면 됩니다. 즉, 우리가 보는 그래픽 멀티 부팅 메뉴는 정확하게 따지면 Bootmgr 부트 매니저가 아닌 윈도우가 출력해주는 겁니다.

이 화면은 멀티 부팅 메뉴를 출력하기 위해 Bootmgr 부트 매니저를 읽고 있는 게 아니라, 이미 기본 윈도우로 부팅이 시작된 거다. 즉, XP 나 비스타의 지렁이, 7 의 드래곤볼 모으기와 100% 동일한 과정이라고 보면 된다.


그래픽 멀티 부팅 화면은 Bootmgr 부트 매니저 단계를 지나 윈도우 단계로 넘어와서 윈도우가 출력해주는 화면이다.



Bootmgr 단계가 아닌 윈도우 단계에서 그래픽 멀티 부팅 메뉴를 처리하는 것이기 때문에 고급 시작 옵션도 시스템이 재부팅된 후 출력되는 게 아니라 윈도우 종료 후 바로 진입이 가능한 것이다.


일단 BootMenuPolicy 옵션의 값을 읽고 어떻게 할 것인지를 판별하는 것은 Bootmgr 부트 매니저입니다. BootMenuPolicy 옵션이 아예 겂거나, 해당 옵션의 값이 Legacy 라면 Bootmgr 부트 매니저가 직접 멀티 부팅 메뉴를 출력해주고(텍스트 부팅 메뉴), Standard 라면 기본 윈도우로 부팅을 시작하고 멀티 부팅 메뉴의 출력을 윈도우에게 넘기는 거죠.(그래픽 부팅 메뉴)

그래서 윈도우 7 부팅 항목에 BootMenuPolicy Standard 옵션을 구성하고 기본 부팅 항목으로 지정하면, 그리고 Bootmgr 부트 매니저가 이를 지원하는 윈도우 8 버전이라면, 그 값이 Standard 니까 기본 윈도우인 윈도우 7 으로 부팅을 시작합니다. 부팅의 제어권이 윈도우로 넘어 왔죠. 그럼 이제 윈도우 7 에서 알아서 부팅 메뉴를 출력해줘야 하는데... 윈도우 7 은 그런 기능 자체가 없습니다. 그래서 그냥 자기 혼자 부팅하고 끝나버리는 겁니다. 간단하죠?


그래서 일단 이러한 문제가 발생했고 현재 기본 부팅 항목을 그대로 유지할 생각이라면, 현재 기본 부팅 항목(윈도우 7 부팅 항목)에 구성되어 있는 BootMenuPolicy 옵션을 Legacy 로 바꿔주거나, 아예 BootMenuPolicy 옵션을 제거해버리면 됩니다. 그러면 이후 텍스트 환경의 멀티 부팅 메뉴가 정상적으로 출력됩니다.

bcdedit /set {default} bootmenupolicy legacy

bcdedit /deletevalue {default} bootmenupolicy


만약에 그래픽 환경의 멀티 부팅 메뉴를 꼭 사용하고 싶다면 윈도우 8 을 기본 부팅 항목으로 지정하셔야 합니다. [* 이 때 {GUID} 는 윈도우 8 부팅 항목의 식별자]

bcdedit /default {GUID}







BootMenuPolicy 옵션이 수정이 안 될 때

BootMenuPolicy 옵션 수정에 오류가 발생하는 모습.


BootMenuPolicy 는 윈도우 8 부터 새롭게 추가된 옵션입니다. 그래서 윈도우 8 버전의 BCDEdit 을 사용해야 옵션을 확인할 수 있으며, 마찬가지로 수정할 수도 있습니다. 즉, 이전의 윈도우 7 이나 윈도우 비스타에 포함된 BCDEdit 를 통해 작업하려면 위에서 보시는 것과 같이 지원하지 않는 형식이라며 작업이 거부되는 것이죠. 그래서 BootMenuPolicy 옵션을 수정하기 위해선 윈도우 8 에서 작업을 진행해야 합니다.

또는 System32 폴더와 그 하위 ko_kr 폴더의 BCDEdit.exe, BCDEDit.exe.mui 파일을 윈도우 8 버전으로 교체하셔도 됩니다. 참고로 해당 파일들을 교체하려면 System32 폴더의 권한을 가져와야 합니다. 이는 아래의 글을 참고하시길 바랍니다.

관리자 계정에 파일과 폴더에 대한 권한 부여하기 레지스트리






그래픽 환경에서 다른 부팅 항목을 선택했을 때의 부팅 원리

그래픽 멀티 부팅 메뉴는 다음의 두 가지 조건이 충족되면 멀티 부팅 메뉴가 출력됩니다.

1. {default} (기본) 부팅 항목의 BootMunuPolicy 옵션의 값이 Standard 일 때.
2. BootSequence 옵션으로 부팅하지 않았을 때.


* [Bootmgr] 특정 부팅 항목을 다음 번 부팅으로 지정하기 - BCDEdit.exe


그래픽 멀티 부팅 메뉴에서 기본 부팅 항목 외에 다른 부팅 항목을 선택했을 때, 시스템이 재부팅되고 곧바로 선택했던 윈도우로 부팅이 진행되죠? 그건 해당 부팅 항목을 BootSequence 를 통해 임시 기본 부팅 항목으로 설정하고 곧바로 시스템을 재시작하는 겁니다. 간단하죠?

그래서 그래픽 부팅 환경에서 다른 부팅 항목을 선택하고, 시스템이 재부팅 되었을 때 윈도우 설치 DVD 나 USB 등으로 부팅하여 BCDEdit 명령을 내려보면, 아래와 같이 선택했던 윈도우 부팅 항목으로 BootSequence 옵션이 설정되어 있는 것을 확인할 수 있습니다.

선택한 윈도우 부팅 항목이 다음 번 임시 부팅 항목으로 설정되어 있는 모습.


지금까지 설명한 그래픽 멀티 부팅 메뉴의 작동 구조라면 다른 윈도우를 선택하고(그게 만약 윈도우 8 이라면) 다시 부팅이 시작된 후 그래픽 멀티 부팅 메뉴가 또 출력되어야 할 것 같은데, 왜 그 때는 멀티 부팅 메뉴가 나오지 않고 곧바로 부팅이 진행되는 걸까? 라고 혹시 궁금해 하셨을까봐 알려드립니다. 그래픽 멀티 부팅 메뉴는 BootSequence 옵션으로 부팅하지 않았을 때 출력되는 겁니다. ^^ 저만 궁금했나요? ^^;;;


흠... 이게 원래 첫 번째 단락만 다룰 글이었는데 뭐 하다가 여기까지 왔나 모르겠네요. 아무튼 도움이 되었길 빌며 이쯤에서 마치도록 하겠습니다. ^^