티스토리 뷰

윈도우 XP 이후 boot.ini 가 사라지고 bcdedit 라는 좀 짜증스러운 유틸리티를 통해서만이 부트 설정을 할 수 있게 되었다. msconfig가 있긴 하지만, 이건 한가지 부트 설정에서 수정하는 것이다. 더 찾아보니 아주 간편한 툴도 있었다. 이름하여 BellaVista(벨라비스타?) 이다. 멀티부팅을 지원하는 도구는 아니라 bcdedit 를 완전히 대신하지는 못한다. 하지만, 분명 시스템 개발자를 위해서 필요한 부분만 긁어준다.

매우 직관적인 인터페이스를 가졌고, 예전의 msconfig 와 같이 여러가지 설정(이미 설정된 부트 설정의 변경, 디버그 설정, 크래쉬 덤프 설정, UAC 관련, 환경 변수, DbgPrint 필터 등)을 손쉽게 할 수 있도록 도와준다.

위에 사이트에서 받는 게 낫겠지만, 혹시나 없어질까봐? 여기에도 하나 올려본다.


찾다보니, 굳이 명령어 사용법을 안 익혀도 되는 Visual BCDEdit 라는 GUI 툴이 있다.
사실 위에 벨라비스타가 윈도우 디바이스 개발자에 편의에 초점이 맞춰져 있다. 자유 자재로 조작은 불가하다.
그러나 요 비주얼비시디에디트는 정말 BCDEDIT를 대신하는 역할만 한다.

최신 버전은 편의상 여기에 올린다.


다소 좀 복잡해 보이긴하지만, 굳이 명령어나 GUID값을 일일이 쓰는 수고를 안해도 되니 편리하다.


뭐 그래도 BCDEDIT 를 알고 싶다면 아래를 보도록 하자.

멀티부팅은 일단 BCDEDIT 설정을 사용하자.

http://ultarik.textcube.com/6 에서 퍼오고 수정함(펌을 막으려고 별 것을 다 한듯... -.-; )

1. 부팅 항목(bcd,Boot Configuration Data )에는 다음의 4가지의 주요 항목으로 구성되어있습니다 

    1. Identifier (식별자 )
       Identifier 는  시스템 고유 식별자로서 부팅시 어떤 항목을 사용 할 표시해주는 부분입니다. 

    2. Device (장치) 
       부팅할 항목중  어떤 장치 드라이브 또는 가상 이미지 사용할 것인지를 선택하는 항목입니다. 

    3. Path (경로) 
        2번 항목의 device 부트 로더 파일이 경로입니다. 

    4. Description (설명)
        부팅시 부팅 항목을 표시해주는 항목입니다 . 예 "윈도우 7" 

   Identifier 는 uuid(guid와 같은의미) 의 표시는 { } 

   uuid (universally Unique IDentifier)의 내용은 각 시스템에서 제공하는 고유값으로 수정할수 없습니다.

2. 기본적으로 사용되는 guid는 다음과 같습니다. 

      {Bootmgr} 부팅 관리자 

      {current}  부팅 시작시 선택한  현재 운영 체제. 

      {default} 기본 부팅 운영 체제. 

     윈도우 레거시 운영 체제 로더 (Windows XP에서 사용함)

     vista,win7는기본로더로 {Bootmgr}를 사용합니다.

    이외에 {memdiag} 또는{ramdisk} 있습니다.

    

3. bcd 항목을 수정하거나 삭제시 기본 백업  복구하는 방법 

  • bcdedit C:\SAVEDBCD
    c:\루트에 savebcd 파일에 백업하는 것입니다. 백업드라이브나 파일이름은 임의로  지정해주셔도 됩니다.
    bcdedit /import c:\savedbcd
    백업해두었던 bcd를 복구하는 명령어 입니다. 

4. 부팅항목 설정하는 방법

※ bcd 항목은 관리자 권한이 있어야 설정할 수 있습니다.
현재 확인하려면 bcdedit만 입력 하시면 됩니다.
식별자에 대한 추가 확인 하시려면  bcdedit /enum 또는 bcdedit /enum /v 로 확인가능


bcdedit /set {current} description "테스트 description"  -> 현재 부팅되어 부팅메뉴의 제목을 변경하는 명령어입니다.

bcdedit /set {ntldr} partition=E:   -> 이것은 Windows XP의 파티션 드라이브 가 e:라는 알려줍니다.

bcdedit /set {ntldr} path \ntldr  -> 부트로더 ntldr의 파일위치와 이름을 설정합니다 .

       -> 위치는 루트의 ntldr파일이고 드라이브는 위에서 지정한 e: 이다. 즉 "E:\ntldr 의미합니다.

bcdedit /displayorder {ntldr} /addfirst ->메뉴의 목록에서 첫 번째 체제로 Windows XP를 설정합니다.

bcdedit /default {ntldr}   ->부팅시  기본 운영 체제로 Windows XP를 설정합니다 .

bcdedit /displayorder {33342343-3424-2342342342-2344} /addlast  ->메뉴의 목록에서 마지막 위치에 넣습니다.

bcdedit /copy {current} /d  "새로운식별자로 copy"    -> vista나 windows7는 현재의 식별자 를 그대로 두고 새로운 식별자를 copy해서 사용할 수 있습니다.

   위 명령을 실행하면 새로운 식별자가 만들어집니다.

       예로 {9a5e9e72-8d5a-11de-bb73-a233f7cb88b0} 새 식별자가 만들어 집니다 .

       {GUID}내용은 만들때마다 달라집니다.

bcdedit /set {9a5e9e72-8d5a-11de-bb73-a233f7cb88b0} testvalue   -> 새 식별자에  새로운 환경변수(testvalue)추가 

bcdedit /deletevalue {9a5e9e72-8d5a-11de-bb73-a233f7cb88b0} testvalue   -> 새 식별자에  환경변수 삭제 

bcdedit /delete {9a5e9e72-8d5a-11de-bb73-a233f7cb88b0} /cleanup ->  새 식별자를 삭제

bcdedit /delete {ntldr} /f -> ntldr 완전히 삭제합니다.

bcdedit /timeout 5     ->  부팅시 메뉴선택 시간을 5초로 설정합니다.(bcdedit /set {bootmgr} timeout 5 와 같음)

bcdedit /set {current} detecthal yes  ->새로운 하드웨어을 인식 합니다.

bcdedit /set {current} detecthal no


detecthal,nx,pae 의 추가옵션사항 

/detecthal는 새로운하드웨어 인식옵션  
/NX 는  데이타실행방지여부 (Non-Excute) -> alwaysoff, oftin
/Pae 는 physical Address Extension 메모리 주소의 여부

사용예:  bcdedit /Set nx alwaysoff & /set pae ForceEnable

               32비트 시스템에서 4GB 이상의 메모리를 사용 하도록 설정하는 명령입니다.

                단 클라이언트 os 에서는 할 수는 없습니다. 32bit 서버에서만 사용 가능합니다.

                이유는 ms 에서 클라이언트 32bit에 사용 두었기 때문입니다. 장치드라이버의 호환성 때문입니다.

bcdedit /COPY {CURRENT} /D “VHD windows7”  --> 부트 로더내 엔트리를 한개 복사하여, /D에서 입력한 이름의 형태로 표시시킵니다. 여기서 GUID가

 리턴된 GUID 는 예를 들면 {9a5e9e72-8d5a-11de-bb73-a233f7cb88b0} 이런식으로 표시됩니다.

 아래 {GUID}부분에 리턴된 값을 넣으시면 됩니다.


bcdedit /SET {GUID} DEVICE VHD=[드라이브명:]\폴더\파일명 

bcdedit /SET {GUID} OSDEVICE VHD=[드라이브명:]\폴더\파일명 

bcdedit /SET {GUID} ON    --> HAL을 업데이트하여, 변경된 형태의 하드웨어를 인식시킵니다.


위 명령대로 하시면 부트 메뉴에 “VHD windows7” 항목이 설정되고 있습니다.


* 2011-02-23 VisualBCDEdit 내용 추가

댓글