윈 도 우 vhd로 pe 사용하기 2탄 (grub4dos 환경에서 bootmgr 경로 수정)
2013.06.12 21:35
1탄은 vhd로 pe를 사용하기 위한 방법에 대한 설명이였다면,
2탄은 grub4dos에서 vhd로 된 pe를 부팅하는 방법에 대한 글입니다.
이 글은 어디까지나 vhd로 된 pe를 구동하려는 분들을 위한 것이며,
일반적인 방식인 wim 이나 iso방식으로 pe를 구동하는것에 비해 우월하다는 뜻은 아닙니다.
또한 vhd, pe , grub4dos에 대한 기본적인 지식은 갖추고 있다는 전제하에 설명을 진행하겠습니다.
0. 최종 목적
왼쪽처럼 기껏 grub화면을 구성했는데 다시 오른쪽 화면이 떠버린다면?
한번의 선택으로 바로 구동을 하고 싶은데 다시 오른쪽 화면 처럼 또다른 선택을 해야한다면?
즉 , grub 상에서 (= menu.lst 상에서) 바로 vhd로 된 pe를 1개 이상 구동하는 것이 이 글의 목적입니다.
1. grub로 pe나 vhd 구동이 가능한가?
grub4dos 만으로 바로 pe와 vhd구동은 안됩니다.
물론 iso로 된 pe는 구동이 가능하나,
wim이나 vhd등은 윈도우 부트로더인 bootmgr를 통해서만 구동이 가능합니다.
예) title Windows pe
find --set-root /bootmgr
chainloader /bootmgr
다만, ntboot을 이용하면 wim이나 vhd를 바로 구동이 가능합니다.
예) title vhd
command boot/NTBOOT/NTBOOT NT6=/vhd/window.vhd
title windows pe
command boot/NTBOOT/NTBOOT NT6=/wim/pe.wim
2-1. bootmgr를 이용하는것의 단점은 무엇인가?
grub상에서 bootmgr를 통해 부팅을 하게되면 bootmgr 자체 이름은 변경이 가능하나
bcd파일은 무조건 /boot/bcd 만을 읽어오게 됩니다.
즉 bootmgr1 , boootmgr2 , ...3 , ...4 , 등이 생성해서 등록을 한다해도 결국 읽어오는건 /boot/bcd로 동일합니다.
bcd에 엔트리가 단 하나만 존재한다면 문제가 없는데,
bcd에 엔트리가 여러개가 존재한다면, grub에서 선택하고 bcd에서 또다시 선택하는 결과가 생깁니다.
또한, gfxmenu를 구성했다면 갑자기 쌩뚱맞은 windows boot manager 화면을 만나시게 됩니다.
2-2. ntboot을 이용하는것의 단점은 무엇인가?
첫째로는 3초간의 딜레이가 있습니다.
ntboot을 이용해서 부팅하면 이런 화면을 한번 거치게 됩니다.
둘째로는 ntboot으로는 일반 vhd나 pe(iso, wim)는 부팅이 가능하지만 vhd로된 pe는 구동이 안됩니다 !
두가지 모두 해결 방법을 찾기위해 열심히 검색을 해보았으나,
ntboot의 관한 정보는 거의 없거나, 중국어라 결국 포기를 했습니다.
3. 해결 방안은 무엇인가.
앞서 말한대로 제가 원하는 것은 grub에서 바로 vhd로 된 pe를 구동하는것이였습니다.
여기서 저는 2가지 방법을 생각해보았습니다.
첫째, bcd 상에 있는 특정 엔트리로 바로 부팅하는 방법
- 가장 이상적인 해결방안이라고 생각했습니다만, 일시적으로 bootsequence를 정해줄수는 있는 방법만이 고작이였습니다.
둘째, bootmgr이 불러오는 bcd 경로를 변경하는 방법
- 앞서 말한대로 bootmgr은 어디에 존재하든 /boot/bcd를 읽어옵니다.
이 bcd의 경로를 수정할수만 있다면 한 파티션에서 여러개의 bcd를 불러올수 있게 됩니다.
4. bootmgr이 읽어오는 bcd 경로 수정 방법
https://reboot.pro/topic/16824-how-to-modify-bootmgr-of-windows-8/
https://www.msfn.org/board/topic/162853-need-help-modify-bootmgr-windows-8/
두가지 글을 참고하시기 바랍니다.
대단히 무책임하지만,
초보분들이 이해하기 쉽게 설명하는건 제 능력밖의 일이라고 판단했습니다. (열심히 설명하던 글은 전부 지웠습니다.)
대신, 제가 직접 수정한 boomgr 파일 10가지를 올려드립니다.(jpg지우고 압축푸시면 됩니다.)
각각이 읽어오는 파일은 /boot/ bc0, bc1, bc2, bc3 ,...., bc9 입니다.
modified_bootmgr for windows 8
5. 수정된 bootmgr 사용법
일단 첨부된 파일을 usb에 풀어넣으십시오. (반드시 root일필요는 없습니다.)
위에서 예를 들었던걸 다시 보겠습니다.
title Windows pe
find --set-root /bootmgr
chainloader /bootmgr
여기서 bootmgr 을 bc1mgr로 변경하고, boot 폴더 내의 bcd파일명을 bc1으로 변경하시면 됩니다.
당연히 bc1파일도 편집을 필요로 할때는 bcd로 이름 변경후에
bcd 편집툴등으로 편집해주시면 됩니다.
예) title windows setup
find --set-root /boot/bc4mgr
chainloader /boot/bc4mgr
1편에서 만들었던 윈도우 설치 vhd 이며,
usb 내에 있는 boot 폴더 안에 bc4mgr을 통해서 부팅이 됩니다.
이 bc4mgr은 /boot/bcd를 읽어오는 것이 아닌, "bc4" 를 읽어 옵니다.
6. 마치며
grub를 어느정도 이용하실수 있는 분들을 기준으로 글을 쓰다보니,
아예 사용 못하시는 분들은 막히신부분도 꽤 있었을듯 합니다.
grub까지 설명하기엔 제 능력도 능력이지만, 너무나 방대해질듯하여 이렇게 작성한걸 양해부탁드립니다.
https://v.daum.net/link/38922218
제가 grub4dos를 처음 시도할때 많이 도움을 받은 블로그입니다.
찬찬히 읽어보시면 grub4dos가 어렵지 않다는걸 알게 되실것입니다.
추가로 제가 사용중인 menu.lst 파일을 올려드립니다.
보시면 죄다 vhd인 황당한 menu를 보시게 될겁니다.ㅎ
댓글 [13]
-
벤켄 2013.06.12 22:06
-
jun218zero 2013.06.12 23:08 고맙습니다
-
인이짱 2013.06.13 00:22
정성스러운 게시글에 항상 감사드립니다.
-
노익장 2013.06.13 05:38
감사합니다^^
-
suk 2013.06.13 07:38
오~좋은 강좌입니다.
저도 grub으로 멀티부팅하고 있습니다만
멀티로 하기 위하여 각각 iso로 묶어서 그동안 해결을 해왔었죠
그래도 bcd를 2개 정도 이용할 때도 있는데..이중으로 부팅화면이 떠서 좀 그렇죠
이걸로 다 해결이 되겠네요.
그리고, iso로 되어 있던 것들도 wim으로 해야겠습니다. wim이 더 로딩이 빠르더군요.
-
suk 2013.06.13 16:46
...너무 김칫국부터 마신 것 같습니다 ㅎㅎ;
실제 해보니까 기존iso가 더 파일구성이 간단하네요.
그리고 어쩐지 로딩하는 바도 나오지 않더군요.
또, 어떤 pe는 부팅도 안 됩니다.
그래도 vhd를 이용하시는 분들에게는 희소식이 될 것 같습니다
-
suk 2013.06.15 07:04
허어..참..이거...알고 보면 이리 쉬운 걸..하긴 이 부분에 별로 관심도 없었습니다;
이 방법 말고 얼마든지 멀티bcd 되네요. 이미 하고 있으면서도....맹했네요 ㅋ
부트파일만 iso로 묶어주면 무제한으로 멀티가 가능하죠.
wim은 그냥 iso 안에 넣으면 되고, vhd는 iso 바깥에 놔두면 되네요(안에 넣는건 안해봤습니다)
bcd를 미리 바깥에 vhd 부팅되도록 한 다음에 iso에 넣으면 잘 되네요.
* 다른건 그냥 iso로 멀티하고, iso가 아닌 bcd로는 되도록 단독으로 하려고 했었죠.
가끔 테스트 때문에 2개로 멀티했습니다만...휴우...wim도 iso 안이 아니라 바깥으로도 되겠네요.
이 간단한 사실을 아직도 모르고 있었다니..무관심해서 그랬는지...에고;
-
DarknessAngel 2013.06.13 10:25
참고로 vhd grub4dos에서 바로 부트 가능합니다 (reboot.pro쪽 가보면 거의 다 저렇게 직접 부트하는걸로 쓰고있고, 다른 해외 강좌쪽도 마찬가지입니다)
요건은 bootmgr인데, 이넘을 굳이 vhd 외부에 두는것이 아니라 vhd내부에 두면 됩니다 (예를 들어 가상머신에서 가상하드를 vhd로 생성하여 까는경우 모든 파일이 안에 다 들어있죠)
윈도vista/7/8이 부트하는데 필요한 요소는 크게 3가지입니다 (GPT인 경우는 약간 더 존재하지만 좀 복잡하므로 이번 설명에서는 빼겠습니다 (굳이 하실려는 분들은 구성이 꽤 귀찮으므로 걍 가상머신에 까신후 vhd등록하는 방법 써주세요) )
1. 해당파티션이 활성화(active)
2. MBR/PBR (여기에서는 당연히 nt60타입의 부트섹터입니다)
3. bootmgr및 bcd등의 구성요소
즉 이걸 다 갖추어주면 됩니다
간단히 하실려면 가상머신에서 vhd로 가상하드 만들어서 윈도 파일 복사 끝나고 리붓될때 강제로 가상머신 종료시킨후 그 vhd쓰셔도 됩니다
먼져 vhd를 마운트하신다음 diskpart등으로 해당 윈도 파티션을 활성화해줍니다
이어서 bootsect /nt60 V: /mbr /force를 통해 부트섹터를 덮어줍니다 (V드라이브는 당연히 vhd의 부트드라이브입니다)
마무리로 bcdboot v:\windows /s v: /l ko-KR로 bcd구성및 bootmgr전송등을 해주시면 됩니다 (PE인경우 이후 bcd파라메터를 수정해주셔야합니다)
이 작업을 마치면 vhd가 단일이미지로 부트 가능한 상태가 됩니다 (즉 ntboot도 필요없고, 외부 bootmgr 도움도 안 빌려도 됩니다)
이제 다음과 같이 menu.lst를 설정해줍니다 (grub4dos가 vhd를 raw타입 가상하드로 인식해서 처리하게 됩니다)
find --set-root /test.vhd
map /test.vhd (hd10)
root (hd10)
chainloader (hd10)
boot만일 잘 안 되시면 chainloader를 (hd10)대신 /bootmgr로 바꾸어봐주세요
이렇게 하게되면 vhd 1개로 단일부트 가능하게 되므로 ntboot의 딜레이도 없고, bcd도 혼자 쓰므로 재선택하는 문제도 회피됩니다
자세한 사항은 https://reboot.pro/topic/15407-booting-from-vhd-in-grub4dos를 참조해주세요
-
Lucky 2013.06.13 21:58
수고하셨습니다.
고맙습니다.
-
블랙퍼피 2013.06.14 10:33
find --set-root /test.vhd
map /test.vhd (hd10)
root (hd10)
chainloader (hd10)
bootmenu.lst에 위와같이 구성했더니 다음과 같은 에러가 뜹니다..
윈도우8pe를 VHD에 풀어놓았고요.. 동적디스크로 구성했습니다..
원인이 뭘까요?
-
DarknessAngel 2013.06.15 10:56
동적vhd는 제대로 되는지 확인 안 해봤습니다
일단 제가 예제 적으면서 실수한걸 발견했습니다 (hd10을 hd32로 고쳐보세요)
https://www.911cd.net/forums/lofiversion/index.php/t23970.html를 참조해주세요
-
친절한꼬북씨 2013.06.16 23:43
윈포에서 정보만얻어가다가 혹 도움이될까해서 적어봅니다
vhd를 dynamic expandable로만들고 자식을만든경우
grub4dos로 메뉴구성을못해 애를먹었습니다
인터넷 뒤져보니 grub4dos자체로는 동적확장되는 부모를 상속받은 자식은 쓸수가없고 vmlite제품만가능하다고하더라구요 심지어 ntboot도안된다고하더라구요
하지만 ntboot로가능합니다.
일단 기본명령은 동일합니다
ntboot nt6=파일명.vhd하시면되고
이때 주의사항이있습니다
경로명 및 파일명에 공란이있으면 안됩니다
언더바나 하이픈은가능하네요
전 이부분에서 애를먹었습니다 ㅎㅎㅎ
grub4dos는 역슬레쉬로 공백을 인식하나 ntboot로 부팅중 오류를발생합니다
그리고 부모vhd에서 다음작업을해줍니다(단일하드처럼 만드는겁니다 raw작업이라고하네요)
1.부모를 active시킵니다
2.bootsect작업과 bcdboot로 bcd를 만들어야합니다
3.그리고 부모 vhd 에있는 bcd를 수정해서 스스로부팅되게 vhd를 마운트 시킵니다. 일반 vhd등록과같아요
이렇게하신후 grub에서 ntboot nt6 을 이용하시면됩니다
딱 한줄이면 부팅이 되죠
그리고 ntboot의 3초딜레이는 ntboot를 디셈블링해서 없애버리면 됩니다
인터넷에도 3초 딜레이된파일이 있습니다(중국사이트)
혹잘안되시는분은 쪽지주시면 자세히알려드리겠습니다 -
사과나무. 2014.01.15 10:41
좋은정보 감사드려요~ ^^*
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
1843 | 윈 도 우| 인터넷 연결시 윈도우 8 시간 동기화 하기 배치파일 | 마니아 | 4824 | 1 | 06-16 |
1842 | 윈 도 우| dnf3.5통합을 hotfix업데이트 보다 먼저 해야 하더군요. [5] | suh | 5754 | 3 | 06-15 |
» | 윈 도 우| vhd로 pe 사용하기 2탄 (grub4dos 환경에서 bootmgr 경로 ... [13] | 박군 | 13305 | 7 | 06-12 |
1840 | 소프트웨어| VirtualBox 64비트 이상의 운영체제가 설치가안될때.. [6] | Lr라 | 4928 | 1 | 06-10 |
1839 | 윈 도 우| TV수신카드 자동 무인 녹화하기 [9] |
|
7909 | 0 | 06-10 |
1838 | 윈 도 우| 트윅윈도우 만들기.WinToolkit 1.4.1.23. [4] |
|
9083 | 7 | 06-10 |
1837 | 소프트웨어| 포터블 만드는 프로그램 오해하지말자. [2] | Lr라 | 6271 | 0 | 06-09 |
1836 | 소프트웨어| bat 파일로 if문을 써보자.. [3] | Lr라 | 4369 | 2 | 06-09 |
1835 | 윈 도 우| 고스트 파일을 VHD(X)으로 생성하여 등록하기 [7] | 그루터기 | 7133 | 7 | 06-08 |
1834 | 소프트웨어| [알툴즈] 배너 없이 사용하는 방법. [2] | 달려야하니 | 4487 | 4 | 06-07 |
1833 | 윈 도 우| 초보자를 위한 PE의 가상드라이브(Z)로 윈도우설치하기 [9] | 마니또우 | 9703 | 15 | 06-06 |
1832 | 윈 도 우| VHD(X) OneKey 2013 아주 쉽게 생성하고 등록하기 [18] | 그루터기 | 7835 | 14 | 06-06 |
1831 | 서버 / IT| 광고 없는 네이버 검색엔진 [8] |
|
7348 | 2 | 06-04 |
1830 | 윈 도 우| 팀뷰어 터치 앱 한글 입력 문제 [4] | 부산전문가 | 6581 | 0 | 06-04 |
1829 | 서버 / IT| Active X 에 대해서 배워보자 |
|
3672 | 8 | 06-03 |
1828 | 윈 도 우| W7-8PE Builder제작/완성/수정하여 다시첩부 UP/처음사용자용 [21] | 까꾸리 | 12582 | 25 | 06-03 |
1827 | 윈 도 우| UEFI GPT 형식에러 VHD 파일 부팅 메뉴 등록하기 [5] |
|
10797 | 2 | 06-02 |
1826 | 하드웨어| MAR과 MBR의뜻.. 알고쓰자..! [1] | Lr라 | 7568 | 0 | 05-29 |
1825 | 소프트웨어| uTorrent(u토렌트) 디스크 과부하 해결하는 방법 [3] | 조남식 | 16665 | 1 | 05-29 |
1824 | 소프트웨어| 특수문자 단축키 [3] |
|
5308 | 0 | 05-28 |
좋은 강좌 감사합니다.