본문 바로가기

부팅과 멀티 부팅

[Bootmgr] 부팅 메뉴 숨기기(비활성하기) - BCDEdit.exe

부팅 메뉴 비활성을 통해 목록에서 숨기기

* 명령 프롬프트는 관리자 권한으로 실행하세요. [관련 포스팅]
* GUID 등의 입력이 까다롭다면 명령 프롬프트의 텍스트 복사 기능을 활용하세요. [관련 포스팅]
* 윈도우 XP 에서 작업하기 위해선 BCDEdit.exe 를 미리 준비해야 합니다. [관련 포스팅]


1. 부팅 메뉴 숨기기란?

이것은 몇 차례 다른 글에서도 언급한 내용인데요. bcdedit /displayorder {GUID} /remove 를 통하면 부팅 항목을 삭제하지 않고 단순히 목록에서만 숨길 수 있습니다.



즉, 위의 GARS Mini Core 부팅 메뉴는 삭제된 것처럼 보이지만 실상은 단순히 숨겨져(비활성된) 있는 것입니다. 이것은 지난 글에서 살펴 보았던 부팅 항목을 완전히 삭제하는 것과는 달리 단순히 목록에서만 표시하지 않고 비활성 상태로 숨기는 것을 의미합니다. [단순히 출력되는 겉모습만은 삭제된 것처럼 보일 뿐입니다.]



2. 부팅 메뉴 숨기기 명령의 이해

특정 부팅 메뉴를 숨기는 명령은 다음과 같은 구조를 가지고 있습니다.

bcdedit /displayorder {GUID} /remove
이 때 {GUID} 는 비활성화시킬(부팅 메뉴 목록에서 숨길) 부팅 항목의 식별자입니다.



3. 부팅 메뉴 숨기기

그럼 실제로 부티 메뉴 하나를 숨겨보도록 하겠습니다. 작업은 아래와 같습니다. [관리자 권한으로 실행된 명령 프롬프트에서 작업]

bcdedit
└ 비활성화할 항목의 식별자를({GUID}) 확인.

bcdedit /displayorder {8f0340df-cb55-11e1-ab1b-f1c62dbb1f23} /remove
└ 해당 항목을 비활성화하여 부팅 메뉴 목록에서 숨김.




4. 작업의 결과 확인

이렇게 작업을 마치고 나면 부팅 항목을 삭제했을 때와 마찬가지로 bcdedit (bcdedit /enum active) 명령에서 해당 항목이 사라진 것을 확인할 수 있습니다. 그리고 멀티 부팅 메뉴에서도 해당 항목은 출력되지 않죠.





5. 숨겨진 항목의 확인

하지만 비활성화 상태인(숨겨져 있는) 항목을 포함한 모든 항목을 출력하는 bcdedit /enum all 이나, 해당 유형에 속하는 모든 항목을 출력하는 bcdedit /enum osloader (숨긴 항목이 osloader 유형이었기 때문에) 명령을 내려보면 해당 항목이 단순히 목록에서만 숨겨졌을 뿐 그대로 존재하고 있는 것을 확인할 수 있습니다.



이는 이렇게 부팅 메뉴에서 표시되지 않더라도 부팅 항목은 살아있고, 그렇기 때문에 원할 때면 언제든지 다시 bcdedit /displayorder {GUID} /addfirst(/addlast) 명령을 통해 해당 부팅 항목을 다시 목록에서 출력되게 할 수도 있고, [관련 포스팅] 또는 굳이 부팅 메뉴에 다시 출력하지 않더라도 bcdedit /bootsequence {GUID} 명령을 통해 임시 기본 부팅 항목으로 지정하는 방식으로 부팅을 진행시킬 수도 있다는 것을 의미합니다. [관련 포스팅]

이를 조금 응용하면 단순히 부팅 메뉴에서는 숨겨두고 배치 파일을 통해서만 해당 부팅 메뉴로 부팅할 수 있도록 꾸미는 것이 가능합니다. 뭐 사용하기 나름이니까요. 다른 곳에서도 몇 차례 언급한 내용이고 뭐 그리 크게 어려운 내용은 아니니 이쯤에서 마치도록 하겠습니다. 이상입니다. ^^