2009.02.10 14:38

GRUB4DOS 활용한 멀티부팅 구현 (USB,FDD,HDD)

GRUB4DOS 가 다른 부팅매니져보다 좋은 점은 FDD 이미지를 2.88M 이상도 지원한다는 점이고, 가상하드 이미지도 지원한다는 점임니다
 
TFTPD32강좌의 첨부화일중 bigdos는 26M의 FDD 이미지를 사용하였고 더 큰 이미지도 가능함니다.
 
거기다 하드나 USB메모리, UBS하드 CD등의 다양한 매제에서 부팅이 가능하다는 점임니다
 
 
grub4dos 최신파일 다운 받는곳 ( http://download.gna.org/grub4dos/ )
 
위 사이트에서 Grub4dos 중 가장 최근날짜의 파일을 다운받습니다
 
여기가 설명 사이트 임니다
 
여기서 WIngrub 를 다운 받습니다
 
 
 
하드나 USB메모리 USB하드등에 grub4dos를 설치하여 멀티부팅되게 할수 있습니다
 
여기서는 간단하게 USB메모리에 설치하는법을 설명하겠으나 하드도 같습니다
 
 
다른강좌에 있는 grub.gho를 ghost32.exe 로 USB등에 복구하면 제가 만든 기본 Grub4dos로 복구되지만
 
여기서는 사용자 마음대로 설치하기 위한 설명임니다
 
grub4dos가 잘 설치가 안되거나 부팅이 안되면 우선 Mbr 초기화 하는 강좌대로 MBR를 초기화 하고 해보세요
 
USB 메모리 같은 경우는 시스템에 따라 호환이 안되서 부팅이 안되는경우가 있을수 있습니다
 
 
1. Grub Install
 

a. WINGRB0206.exe 실행해 wingrub를 인스톨함니다

b. 실행하면 Choose Drive 가 나오는데 여기에서 여러분의 USB를 선택하고 OK를 누르세요.

    Tools 중 Install Grub를 선택 함니다.
 

   boot from BS을 선택하고 옆에서 여러분의 USB 드라이브 문자를  선택 하시고

   아래에 Install 를 누르면 여러분의 USB는 GRUB 부팅이 됨니다

사진1. wingrub로 grub4dos Install 

 

참고로 USB 메모리는 MBR에 Install 하시면 문제가 생김니다. Grub4DOS에도 bootlace.com 으로 DOS에서 grub를 Install하는 화일이 있는데 이게 MBR에만 설치가 가능해 내장 하드는 상관 없는데, USB메모리등에 bootlace.com 를 이용해 MBR에 설치하고 USB로 부팅하면 USB가 부팅되다가 menu.lst를 내부하드에 찾는 문제가 생겨서 MBR를 초기화 해야하는 문제가 생김니다.

위 WIngrub를 이용하는 이유가 boot from BS나 boot from MBR를 선택해도 MBR이 아니라  BS(부트섹터)에 설치가 됨니다

그리고 wingrub이 bootlace.com이나 별도의 grubinst.exe나 grubinst_gui.exe 등보다 더 잘 USB에 설치됨니다

반드시 USB 저장장치에 grub를 설치하려면 MBR이 아닌 BS에 설치하세요.

Grub를 MBR이 아닌 BS에 설치하면 부팅되면서 menu.lst 를 찾는 2초간의 화면이 나오고 menu.lst를 로딩함니다

물론 내부하드에는 MBR에 설치해도 됨니다.

BS설치하면 BMGR등의 다른 MBR에 로딩되는 프로그램들을 같이 사용 할수 도 있습니다

 

c. 위와 같이 하면 USB에 grldr 와 mbr.old 화일과 grub 폴더가 생기는데 이건 삭제하시고

   다운받은 GRUB4dos 최신버젼 에서 grldr와 여러분의 menu.lst를 복사하면  최신 GRUB가 됨니다

   저렇게 하면 일단 GRUB로 부팅이 됨니다.  부팅이 되나 확인이 되면 이제 menu.lst 를 편집하면 됨니다

 

2. menu.lst

menu.lst 샘플

color black/cyan yellow/cyan                                    grub 배경색 설정
timeout 30                                                                30초를 기다리고
default 0                                                                 
0번을 자동으로 로딩으로 titile 처음이 0번부터 시작

title find and load NTLDR of Windows NT/2K/XP           부팅메뉴 제목쓰는곳 title 0번
fallback 1                                                                부팅이 실패하면 다음메뉴인 titl1 1번으로 부팅시도 사용안해도 됨
find --set-root /ntldr                                                 하드루트에서 ntldr(NT코드의 윈도우)찾기
chainloader /ntldr                                         부팅 가능하도록 지정된 파티션에서 NTLDR 읽어들이기 시작해 부팅을 시작한다
savedefault --wait=2                                     사용 안해도 됨

title find and load CMLDR of Windows NT/2K/XP          title 1번
find --set-root /cmldr
chainloader /cmldr
savedefault --wait=2

title Windows PE 1.X Booting (XP)       PE 1.x 대로 부팅할때 사용
find --set-root /SETUPLDR.BIN
chainloader /SETUPLDR.BIN

title Windows PE 2.0 Booting (Vista)    PE 2.0이나 비스타로 부팅 할때 사용
find --set-root /BOOTMGR
chainloader /BOOTMGR

title FDD IMage      FDD 이미지로 부팅
find --set-root /DOS/fdd.ima
map --mem /DOS/fdd.ima (fd0)
map (hd0) (hd1)           USB등으로 부팅 할때 USB가 첫번째 하드가 되는데 그걸 2번째 하드로 바꿈. 사용안해도 됨
map (hd1) (hd0)           USB로 부팅할때 하드가 2번째가 되는데 그걸 첫번째로 바꿈. 사용 안해도 됨                    
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

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

title commandline
savedefault --wait=2
commandline

title floppy (fd0)        플로피로 부팅
chainloader (fd0)+1
rootnoverify (fd0)
savedefault --wait=2

title back to dos
savedefault --wait=2
quit

title reboot              재부팅
savedefault --wait=2
reboot

title halt                 컴퓨터 끔
savedefault --wait=2
halt

 

2-1 True Image를 사용하시는 분을 위한 방법추가

  TI만을 이용하기 위해 질문하는 분이 있는데 우선  위에 방법대로 USB를 Grub로 부팅되게 만들고 아래 방법을 적용하세요

  아니면 http://blog.naver.com/songdg55/43217723  여기서 usb-songdg55.rar  이 파일을 다운받아 압축풀고 ghost32.exe 로 윈도우에서 USB 에 복구하면 USB가 Grub로 부팅됨니다.

 

a. trueimage iso 이미지 이용하기

 http://mfiles.naver.net/66bd53879cc1aa1c3353/data29/2007/10/19/241/isoemu109-songdg55.zip 첨부파일

 위 첨부파일인 isoemu109.zip 파일을 USB의 root에 압축을 풀어서 넣고 menu.lst 에 추가함니다

 (이 isoemul은 ISO 이미지를 불러오지만 아직까지는 리얼모드의 OS만을 불러옴니다 PE나 XP등은 불러오지 않습니다)

    menu.lst에 추가부분

    ---------
    title Trueimage ieldr
    find --set-root /ieldr
    chainloader /ieldr
    ---------

   USB의 isoemu.ini 를 편집해 isoemu true.iso 로 고치고 Trueimage 부팅화일 의 ISO 파일(이름 true.iso)을 적으면 됨니다

   참고로 Trueimage를 설치하면 부트위자드에서 ISO파일과 FDD 이미지 파일을 만들수 있습니다

 

b. TrueImage는 fdd 이미지도 만들수 있는데 가상의 FDD 프로그램을 이용해 Trueimage fdd 이미지를 만들고

   menu.lst에 단순희 아래부분을 추가하면 됨니다

   title TrueImage FDD IMage      
   find --set-root /truefdd.ima
   map --mem /truefdd.ima (fd0)
   map --hook
   chainloader (fd0)+1
   rootnoverify (fd0)

  위의 USB.gho 를 이용한 분은 미리 이 menu.lst 부분이 되어 있습니다

 

c. 더 간단한 TrueImage 방법은 DOS로 실행하고 DOS용의 trueimage.exe를 실행하는검니다

   이건 Hiren;s bootcd 안에 dos용 trueimage.exe 를 이용하거나 dos용을 만들면 됨니다

   DOS용은 단일의 실행화일로 되어 있어 그냥 실행만 하면 되는데 현재는 하이렌에는 9.0만 되어 있고 제가 만들어 본거는 10버젼까지만 됨니다.

   DOS용 TrueImage는  Safe 버젼을 이용해 만들어야 하는데 11버젼은 아직 되지가 안네요. 11버젼은 FULL 버젼만 만들어지게 되어 있네요.

 

3. 다른 방법으로 Grub4dos 사용하기

혹 USB가 호환이 안되서 BS(부트섹터)에 Grub가 설치가 안되는 경우가 있습니다

이때 USB를 초기화 하고 BootFlashDos 나 HP USB TOOL등으로 DOS시스템은 부팅이 가능한 경우가 있습니다

이럴때 아래 방법으로 하면 Grub를 사용할수 있습니다

 

a. grub4dos 에는 MBR나 BS에 로딩되는 grldr 도 있지만 DOS등에서 사용하는 GRUB.exe 도 있습니다

     DOS로 부팅하고 grub.exe 를 실행해서 XP등 의 윈도우로 들어갈수 도 있고요,

     config.sys 에

     INSTALL=C:\GRUB.EXE 

     위와 같이 로딩해서 선택할수도 있습니다

 

b. NT나 XP 2000등에서 boot.in에 아래와 같이 추가해 NT부트로더하에서 사용할수도 있습니다

boot.ini

[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows XP Professional" /noexecute=alwaysoff /fastdetect
C:\="Microsoft Windows" 
C:\grldr="Start GRUB4DOS"  추가부분

 

위의 것은 Grub를 하드나 USB 에 적용한거고 아래 사진은 CD에 적용한검니다

이것 좀 복잡해서 따로 강좌는 진행하지 않고 Grub로도 CD멀티부팅이 가능하다는것만을 보여 드리기 위한검니다

사진2. Easyboot와 Grub를 이용한 멀티부팅 CD

 

사진2. 는 4번을 제외하고 Easyboot 라는 프로그램을 이용한 멀티부팅CD임니다. 1번을누르면 PE 1.X (바트PE등) 이 부팅되고 2번을 누르면 PE 2.0 이 부팅됨니다. 3번은 DOS로 부팅되고요, 5번은 하드로 부팅, 6번은 재부팅됨니다. easyboot는 만들기는 편한데 정식판은 상용이고, FDD 부팅이미지가 2.88M 4.2M등 정해져 있습니다.

그래서 4번은 Grub를 이용해 사용자 FDD 부팅 이미지를 사용했습니다. 아래 사진 3은 4번을 선택 할때 Grub로 부팅 하는 메뉴임니다.

easyboot를 사용하지 않고도 GRUB만으로도 다 가능한데 아직 grub가 부팅 CD만들때 약간의 문제점이 있어 그냥 보여드리기 위해 2가지를 사용해서 만들었습니다.

사진3. 위 사진2의 4번을 누르면 grub 멀티 부팅 메뉴나옴


## 윈도우PE 추가하기 ##

1. PE시디를 마운트 시키거나 CD로 굽는다.
2. 마운트 or CD에서 i386, Programs 폴드를 부팅하고자 하는 HDD(저의 경우 D:, NTFS형식)에 복사한 후 i386폴드명을 minint로 바꾼다.
3. minint폴드 안의 SETUPLDR.BIN와 TXTSETUP.SIF을 root로 복사한다.
4. 기존 XP(C:)에서 ntdetect.com, ntldr, boot.ini을 D: root에 복사한다.
5. GRUB4DOS 파일(인터넷 쉽게 구해짐) grldr, default, menu.lst을 D: root에 복사한다.
6. MBRWIZ.EXE, MBRWIZ.CMD 을 실행하여 D: HDD을 활성화 한다. (비활성시 DISK ERROR남, 기타 파티션 관리툴로도 가능)
7. boot.ini 의 숨김, 읽기전용 속성을 풀고 다음과 같이 편집한다.
[boot loader]
timeout=0
default=c:grldr
[operating systems]
c:grldr="GRUB"

8. menu.lst의 내용을 다음과 같이 편집한다.
color black/cyan yellow/cyan
#splashimage=/splash.xpm
timeout 30
default 0

title 1. Windows XPE (RAM PE, Fast, Limit Function)
find --set-root /ramldr.bin
chainloader /ramldr.bin

title 2. Windows XPE (HDD PE, Slow, Full Function)
find --set-root /setupldr.bin
chainloader /setupldr.bin

title 3. DOS Image Booting (Ghost, NTFSDOS, PMagic)
find --set-root /bootdos.ima
map --mem /bootdos.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 4. Rebooting
savedefault --wait=2
reboot

title 5. PC Power Off
savedefault --wait=2
halt

8. 이렇게 한후 컴퓨터 부팅 초기화면에서 Boot Menu (F11, F12, 기종마다 다름)에서 작업한 HDD로 부팅한다.
9. GRUB4DOS 부팅로더 창이 나오면 2번 메뉴로 부팅을 한다.

이상과 같은 방법으로 현재 잘 사용하고 있습니다. 하지만 USB및 USB-HDD에서는 XP화면(화산?) 부근에서 멈춤니다. 하지만 그냥 HDD에서는 잘작동합니다. 또한 HDD D:는 NTFS파일 포맷을 해서 그런지 minint폴드 안의 SETUPLDR.BIN, TXTSETUP.SIF을 root로 복사해야 찾는 것 같습니다. 그냥 FAT32에서는 복사하지 않고 menu.lst 경로를 find --set-root /minint/setupldr.bin로 해도 부팅됩니다.


Trackback 0 Comment 1
  1. Favicon of http://dakuo.tistory.com/ dakuo 2010.02.01 08:39 address edit & del reply

    음 여기서 보고 USB에 리눅스와 win.pe 멀티부팅을 했는데요 win pe 부팅하면
    화산에서 멈추던데 이거 어떻게 못고치나요?