USB부팅

grub4dos의 menu.lst 파일 작성법

프로필

2012. 5. 22. 16:04

이웃추가
아래 menu.lst는 제가 사용하는 메뉴입니다.
앞으로 추천할 만한 menu.lst들을 올리려고 합니다. 참고 하시면서 적용해 보세요

예전에 작성된 거지만 지금도 작동이 잘 됩니다.
초보이신 분들은 좀 어려울 수 있으나, 내용을 최대한 풀어놨어요.좀 더 세세한 내용은 검색으로 해결하세요.ㅠㅠ .설명이 완벽하지는 않을 겁니다. grub4dos 매뉴얼이 의외로 자세하게 설명돼 있는게 없어요. 저도 여기 저기서 줏어 들은 걸 나름대로 편집했으니까요.틀린 부분이 있으면 지적해 주시길....

먼저,바이오스에서 USB장치를 컴에 장착된 하드보다 우선 순위로 부팅순서를 변경해야 합니다.
관련글은 바이오스에서 USB장치 우선순위로 하기 참조 ( http://thrutam.blog.me/20157834116 )

그냥,Windows 7의 부트로더인 bootmgr로 하려다가 이미지파일(iso.imz등)로도 부팅하려고 grub을 사용하게 됐어요.
실제 컴의 멀티부팅메뉴는 grub이 아닌 bootmgr로 해도 충분합니다.(MS의 Windows 계열만 이용시)
제 노트북엔 지금 Windows 7_x64와 해킨용 Mac OS X 라이언 그리고 리눅스인 우분투 12.0.4_x64 을 설치하다 보니 필히 grub으로 가네요...3가지 OS 설치하기 만만치 않네요...

현재 제 노트북의 파티션 별 OS 설치내용.(노트북에 하드가 하나만 장착되어서 불가피하게 외장형 하드에 OS설치)

GPT가 아닌 MBR(기본설정)로 디스크를 구성했어요.
맥을 설치하고자 GPT로 디스크를 구성하려 했는데 윈도우즈와의 디스크 활성문제로 그냥 MBR로 했어요...
사실,맥의 GPT에서의 EFI를 별도 파티션에 두려고 했는데....아쉽군요.

주 하드(hdd0): 1st 파티션: Windows 7 X64 (NTFS) --- 활성(미리 설치한 7을 스냅샷으로 복원하고-복구함)
                     2nd 파티션: Data (NTFS) ---3가지 OS에서 공용으로 활용함.
                     3rd 파티션: MAC OS X_LION 10.7.4 (HFS+) ----부트로더(카멜레온) 설치,활성인데 윈도우즈에서는 인식불가

두번째 하드=USB외장하드(hdd1): 1st 파티션: 우분투 (ext4)---얼마전 업그레이드돼서 처음으로 깔았음.
                                               2nd파티션: swap
                                               3rd 파티션: 리눅스 백업 (NTFS)

여기서 두번째 USB 외장형 장치는 필요에 따라 연결합니다.(리눅스이용시만 연결해 사용)
(우분투에 부트로더를 설치해 이걸로 부팅하면 GRUB2메뉴에 3가지 OS 선택메뉴가 자동으로 뜹니다.)
평상시는 단일 하드로 부팅하죠.
제가 왜 이걸 설명하면 설치 상황을 알아야 usb장치가 hdd0 인지 hdd1인지를 알며 아래의 menu.lst를 이해함.

바이오스에서 usb를 우선 순위로 두면 부팅시 usb장치(리눅스가 아닌 비상용 USB장치)는 hdd0 이며, 장착된 실제 하드는 hdd1 이 됩니다.(외장형 하드 없을 때)
 
추후,잘못된 거는 계속 수정해 갑니다.
아래 글들을 파일로 올리니 사용자에 맞게 수정하세요.
중간에 설명 첨부(파란색)하니 아래 내용을 바로 복사하지 말고 첨부파일로 수정하세요....
명령어를 자주 까먹다 보니,아예 menu.lst 파일에 주석처리해 버렸네요...
프로그래머들이 자주 이용합니다.

[본문내용]

fontfile /Grub/fonts/hangul.fnt.gz # 폰트 설정
splashimage /Grub/Xpm_image/splash.xpm.gz # 바탕화면 설정

timeout 5 # GRUB 메뉴를 보여줄 시간(초)을 지정한다.
default 0 # 기본선택된 메뉴(0부터 시작한다.), 지정시간후에 자동으로 실행되는 항목
fallback 1 # 첫 번째(0) 방법으로 부팅실패시 두번째(1) 방법으로 부팅한다.

# 본 설명서는 2010.08.13 에 작성되었다. 
# 자꾸 시간이 지나면서 Grub명령어를 잊어 먹어, 지겨워서 작성했음. ㅋㅋㅋ by Tamy

# [1] 읽기 연습
# #               : 주석을 나타냄.맨 앞에 #(샤프) 기호가 있으면 그 행은 주석으로 해석하지 않는다.
# title           : 부팅 항목의 이름을 지정한다.즉,화면에 보일 메뉴이다.
# \n              : 간단한 설명(note), 또는 줄 바꾸기(new)
# boot  : 지정된 부트파일이나 부트섹터로 부팅한다.
# (fd0)  : 첫 번째 플로피 디스크 장치,통상 A드라이브라 한다.
# (hd32)  : 통상 CD-ROM 장치라 한다.(0xff) 과 같다.iso이미지 로딩시 필요.
# (hd0,0)         : 첫 번째 하드의 첫 번째 파티션,Grub은 0 부터 시작함에 유의한다.장치:괄호로 묶음, 파일:괄호 없음.
# (hd0,0)/BOOTMGR : 상대경로주소(/ 다음 파일,cf)절대주소: = 로 표현) 지정_첫 번째 디스크, 첫 번째 파티션의 루트(/)에 있는 BOOTMGR

# [2] 실전 연습
# map (hd0) (hd1) : 대상_(hd0)을 원본_(hd1)으로 덮어쓰기(mapping,A를 B로 변환)한다.즉, hd0(usb장치)와 hd1(하드디스크)의 순서를 바꾼다.
   부팅시, USB를 장착하면 첫 번째 디스크가 USB장치이며,두 번째가 하드디스크 장치이다.

# map --mem /Grub/FDD_image/Konboot_V1.1.img (fd0)
 : mem은 메모리로서 운영체제를 안전하게 해준다.--mem=2880처럼 플로피 용량으로 지정해도 된다.
   결국, 위 구문은 대상_/Grub/FDD_image/Konboot_V1.1.img 을 원본_(fd0)_통상 A드라이브로 안전하게 변환해준다.
   즉, 여기서는 가상 플로피 드라이브를 만드는 명령이 된다.

# map --hook      : 처음 map 명령이 실행되었을 때 지정한 효과를 즉시 반영(hook:~에 걸다)한다. 
   즉,위의 가상 플로피 드라이브를 실제 적용하라는 의미이다.

# rootnoverity (hd0,0) : 디스크 파티션을 마운트하지 않는다.GRUB는 유닉스계열이므로,원도우즈에서 완벽한 제어가 되질 않으므로,
(hd0,0) 즉,USB로 마운트하지 않고 넘겨주라는 의미. 반대로 마운트는 root 이다.

# find --set-root /BOOTMGR 
 : 루트에서 부트 장치 또는 부트 파일(/BOOTMGR)을 찾아, 지정(set)한다.
   즉, 이것은 윈도우즈(se7en)에서 C:\BOOTMGR 파일(부트 파일)을 찾아라는 의미이다. 
# chainloader (hd0,0)/BOOTMGR
         : 컴퓨터를 실행하는 방법(loader)의 하나로써, 현재 실행되는 로더를 새로운 로더로 교체하라는 의미.
   즉,현재 사용하는 부트 로더를 (hd0,0)/BOOTMGR 파일로 교체하라는 의미.
   쉽게 말해, 하드 루트의 c:\bootmgr 파일(괄호없음)을 불러서 부팅한다고 생각하면 된다.

# chainloader (fd0)+1 : 위 구문의 파일은 괄호가 없지만,장치는 괄호를 씌운다.
       여기서는, 현재 부트 로더를 첫 번째 플로피(A드라이브)의 첫 번째 섹터로 교체하라. 즉,플로피로 부팅하라는 의미.
       '+1'은 장치의 첫 번째 섹터(0번 부트섹터)를 읽어 부팅하라는 의미이다.  
    
# chainloader (hd32)  : 현재 부트 로더를 시디롬 장치로 부팅한다.단,리얼모드만 지원
즉,OS설치 이미지로는 부팅해서 설치는 되지 않는다는 의미임.GRUB에서 이것만 되면 얼마나 좋을까요?
 

title [1] 하드로 부팅하기\n * PC에 부착된 하드로 부팅합니다.
map (hd0) (hd1)
map (hd1) (hd0) 
rootnoverify (hd0,0)  
# makeactive                                    <------- 맥 os에 부트로더가 있어 생략.
chainloader (hd1)+1                        #<------- 이 부분땜시 고생 많이 했네요....위에 makeactive로 하면 그냥 chainloader +1 로 함.

title ---------------------------------------------------------------------------
root

# 루트에서 부트매니져를 찾아 지정.

title [2] Windows 7  PE 로 부팅하기\n * Windows se7en의 여러 PE로 부팅합니다.\n * Tamy_PE와 User_PE 그리고 복구모드(X86,X64)로 부팅됨.\n * Windows 설치를 포함하여 각종 에러 발생시 비상용 윈도우즈로 부팅하기.
find --set-root /BOOTMGR
chainloader /BOOTMGR

title ---------------------------------------------------------------------------
root

title [2-1] Mac OS X 비상 디스크_HackBoot V 6.2\n * 맥전용(HP 2101TX모델 전용) 부트이미지로 부팅하기.\n * 부팅메뉴선택만 가능...
map /Grub/CD_image/HackBoot.iso (0xff) || map --mem /Grub/CD_image/HackBoot.iso (0xff)
map --hook
chainloader (0xff)


title [2-2] Mac OS X 비상 디스크_Boot CD Lion for Laptop\n * 맥전용 부트이미지로 부팅하기.\n * 부팅메뉴선택만 가능...
map /Grub/CD_image/Boot_LAPTOP.iso (0xff) || map --mem /Grub/CD_image/Boot_LAPTOP.iso (0xff)
map --hook
chainloader (0xff)

title ---------------------------------------------------------------------------
root

title [3] 트루 이미지 Ver 2011_6696_Plus Pack_영문판\n * 영문판 Ver 2011_6696_plus pack 으로 부팅하기.

map --mem /Grub/CD_image/ATIH_plus_2011_6696_eng.iso (hd32)
map --hook
chainloader (hd32)
boot

title [4] 트루 이미지 Ver 2011_6597_Plus Pack_한글판\n * 한글판 Ver 2011_6597_Plus Pack 으로 부팅하기.
map --mem /Grub/CD_image/ATIH_plus_2011_6597_kor.iso (hd32)
map --hook
chainloader (hd32)
boot


# 고스트는 하드매핑없이 부팅하면 USB장치를 첫번째 디스크,첫번째 파티션(1:1)으로 인식이 돼(0:0 이 아님에 주의하세요)
# 고스트옵션 메뉴중 1:1부분이 USB로 인식된다. 따라서 고스트 이미지를 살리기 위해
# GRUB메뉴를 하드매핑하면 이부분은 해결이 된다.나머지 부분은 일반 (fb0)부분과 동일하다.

title [5] 고스트 Ver 11.5.1\n * 자동으로 백업,복구를 시행한다.\n * 백업시 D 드라이브(첫번째 하드의 두번째 파티션)의 Backup폴더에 저장된다.\n * 다음 메뉴는 백업: 2번, 복구: 3번을 추천한다. 
map (hd0) (hd1)
map (hd1) (hd0)
map --mem /Grub/FDD_image/ghost.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title ---------------------------------------------------------------------------
root

title [6] Kon Boot_윈도우즈 암호무시하고 로그온하기\n * 윈도우즈의 암호를 무시하고 부팅시킨다.\n * 윈도우즈(XP ~ se7en_x32),리눅스 모두 사용가능.
map --mem /Grub/FDD_image/Konboot_V1.1.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

title ---------------------------------------------------------------------------
root

title 재시작\n * 재부팅합니다.\n\n * SEE YOU AGAIN !!!
reboot

title 전원 끄기\n * 컴퓨터 전원을 끕니다.\n\n GOOD BYE !!!
halt


이렇게 편집하고 실제 USB로 부팅하면 다음과 같은 화면을 볼 수 있어요....


첨부파일
타미
타미

컴퓨터를 만지작 거리는 걸 좋아하다 보니, 나이 들어갈 수록 예전에 했던 작업과정을 까먹어 조금씩 작성하고자 합니다.단지 관심있어 운영중이니 내용이 잘못일 수 도 있습니다.