[MBR] Grub 부팅을 해보자[펌글]
컨텐츠 정보
- 19,276 조회
- 1 댓글
- 0 추천
- 목록
본문
본 내용은 FunnyFrog's Tools에 구현된 기능을 하나하나씩 풀어쓰는 포스팅입니다.
( FunnyFrog's Tools는 복잡한 일련의 과정을 자동화한 스크립트형 관리툴입니다)
몇번의 간단한 입력만으로 아래의 복잡한 작업을 끝내실수 있습니다.
1. 부팅원리
컴퓨터가 켜지면 CMOS(환경설정)를 거쳐서 MBR에서 부트로더를 찾습니다. 따라서 MBR에 Grub를 우선순위 부트로더로 지정해두면 다른 무엇보다 예컨데 Windows부팅관리자 등 보다 먼저 Grub로 부팅하게 됩니다. 이 때, 사용자에게 Grub부팅이 필요없으면 자연스럽게 PBR영역으로 넘어가서 Windows부팅이 되게 됩니다. 즉, MBR이 Grub로 지정되어 있더라도 하등의 불편함 없이 Windows부팅이 가능하는 의미입니다.
또한 Grub의 구성파일인 grldr과 menu.lst는 어떠한 파티션의 루트디렉토리에 두어도 알아서 찾아 부팅을 하게 되므로 D:드라이브에 루트에 복사해두면 C:드라이브를 포맷하더라도 Grub부팅시스템은 손상되지 않아 쭈~욱 사용이 가능하다는 겁니다.
이는 기능적인 면에서 굉장히 매력적이라 할 수 있습니다. Windows가 부팅불가능 상태일지라도, 심지어는 Windows 설치 자체가 안되어 있더라도, WIndows부팅관리자가 없더라도... CD나 외장HDD, USB를 사용할 필요없이 도스모드에서 고스트작업이 가능하고, PE부팅 등의 필요한 각종 작업을 할 수 있다는 얘기가 됩니다.
2. 용도
제가 실제 사용하는 용도입니다.
1) 외장HDD에서 사용하면 Windows설치부터 관리까지 가능한 시스템을 꾸밀 수 있습니다. 80GB짜리 외장하드디스크에는 Grub부팅을 기본으로 WIndows부팅관리자가 설치되어 있고, WTG가 가능하도록 되어 있습니다만...WTG는 USB의 특성상 로딩이 너무 느려 거의 사용하지는 않습니다. 그러다보니 실제 Windows부팅관리자까지 갈일 없이 Grub에서 대다수 작업을 하고 있습니다.
2) 초보사용자 PC에 문제가 생기면 스스로 손쉽게 초기화가 가능하도록 고스트 초기화를 구현할 수 있습니다.
제가 지인들 PC에 Windows를 설치할때는 바탕화면, 즐겨찾기를 포함한 모든 데이터가 D:드라이브에 저장되게 정리하고 최적화시킨 이후 반드시 고스트작업을 해둡니다. 그리고 Grub를 MBR에 등록하고 미리 만들어둔 Ghost.ima를 메뉴에 등록하여 부팅시 3초정도 핫키(스페이스바)를 누를 시간을 주고 누르면 고스트가 실행되고 누르지않으면 Windows가 부팅되도록 해둡니다. 문제생기면 걍 스페이스바 한번 누르고 확인 한번만 더 확인하면 초기화가 되도록 해둔거죠.
3) 리눅스 부팅 등등등
3. 준비물
1) 다양한 방법이 있지만 가장 사용하기 쉬운 방법으로 포스팅하도록 하겠습니다. Bootice를 사용하겠습니다. 참고로, bootice의 BCD기능은 오류가 있으니 이용하지 않는 것이 좋습니다.
2) grldr(여기서는 grubt로 수정), menu.lst
4. 설정
설정은 아주 간단합니다. menu.lst 파일 내용이 어려울 뿐...
1) grub.zip 압축을 풀면 생기는 파일 2개를 C:드라이브가 아닌 드라이브 루트디렉토리(D:, E:,...)에 복사합니다. 어떤 드라이브라도 상관이 없습니다. grldr이란 파일로 구성하면 어떤 경우 에러가 났던 적이 있어서 이름을 grubt로 수정해뒀습니다.
2) Bootice를 실행하여 아래 설명대로 진행합니다. (명령 형식도 가능합니다만 생략하겠습니다.)
대상디스크는 맨 먼저 부팅되는 하드디스크를 선택하셔야 합니다.
대기시간 : 0으로 설정하면 부팅할 때 핫키 누르라는 말이 안보입니다. 까만화면에서 다다다~핫키를 눌러야 Grub로 부팅이됩니다. 다다다~가 실패하면 Windows부팅으로 넘어갑니다. 몇번해보면 언제 다다다~해야할지 알겁니다.
3) 이제 Menu.Lst를 열어서 메뉴를 구성합니다. 여기가 기초지식이 없는 분에게는...좀 ...난해합니다. 어쨌든 초보에게도 도움이 되도록 일정 부분 자동화시켜두었습니다. 복잡하고 난해한 부분은 삭제하였습니다.
제가 작성해둔 Menu.Lst 내용중에 설명이 필요한 부분만 설명을 드리도록 하겠습니다.
#### 폴더변수 해당 3개의 폴더에서 검색하여 실행 path1에 있으면 실행 없으면 path2로, 그래도 없으면 path3으로
#### 내장HDD부터 외장HDD을 오가며 검색하여 실행하도록 본인의 경로를 구성하면 됩니다.
#### 반드시 /로 시작해서 /로 끝나야합니다.
set path1=/MoARa/[OS]/Grub/File/
set path2=/
set path3=/Grub/File/
위의 path1,2,3은 ISO, IMA, IMG 등의 파일이 위치할 경로를 미리 변수로 지정한 모습입니다. 주의할 점은 보시다시피 D: 같은 드라이브문자는 제외해야하고, 경로구분자는 \ 대신 /가 쓰입니다. path1에 파일이 있으면 해당파일로 부팅하고 없으면 path2를 찾습니다. 또 없으면 path3에서 찾습니다. 외장HDD를 사용할 경우까지 생각하여 입력해두면 편합니다. 아참, 공백버그를 피하기 위해 웬만하면 경로나 파일명에 공백을 사용하지 않는 것이 좋습니다.
title Win7_PE (Search at 3 Paths)
set myfile=WIN7_PE.ISO
find --set-root --ignore-floppies --ignore-cd %path1%%myfile% || find --set-root --ignore-floppies --ignore-cd %path2%%myfile% || find --set-root --ignore-floppies --ignore-cd %path3%%myfile%
map --mem %path1%%myfile% (hd32) || map --mem %path2%%myfile% (hd32) || map --mem %path3%%myfile% (hd32)
map --hook
chainloader (hd32)
boot
menu.lst를 열어보면 부족하지만...그래도 적당한 설명이 되어있습니다. 참조하시고 보다 강력한 기능을 위해서는 구글링 등을 이용해서 공부하십시오. 고난이도는 거의 프로그래밍 수준이라 공부 좀 하셔야 합니다;;;
■ 11q.kr은 정보를 찾아 공유 합니다. https://11q.kr
관련자료
-
링크