윈 도 우 BCD 생성 스크립트 올립니다.
2010.11.25 22:48
은나노님께서 BCD 관련 글 올리시길래 작성해두었던 BCD 자동 생성 스크립트를 올려봅니다.
DVD에 있는 BCD와 윈도우 설치 후 생성되는 BCD를 참조하여 만들었습니다.
제가 사용하고 있는 스트립트가 생성하는 항목은 다음과 같습니다.
-----
1. 윈도우 비스타 설치 (boot.wim)
2. 윈도우 7 설치 (boot-seven.wim)
3. 윈도우 7 32비트 복구 환경 (winREx86.wim)
4. 윈도우 7 64비트 복구 환경 (winREx64.wim)
5. 윈도우 PE (winpe.wim)
-----
스크립트의 핵심적인 부분은 다음과 같습니다.
// BCD가 생성될 경로를 'BCD'라는 변수로 지정합니다. 변수를 사용할 때에는 %[변수이름]% 으로 사용합니다.
SET BCD=D:\bcd
// 저장소를 생성합니다.
bcdedit /createstore %BCD%
// 부트로더 관리자를 생성합니다.
bcdedit /store %BCD% /create {bootmgr} /d "Windows Boot Manager"
bcdedit /store %BCD% /set {bootmgr} locale en-US
// 로케일 설정입니다. 한국어는 ko-KR입니다.
bcdedit /store %BCD% /set {bootmgr} inherit {globalsettings}
// {globalsettings} 항목을 상속받습니다.
bcdedit /store %BCD% /set {bootmgr} toolsdisplayorder {memdiag}
bcdedit /store %BCD% /set {bootmgr} timeout 30
// 부트로더 선택 화면을 표시하는 시간을 지정합니다.
// {ramdiskoptions} 항목을 만듭니다. wim으로 부팅하기 위해서 필요합니다.
bcdedit /store %BCD% /create {ramdiskoptions}
bcdedit /store %BCD% /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store %BCD% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
for /f "tokens=1-3" %%X in ('bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader') do SET guid=%%X
// 'bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader' 명령을 수행한 결과를 guid 변수에 저장합니다.
// 이 과정을 통해 환경변수를 등록할 때 %guid% 를 사용합니다.
bcdedit /store %BCD% /set %guid% device ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
// 부팅하는 장치를 지정합니다.
// 파티션의 경우에는 partition=X: 의 형식으로,
// VHD일 경우에는 vhd=[VHD 파일]로,
// wim일 경우에는 ramdisk=[wim 파일],{ramdiskoptions} 로 지정합니다.
bcdedit /store %BCD% /set %guid% path \Windows\System32\Boot\winload.exe
bcdedit /store %BCD% /set %guid% locale en-US
// 로케일 지정입니다. 한국어는 ko-KR입니다.
bcdedit /store %BCD% /set %guid% inherit {bootloadersettings}
// {bootloadersettings} 항목의 내용을 상속받습니다.
bcdedit /store %BCD% /set %guid% osdevice ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
// osdevice를 지정합니다. 대체로 device의 내용과 같습니다.
bcdedit /store %BCD% /set %guid% systemroot \Windows
bcdedit /store %BCD% /set %guid% detecthal Yes
// HAL 설정입니다.
bcdedit /store %BCD% /set %guid% winpe Yes
// 윈도우 PE 환경변수입니다.
bcdedit /store %BCD% /set %guid% ems Yes
// EMS 환경변수입니다.
bcdedit /store %BCD% /set {bootmgr} displayorder %guid% %guid1% %guid2% %guid3% %guid4%
// 부트로더에 표시하는 순서를 지정합니다.
bcdedit /store %BCD% /default %guid%
// 기본적으로 선택될 부트로더를 지정합니다.
스크립트에 관련된 내용이라 꽤나 어렵게 느끼실 분들이 많으리라 믿습니다.
하지만 한 번 익혀두면 마음대로 BCD를 주무를 수 있을 겁니다. ^^
전체 스크립트는 첨부파일로 올려드립니다. 관리자 권한으로 실행하시면 스크립트의 내용이 수행됩니다.
PS) 아크로니스 wim 파일도 항목에 넣어서 응용할 수도 있겠습니다.
댓글 [3]
-
즐거운나날 2010.11.26 13:18
-
꿀꿀이 2010.11.28 17:58 'bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader' 이 명령을 처리하여 그대로
환경변수에 넣으면 {GUID} 와 불필요한 문자열이 포함되기 때문에
{GUID} 부분만 한 토큰으로 떼어내어 환경변수로 넣으려는 의도인 것 같습니다.
주석이 좀 애매한거 같은데
for /F "tokens=2" %%A in ('bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader' ) do (
set GUID=%%A
)이런 의도였지 않나 싶네요.
-
whislerxp 2010.12.03 14:03
tokens 옵션 빼고 해 보니 있으나 없으나 차이가 없군요 ^^;
팁> bcd를 생성하거나 수정하고 난 경로에는 시스템/숨김 파일로 bcd.log, bcd.LOG1, bcd.LOG2 파일이 생성됩니다.
하지만 파일은 bcd 하나만 복사해가시면 됩니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
4500 | 소프트웨어| pureBasic - WIM 정보 v0993 - 내부 파일 추가 삭제 내보내... [40] | 입니다 | 8845 | 160 | 12-22 |
4499 | 소프트웨어| 한글2024 로고 교체 / 자동 설치 옵션 [54] | 무월 | 13426 | 108 | 11-25 |
4498 | 소프트웨어| [추가기능1.1]엑셀 셀의 행-열 Auto-Highlight 하는 방법들 [77] | 지후빠 | 2835 | 103 | 11-10 |
4497 | 윈 도 우| WindowsXPE147-2/나만의 PE를 만들자 시즌2 ?? 2탄(중급용) [181] | 지연서연아 | 1279 | 102 | 04-29 |
4496 | 윈 도 우| PrincePE_V18.5 [164] |
|
204988 | 99 | 02-02 |
4495 | 윈 도 우| PE 한글화 프로그램 (v1.0) [106] | ㄱㅇㄱㄱㅁ | 28155 | 89 | 06-25 |
4494 | 윈 도 우| 윈도우 10 설치, 최적화 및 기타 팁 100개 정리 [56] | 컴알못러 | 27944 | 79 | 01-26 |
4493 | 윈 도 우| WindowsXPE147-1빌더/나만의 PE를 만들자 시즌2 ?? 1탄 (... [62] | 지연서연아 | 2478 | 75 | 04-16 |
4492 | 윈 도 우| PrincePE_V20 [52] |
|
2835 | 72 | 03-05 |
4491 | 윈 도 우| 배치파일을 이용해서 윈도우 자동 설치하기 [22] | gooddew | 5022 | 70 | 10-16 |
4490 | 윈 도 우| Windows 10 Ultimate (DREAM HS) [58] |
|
7357 | 70 | 08-14 |
4489 | 소프트웨어| iVentoy 만능윈도우(WIM) 자동 설치 [20] | 무월 | 4296 | 66 | 07-08 |
4488 | 윈 도 우| PrincePE_V19 [53] |
|
5096 | 65 | 02-15 |
4487 | 윈 도 우| 윈도우 장치 드라이버 추출(백업) 명령어 [25] | 컨피그 | 2802 | 64 | 02-23 |
4486 | 윈 도 우| 윈도우10 만능이미지 제작 메뉴얼 [43] | 질주민군 | 5592 | 64 | 11-19 |
4485 | 소프트웨어| Passolo v22.0.193.0 이용하여 번역하기 [64] | 사랑의음악 | 1012 | 63 | 05-15 |
4484 | 윈 도 우| 무인응답파일(autounattend.xml) 쉽게 만들기 [30] | 네오이즘 | 4018 | 62 | 12-31 |
4483 | 소프트웨어| 트루이미지(Acronis True Image) 추가본②(본문 수정) [91] | 고양이2 | 9118 | 62 | 11-26 |
4482 | 서버 / IT| 손쉽게 멀티부팅용 USB 만들기. (내용추가) [51] | 디폴트 | 7419 | 61 | 05-31 |
4481 | 윈 도 우| PrincePE_V22 [53] |
|
6607 | 59 | 03-06 |
질문입니다.
for /f "tokens=1-3" %%X in ('bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader') do SET guid=%%X 에서 나타나는 GUID는 {132b80fa-790a-11df-b168-a80a0ebf9332} 이렇게
{과 숫자 } 사이에 공백이 없는데 "tokens=1-3"을 사용했는지 모르겠습니다.
그냥
for /f %%X in ('bcdedit /store %BCD% /create /d "Windows Vista Setup" /application osloader') do SET guid=%%X
요렇게 하면 되지않나요?