강좌 / 팁

소프트웨어 Grub 초보자 가이드

2012.10.24 20:27

고맙쥐 조회:9904 추천:7

Gurb를 배우고 싶은 초보님들을 위해 이글을 올립니다. 


100% 제가 쓴글은 아니고 저도 참조해서 정리를 한번 해봤습니다.


저도 아직 부족한점이 많습니다^^



* 간단한 소개


-위키백과의 설명내용을 약간만 인용해보겠습니다.


Grub4Dos는 Gnu의 Grub에 기반을 한 부트로더 입니다. Grub4DOS는 기존의 Grub부트로더의 기능을 대부분 갖고 있으며 특히 도스, 윈도우와 같은 MS의 운영체제를 부팅하는 능력이 뛰어 납니다.  

GNU GRUB(대개 GRUB)은 GNU 프로젝트의 부트로더이다. 대부분 운영 체제의 커널을 불러올 수 있으며, 인자를 넘겨 줄 수도 있다. GNU GRUB의 이전 이름은 "GRand Unified Bootloader"이었고 이는 대통일 이론(Grand Unified Theory)의 영문 이름의 패러디이다. 대부분 리눅스 배포판에서 부트로더로 사용한다.


대충 정리하자면 이렇습니다. GNU project의 하나로 개발된 것이 GRUB부트로더이며, 이것이 리눅스 배포판의 부트로더로 사용되었는데, 그 이후 이를 도스와 호환가능하도록 개발하여 도스 및 윈도우에 광범위하게 사용되게 된 것이 바로 Grub4Dos라고 이해하면 되겠습니다.


*특히, Grub라는 이름의 유래를 이번 검색으로 처음 알게되었는데, 굉장히 흥미롭네요. 즉, 대통일이론의 패러디였던 것입니다. 즉, 모든 OS의 커널과 호환되는 부트로더를 만들 생각으로 개발된 것임을 알 수 있습니다. 대통일이론이라는 것은 물리학용어인데, 직역이라서 좀 어색하지만 영문의 의미를 보면 대충 감이 오실 겁니다. 통일장이론(unified theory of field)을 검색해보면 대략적인 의미를 아실 수 있을 겁니다( https://100.naver.com/100.nhn?docid=155938 ). 간단히 말하자면 현재까지 발견된 힘(만유인력=중력, 전기력, 자기력, 핵력[강력, 약력])의 모든 형태 및 상호작용을 하나의 원리로 설명하기 위한 이론이라고 보면 되겠습니다. 이미 아시는 분들도 많겠지만, 저처럼 인문계열출신들은 이런 개념이 생소할 수 있는데, 관심있는 분들은 "The Elegant Universe"라는 책을 추천하고 싶습니다. 저도 물리학에 대해 아는 바가 전혀 없지만, 지적 욕구는 약간 있었는데 몇 년전에 이 책을 읽으니 어느정도 해소가 되었고 무척 즐거웠습니다(물론 초끈이론 부분은 정말 이해하기 힘들어 상상해볼 뿐이었습니다만 -,.-). 뜻하지않게 물리학 용어가 나오는 바람에 예전에 읽은 책생각이 나서 옆길로 좀 샌 느낌이네요 ^^;;


*GNU project : 리차드 스톨만이 주창하여 시작된 완전한 공개운영체제를 만들자는 운동으로서, 법적 경제적 지원을 위해 자유 소프트웨어 재단(Free Software Foundation)을 세우기도 했습니다. GNU는 "GNU's Not UNIX"의 약자입니다. (더 자세한 내용을 다음을 참조하세요: https://ko.wikipedia.org/wiki/GNU )


*리차드 스톨만: "이곳"을 참조(위키백과)


부팅메뉴를 구성하는 방법에 대해서 간단하게 살펴보겠습니다. 사용자측면에서 보자면 복잡한 의미를 알 필요없이, 샘플메뉴를 수정해서 사용하면 그만입니다. 하지만, 뭔 뜻인지는 알고 써야 부팅이 잘 안되거나 할 때 대처할 수 있고, 나름 응용해서 사용할 수 있는 능력도 생기는 법이니까, 가급적 하나하나 의미를 알아보도록 하겠습니다.  다만, 제가 아는 한도에서만 간단하게 설명해보겠습니다.


* 설명 중에 map라는 용어가 많이 나옵니다. 특히 가상머신을 사용하시는 분들은 "매핑"한다는 것이 낯설지 않으실 겁니다. 하지만, mapping이 무엇인지 정확히 설명하기는 굉장히 힘든 것 같습니다. 저도 정확한 의미를 알지 못합니다. 다만, 다른 장치에 존재하는 데이타에 "위치를 지정하여" 그 데이타에 접근할 수 있도록 하는 것이라고 이해하면 되지 않을까 생각합니다.


* 부팅메뉴파일 구성시 가장 중요한 것은, Grub4Dos 부팅의 경우, 대문자와 소문자를 구별한다는 것입니다. 부팅이미지 파일 등을 지정할 때, 대문자인지 소문자인지 정확히 확인후 입력하세요. 가령 "GHOST.iso" 파일일 경우에, 메뉴에 "ghost.iso" 또는 "GHOST.ISO"로 되어 있으면 부팅이 되지 않습니다. 항상 주의하세요.



1. Grub4Dos 부팅의 구조


- Grub4Dos의 부팅에 필요한 기본 파일은 다음의 3가지 파일입니다(Grub설치를 위한 파일은 제외).


*grldr.mbr : 모든 볼륨의 루트에서 grldr을 찾아서 부팅권한을 넘기는 역할을 합니다. CD/DVD제작 및 USB 부팅의 경우에 반드시 필요한 파일은 아닙니다.  


*grldr : 실질적인 부트로더입니다. 루트에서 menu.lst 파일을 찾아서 부팅메뉴를 표시해주고, 선택된 부팅메뉴를 실행합니다. 다만, menu.lst 파일을 찾지 못한 경우에는 자체에 내장되어 있는 부팅메뉴를 표시합니다.


*menu.lst : 부팅메뉴리스트 파일입니다. 단지 메뉴만을 구성하는 파일이므로, 메모장으로 간단히 편집할 수 있습니다. 결국 사용자가 직접 수정/편집할 필요가 있는 것은 바로 이 부팅메뉴파일입니다. 따라서 본 글에서 살펴볼 것은 menu.lst 파일의 편집 방법 및 그 각 명령의 의미입니다.

 

2. 저장매체에 Grub4Dos 심기


bootice를 이용한 방법이 초보자들한테 좋을듯 합니다.

무명님 게시판 참조하세요^^

https://windowsforum.kr/3828449#51



3. menu.lst [부팅메뉴 파일] 샘플 


Grub4Dos 0.4.4 기본자료(영문자료)에 포함된, menu.lst 샘플자료는 이렇게 되어 있습니다.


# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default

title find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
savedefault --wait=2

title find and load BOOTMGR of Windows VISTA
fallback 2
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
savedefault --wait=2

title find and load CMLDR, the Recovery Console of Windows NT/2K/XP
fallback 3
find --set-root --ignore-floppies --ignore-cd /cmldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /cmldr
chainloader /cmldr
#####################################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
#####################################################################
# step 1. Write 4 chars "cmdc" at 0000:7C03
write 0x7C03 0x63646D63
# step 2. Write 3 chars "ons" and an ending null at 0000:7C07
write 0x7C07 0x00736E6F
savedefault --wait=2

title find and load IO.SYS of Windows 9x/Me
fallback 4
find --set-root /io.sys
chainloader /io.sys
savedefault --wait=2

title find and boot 0PE.ISO
fallback 5
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

title find and boot MicroPE.ISO
fallback 6
find --set-root /boot/MicroPE.ISO
map /boot/MicroPE.ISO (0xff) || map --mem /boot/MicroPE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

title Parted Magic ISO
fallback 7
find --set-root /pmagic.iso
map /pmagic.iso (0xff) || map --mem /pmagic.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

title Ultimate Boot CD ISO
fallback 8
find --set-root /ubcd.iso
map /ubcd.iso (0xff) || map --mem /ubcd.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

title commandline
commandline

title floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)

title back to dos
quit

title reboot
reboot

title halt
halt

title MAXDOS.IMG
find --set-root --ignore-floppies /boot/MAXDOS.IMG
map --mem /boot/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)


# 표시가 된 앞부분은 부팅메뉴와는 상관없는, 주석(설명)부분입니다. 이 부분을 제외하고 앞부분부터 하나하나 의미를 살펴보겠습니다. 명령형식을 먼저 제시하고, 사용례를 하나씩 덧붙이겠습니다.



(1) 색상지정, 배경이미지지정, 폰트지정, 자동실행메뉴설정 및 자동실행 시간설정


- 기본 메뉴파일에는 폰트 및 배경이미지 지정은 사용하지 않고 있는데 이것도 아울러 설명하겠습니다.

color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default

*색상지정: 배경이미지없이 부팅할 경우에 보기좋게 설정하려면 적절한 색상을 조합하면 됩니다(앞에서 한글패치된 grldr을 언급했는데, 그 자료를 이용할 경우에는 색상지정이 적용되지 않습니다. 아마도 폰트파일을 적용하기 때문인 듯 합니다. 따라서 한글패치된 grldr을 사용하는 경우에는 배경이미지파일을 적용하거나 그냥 검은바탕으로 사용하셔야 합니다).


color [글자색]/[배경색] [선택된글자색]/[선택된배경색] [하단글자색]/[하단배경색] [상단글자색]/[상단배경색]


- 사용 가능한 색깔: black, blue, green, cyan, red, magenta, brown, light-gray 

- 글자색에만 사용가능한 색깔: dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white


color blue/green yellow/red white/magenta white/magenta

*배경이미지 지정: 자신이 좋아하는 배경이미지를 넣어 사용할 수 있습니다. 단, 배경이미지를 넣을 경우에는 부팅시  이미지파일 로딩을 위한 약간의 딜레이가 생기는 점이 단점입니다.


splashimage /이미지파일


- 이때 배경이미지파일 지정은 루트에 위치한 경우에는, "/파일명" 형식이면 되고, 만약 특정 폴더-가령 BOOT폴더-에 들어 있을 경우에는 "/BOOT/파일명" 형식으로 써주면 됩니다.


splashimage /splash.xpm.gz


*폰트지정:


fontfile /폰트파일 


fontfile /fonts


*자동실행시간설정:


timeout 원하는시간(초)


- 입력한 시간(초) 후에 default 메뉴로 자동부팅이 된다는 의미입니다.

 

timeout 30


*자동실행메뉴설정:


default 부팅메뉴번호 또는 /default


- 가령 "default 0" 이라고 입력하면, 현재의 부팅메뉴 중 가장 첫번째 메뉴가 자동실행메뉴가 된다는 의미입니다. 메뉴의 번호는 menu.lst 파일에 나열된 메뉴의 순서에 따라 0,1,2,3...의 형식으로 메겨집니다. 


- "default /default" 는 약간 특별한 지정방식인데, 미리 준비한 파일(기본자료에 default라는 파일이 들어있음)에 자동메뉴를 입력하여 실행시키는 방법입니다. 굳이 이렇게 복잡하게 사용하는 이유는 default파일을 수정해줌으로써 자동메뉴를 그때그때 변경할 수 있기 때문입니다. 이렇게 사용할 경우에는 각각의 부팅메뉴 끝에, "savedefault --wait=2" 형식의 명령을 추가하여, 자동메뉴를 현재의 메뉴로 변경할 것인지를 묻고 "Y"입력시 자동메뉴가 그 메뉴로 변경되도록 할 수 있습니다. 이런 기능이 필요없으면 굳이 "default /default"형식으로 구성할 이유가 없습니다.


default 0

default /default



(2) 다양한 운영체제 선택하기 


title find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
savedefault --wait=2


각각의 운영체제에 맞는 부팅매니저를 연결해주면 됩니다. 위의 예는 ntldr을 찾아서 부팅시켜주는 명령입니다. 대표적인 부팅매니저(또는 부팅파일)를 나열하면 다음과 같습니다.


- Windows NT/2K/XP : ntldr

- Windows VISTA / 7 : bootmgr

- Windows 9x/Me  : io.sys


*title find and load NTLDR of Windows NT/2K/XP

- "title"은 부팅시 표시되는 메뉴의 제목이므로 보기 편하게 마음대로 변경하셔도 됩니다. 다만, 한글패치된 부팅자료를 이용한 경우가 아니라면 영문만 표시가능합니다.


*fallback 1

- '후퇴'라는 의미인데, 부팅실패한 경우에 뒤에 추가된 '번호'에 해당되는 부팅메뉴로 넘어가라는 의미입니다.  

- 위의 예에서 ntldr을 찾는 상기의 메뉴는 첫번째 메뉴이므로, 메뉴번호는 "0"번입니다. 따라서, fallback 1는 부팅실패시 다음번 부팅메뉴인 메뉴 "1"번으로 넘어가게 되는 것입니다.


 *find --set-root --ignore-floppies --ignore-cd /ntldr

- 루트에서 해당 파일(ntldr)을 찾되, 플로피나 CD는 무시하라는 명령입니다.


*map

- 매핑명령인데, 이것은 뒤에 더 살펴보겠습니다. 특히 운영체제를 찾아 부팅하는 메뉴에서는 없어도 될 것 같습니다.

 

*chainloader /ntldr

- 말 그대로, 부트로더와 연결하라는 명령입니다. 즉, 찾은 부트로더(ntldr)에 연결하여 부팅권한을 넘겨주는 역할을 하는 명령입니다.


*savedefault --wait=2

- 이것은 앞에서 설명한 것처럼, 자동실행메뉴를 번호로 지정하지 않고 "/default"로 설정한 경우에, 현재실행할 부팅메뉴를 자동실행메뉴가 되도록 변경할 것인가를 선택할 수 있게 해주는 명령입니다. 2초내에 "Y"를 입력하면, default파일에 변경사항이 저장되어, 해당메뉴가 자동실행메뉴로 변경됩니다. 


*OS 선택메뉴 간단 정리

- 위의 예에서는 굉장히 복잡하고 지저분하게 명령을 나열했지만, 실제로는 불필요해 보입니다. 간단하게 이렇게 쓰면 족합니다. 즉, 루트에서 부팅매니저 파일을 찾아서 부팅권한을 넘겨주면 됩니다.


title Windows 7/VISTA (BOOTMGR) Booting
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr

title Windows NT/2K/XP (NTLDR) Booting
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

title Windows 9x/Me (IO.SYS) Booting
find --set-root /io.sys
chainloader /io.sys

title Linux (menu.lst) Booting
find --set-root /sbin/init
configfile /boot/grub/menu.lst

- title 은 마음대로 변경하셔도 됩니다.

- 마지막 메뉴는 이미 존재하는 리눅스 부팅메뉴파일을 찾아서 부팅하는 메뉴입니다.



(3) 하드디스크 및 파티션을 선택해서 부팅시키는 메뉴


- 이러한 메뉴는 위 예에서는 나오지 않지만, 유용한 경우가 많기 때문에 추가로 설명해 보겠습니다.

- 다음의 예를 가지고 설명하겠습니다.



* 하드디스크 선택하여 부팅하기

title Boot from 1st HardDisk
chainloader (hd0)+1
rootnoverify (hd0)
boot

title Boot from 2st HardDisk
chainloader (hd1)+1
rootnoverify (hd1)
boot

- 첫번째 메뉴는 첫번째 하드디스크로 부팅하는 명령이고, 두번째는 두번째 하드디스크로 부팅하는 명령입니다.


- "hd"는 하드디스크를 의미하고, "숫자"는 하드디스크의 순서를 의미합니다. 첫번째가 "0"부터 시작합니다.


- "chainloader (hd0)+1"는 앞에서 약간 설명했는데, 부트로더에 연결하는 명령인데, 여기서는 하드디스크 0번의 첫번째 섹터(부트섹터)에 연결하라는 의미입니다. +1은 첫번째섹터를 의미합니다(정확하게는 첫번째 섹터부터~라는 의미).


- "rootnoverify (hd0)"는 첫번째 하드디스크를 루트 디바이스로 지정한다는 의미입니다. 본래 root명령을 사용하면 해당볼륨을 마운트하여 파일을 읽어 들일 수 있게 된다고 합니다. 다만 noverify가 붙으면 해당장치를 마운트하지는 않는다고 합니다. 리눅스 파티션이 아니면 보통은 rootnoverify를 사용한다고 생각하면 될 것 같습니다. (root 명령은 루트 디바이스로 지정하는 명령이므로, 디스크 및 파티션 그리고 디스크이미지에만 사용됩니다. ISO 이미지파일의 경우에는 사용하지 않습니다.)


- "boot" 명령은 부팅하라는 명령인데, 대부분의 메뉴에서 마지막에 써도 되고 안써도 됩니다. 왜냐하면 부트로더에 연결되면 알아서 부팅을 시작하기 때문입니다.



*파티션 선택하여 부팅하기

title Boot from the First Partition of Hard Disk
rootnoverify (hd0,0)
makeactive
chainloader +1

title Boot from the Second Partition of Hard Disk
rootnoverify (hd0,1)
makeactive
chainloader +1

title Boot from the Third Partition of Hard Disk
rootnoverify (hd2,0)
makeactive
chainloader +1

- 첫번째 메뉴: 첫번째 하드디스크의 첫번째 파티션으로 부팅합니다.

- 두번째 메뉴: 첫번째 하드디스크의 두번째 파티션으로 부팅합니다.

- 세번째 메뉴: 두번째 하드디스크의 첫번째 파티션으로 부팅합니다.


- (hd0,1) hd는 하드디스크를 의미하고, 그 뒤의 첫번째 숫자는 하드디스크 순서, 두번째 숫자는 파티션 순서입니다. 디스크 및 파티션 순서는 "0"부터 시작합니다. 따라서 (hd0,1)는 첫번째 하드디스크의 두번째 파티션을 의미합니다.


- "makeactive" 는 파티션 활성화를 의미합니다. 당연히 주(pri)파티션에만 가능합니다.


- 위 메뉴에서는 마지막에 "boot" 명령이 없습니다만, 마지막줄에 각각 넣어주어도 됩니다.



(4) ISO 이미지(CD이미지) 부팅메뉴


- 위의 예에서 다섯번째 메뉴를 살펴보겠습니다.

title find and boot MicroPE.ISO
fallback 6
find --set-root /boot/MicroPE.ISO
map /boot/MicroPE.ISO (0xff) || map --mem /boot/MicroPE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

- "MicroPE.ISO" 이미지를 부팅하는 메뉴입니다. Grub4Dos는 자체적으로 가상 cdrom 드라이브를 생성하여 ISO 이미지를 매핑하여 부팅할 수 있는 장점이 있습니다. 


- find --set-root /boot/MicroPE.ISO : 루트에서 boot폴더 안에 있는 MicroPE.ISO파일을 찾으라는 명령입니다.


- map /boot/MicroPE.ISO (0xff) || map --mem /boot/MicroPE.ISO (0xff)  

; MicroPE.ISO 파일을 매핑하라는 명령입니다. 이것은 두개의 명령이 "||" 으로 연결되어 있는 모습입니다. || 는 앞의 명령이 실패한 경우에 뒤의 명령을 실행하라는 의미입니다. (가령 부팅명령 뒤에 "|| default 0" 를 붙여서 부팅실패시 자동메뉴가 실행되도록 구성할 수도 있습니다.)


- map /boot/MicroPE.ISO (0xff) : 직접 매핑하는 명령입니다. (0xff) 는 가상 cdrom 드라이브의 번호라고 보시면 됩니다. 이것을 (hd32)로 써도 됩니다. 다만 특별한 경우에 (hd32)로 쓸 경우 버그로 인한 오류가 발생하는 경우가 있다고 합니다.


- map --mem /boot/MicroPE.ISO (0xff) : 이것은 간접적인 매핑명령입니다. 위와 달리 --mem 이 붙어있는데, 이것은 먼저 이미지파일을 메모리에 복사한 후 매핑한다는 의미입니다. 따라서 메모리용량이 여유있는 경우라야 가능합니다. 직접 매핑의 경우에는 이미지파일이 "contiguous"해야 한다고 되어 있습니다. 즉, "In direct mapping, the image file must be contiguous." 따라서 그 이미지 파일이 "contiguous"하지 않다면, 간접매핑을 이용해야 합니다. contiguous는 '인접한, 연속하는' 등의 의미인데, 이게 정확히 어떤 뜻인지는 모르겠습니다. (*아마도 인접해있어야 한다는 의미인것 같습니다. 즉, 다른 볼륨에 존재하면 안된다는 의미인것 같습니다.) 


- map --hook : 이것은 매핑명령에 의해 매핑된 것을 바로 실행되도록 하는 명령입니다. 


- chainloader (0xff) : 이것은 위에서 설명한 내용과 같습니다. 가상 CDROM 드라이브(0xff는 이 가상드라이브를 지정하는 번호임)에 매핑된 이미지 파일로 부팅되도록 연결해주는 명령입니다. (디스크 이미지가 아니기 때문에 부트섹터를 지정하는 +1은 사용되지 않은 것입니다.)


- savedefault --wait=2 : 이것은 앞에서 설명한 바와 같습니다. 필요없다고 생각합니다.


- boot 명령은 마지막줄에 추가해주어도 되고 안해도 됩니다.



* 기본적인 ISO 이미지 부팅메뉴 설정(필요없는 명령 삭제)

title find and boot MicroPE.ISO
find --set-root /MicroPE.ISO
map /MicroPE.ISO (0xff) || map --mem /MicroPE.ISO (0xff)
map --hook
chainloader (0xff)

- 결론적으로 ISO 이미지를 부팅할 경우에는, 위의 메뉴형식대로 "MicroPE.ISO"부분만 원하는 이미지파일명으로 수정하여 사용하면 될 것입니다(ISO이미지가 루트에 위치한 경우임, 따로 폴더에 넣어놓은 경우에는 /boot/MicroPE.ISO 형식으로 써 주어야 합니다).


- 매핑명령의 경우, map /MicroPE.ISO (0xff) || map --mem /MicroPE.ISO (0xff) 대신에 "map --mem /MicroPE.ISO (0xff)" 만 써도 됩니다. 하지만, 논리적으로 봤을 때 직접매핑을 시도하고 실패시에 간접매핑하는 것이 맞는 것 같습니다. 그리고 이미지 파일크기가 큰 경우에는 메모리부족으로 부팅이 안될 수도 있기 때문에, 우선적으로 직접매핑의 방식으로 부팅되도록하는 것이 좋을 것입니다(이부분을 예전에 저도 잘 몰라서 무조건 간접매핑의 방법으로 메뉴를 구성했는데 잘못된 것이었네요). 추가로, 큰 이미지파일인 경우에는 직접매핑의 방법만 사용해야하므로(간접매핑은 램용량부족으로 오류가 생길 것이므로), "map /MicroPE.ISO (0xff)"만 써주어야 합니다. 이점을 유의하세요.


(5) 플로피 디스크 및 이미지 부팅메뉴


- 위의 예 중에서 플로피 디스크로 부팅하는 메뉴(10번째메뉴)를 보겠습니다.

title floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)

*fd 는 플로피디스크를 의미합니다.

*fd0 은 첫번째 플로피디스크를 의미합니다.

- 결국 위 메뉴는 첫번째 플로피디스크로 부팅하는 메뉴입니다.

- 위에서 살펴본 첫번째 하드디스크로 부팅하는 메뉴와 거의 유사합니다. 



- 위의 예 중에서 플로피 디스크 이미지로 부팅하는 메뉴(마지막 메뉴)를 보겠습니다.

title MAXDOS.IMG
find --set-root --ignore-floppies /boot/MAXDOS.IMG
map --mem /boot/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

- find --set-root --ignore-floppies /boot/MAXDOS.IMG : 플로피 디스크를 무시하고, boot폴더 안에 있는 MAXDOS.IMG 이미지파일을 찾으라는 의미입니다.


- map --mem /boot/MAXDOS.IMG (fd0) : 메모리에 이미지파일을 복사 후 매핑하는 간접매핑의 방법으로 이미지파일을 '첫번째 플로피디스크로' 매핑하라는 명령입니다(플로피디스크 이미지의 경우에는 간접매핑을 사용하는 것이 좋습니다. 이미지 크기도 작아서 문제가 없습니다).

- map --hook : 매핑된 것을 실행되게 하라는 의미입니다.


- chainloader (fd0)+1 : 첫번째 플로피디스크의 첫번째 섹터(부트섹터)부터 연결시키라는 의미입니다.


- rootnoverify (fd0)  : 첫번째 플로피디스크를 루트 디바이스로 설정하라는 의미입니다. 


* 플로피 디스크 이미지를 부팅메뉴에 추가할 경우, 위의 메뉴에서, 이미지 파일 지정부분(/boot/MAXDOS.IMG)만 수정해서 넣어주면 될 것입니다. 가장 많이 사용되는 플로피 디스크 이미지 파일인 "ima"파일도 마찬가지입니다.



(6) 직접 명령입력 메뉴


- commandline은 자체에 내장된 명령입니다.

title commandline
commandline


(7) 리부팅 메뉴 


- 컴퓨터를 재시작 합니다.

- reboot는 자체 내장된 명령입니다.

title reboot
reboot

(8) 시스템 종료 메뉴


- 컴퓨터의 전원을 차단합니다.

- hault는 자체 내장된 명령입니다.

title halt
halt

(9) 기타

 

* 설명 추가하기:

 

- title 입력 후 끝에 행갈이 표시인 "\n "을 추가하면, 부팅메뉴 표시 하단박스에 설명으로 표시 됩니다. 

- 가령, "title Windows XP \n * Windows XP Professional SP3 K", 설명을 한 줄 더 추가하려면 "\n"를 하나 더 추가하여 설명을 덧붙이면 됩니다.

 

* 다른 메뉴파일 불러오기:

 

- 가령, 현재 menu.lst 파일에서 메뉴를 불러온 상태에서, 다시 또다른 메뉴파일(가령, anothermenu.lst)의 메뉴를 불러오려면 이렇게 하면 됩니다.

 

title anothermenu.lst
configfile /anothermenu.lst



 3. 샘플 부팅메뉴파일


- 이런 정도로 구성해놓고 필요한 부분만 수정/삭제해서 사용하면 충분할 것 같습니다.

- 위에서 설명한 내용을 확인하는 차원에서 한번 살펴보시면 족할 듯 합니다.


color white/blue yellow/green
timeout 20
default 0

title Boot from 1st HardDisk
chainloader (hd0)+1
rootnoverify (hd0)
boot

title Boot from 2st HardDisk
chainloader (hd1)+1
rootnoverify (hd1)
boot

title ---------------------------------------------------------------------------
default 0

title Windows 7 PE (MAN_PE_TOOLS)
find --set-root /BOOTMGR
chainloader /BOOTMGR

title Windows XP PE
find --set-root /WINXPE.ISO
map /WINXPE.ISO (0xff) || map --mem /WINXPE.ISO (0xff)
map --hook
chainloader (0xff)

title Windows XP Professional SP3 K Setup
find --set-root /I386/SETUPLDR.BIN
chainloader /I386/SETUPLDR.BIN

title NORTON GHOST
find --set-root /GHOST.IMA
map --mem /GHOST.IMA (fd0)
map --hook
rootnoverify (fd0)
chainloader (fd0)+1

title Acronis TrueImage
find --set-root /ATIH.ISO
map /ATIH.ISO (0xff) || map --mem /ATIH.ISO (0xff)
map --hook
chainloader (0xff)

title Acronis DiskDirector
find --set-root /ADDS.ISO
map /ADDS.ISO (0xff) || map --mem /ADDS.ISO (0xff)
map --hook
chainloader (0xff)

title Partition Wizard
find --set-root /PWHE52.ISO
map /PWHE52.ISO (0xff) || map --mem /PWHE52.ISO (0xff)
map --hook
chainloader (0xff)

title ---------------------------------------------------------------------------
default 0

title Windows Memory Diagnostic
find --set-root /BOOT/memtest.gz
kernel /BOOT/memdisk
initrd /BOOT/memtest.gz

title Enable USB 2.0 Mode (PLoP)
find --set-root --ignore-floppies --ignore-cd /BOOT/PLPBT.BIN || configfile /menu.lst
kernel /BOOT/PLPBT.BIN

title ---------------------------------------------------------------------------
default 0

title Windows 7/VISTA (BOOTMGR) Booting
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr

title Windows NT/2K/XP (NTLDR) Booting
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

title Windows 9x/Me (IO.SYS) Booting
find --set-root /io.sys
chainloader /io.sys

title Linux (menu.lst) Booting
find --set-root /sbin/init
configfile /boot/grub/menu.lst

title CommandLine
commandline

title Reboot
reboot

title Shutdown
halt

멀티부팅 연동은 아래 링크참조

https://powerwindows.co.kr/S03_Tips01/25957


* 참고1: https://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial

* 참고2: https://diddy.boot-land.net/grub4dos/Grub4dos.htm

* 참고3: README_GRUB4DOS.txt


- 저도 모르는 부분이 많아서 설명을 못하거나 잘못한 부분이 많을 겁니다. 


- 지저분하고 재미없는 글 읽어주셔서 감사합니다 ^^ 


-출처- 파워윈도우즈 klein



번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
1621 윈 도 우| 윈도우8 스토어 앱 기본 설치 위치 변경하기 [14] chkid 17523 7 10-31
1620 윈 도 우| 윈도우8 사용자들을 위한 단축키 [4] 지그재그 9569 1 10-31
1619 윈 도 우| VHDX등을 WIM으로 만들기 에러가 나는경우 [6] 보[boram]람 8165 1 10-30
1618 윈 도 우| 윈도8 해상도, 레지스트리 설정 변경. [7] 라임노트 14980 1 10-30
1617 윈 도 우| 윈도 XP/7 통합 설치 USB를 만들 때 쓰는 grub4dos 설정 파... [8] 커맨드파워 17912 4 10-29
1616 윈 도 우| 윈도우8 사용하시고 하드디스크가 계속 돌아갈때... [4] LastID 12280 3 10-29
1615 윈 도 우| 윈도우 8 설치 후 검은 화면 현상 해결하기 [7] 이이연 27002 2 10-29
1614 윈 도 우| Windows 8에서 관리자권한 문제를 어찌할 것인가? [14] suk 19786 3 10-29
1613 소프트웨어| (초보용) utorrent 누구나 포터블로 만들 수 있습니다 [11] suk 9125 2 10-28
1612 소프트웨어| UAC 프롬프트 없이 관리자 권한 프로그램 바로 가기 만들기... [8] chkid 11210 3 10-28
1611 윈 도 우| 윈도우8 핫픽스 사이트 a12434 10279 3 10-28
1610 소프트웨어| [동영상] 스카이프 영국에 전화걸기 [10] gooddew 14435 5 10-28
1609 소프트웨어| 오피스 2013 토큰 백업 및 복구방법 [6] gooddew 18771 5 10-28
1608 소프트웨어| 마이크로소프트 2013 오피스 키 변경하기 [4] gooddew 15687 2 10-28
1607 윈 도 우| 프로모션 파일은 안 받아도 됩니다. [9] 노백 9194 3 10-26
1606 소프트웨어| BCDEDIT 명령어 도구 사용법(기초사용자용) [7] chkid 8260 6 10-26
1605 소프트웨어| EasyBCD 2.2 커뮤니티판 사용자 메뉴얼(기초사용자용) [14] chkid 16648 14 10-25
1604 윈 도 우| 맑은 고딕 6.11 -> 6.22 [24] ☆미친참새 24946 14 10-25
1603 소프트웨어| AN0NYM0US님강좌에 보태기(NTBOOT) [28] 만사형통 7433 1 10-25
» 소프트웨어| Grub 초보자 가이드 [9] 고맙쥐 9904 7 10-24
XE1.11.6 Layout1.4.8