· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Multiboot-with-GRUB

Multiboot with GRUB Mini-HOWTO

Multiboot with GRUB Mini-HOWTO

Ivan Kanis,

황정언

v1.0, 2001년 1월 15일

v1.0, 2001년 11월 1일

이 문서는 GRUB를 사용하여 Windows 98, Windows 2000, DOS 그리고 Linux를 설치하는 방법을 설명한다.


1. Why ?

필자는 컴퓨터에 설치된 모든 운영체제의 부팅을 하나의 멀티부팅 메뉴에서 부팅하기를 원했다. 필자는 DOS로 부팅하기 위해 NT 멀티부팅 메뉴에서 윈도우9x 메뉴를 거쳐야 했다. 그러나 모든 운영체제를 한 메뉴를 통해 부팅하기를 원했다..

이것은 하나의 도전이었다. 문제는 마이크로소프트의 운영체제들이 프라이머리 파티션이어야 부팅할 수 있다는 것이다. 이 문제는 GRUB로 해결할 수 있다. GRUB는 프라이머리 파티션을 감출 수 있다. 그래서 윈도우를 설치할 수 있는 3개의 파티션을 사용할 수 있게 된다. GRUB는 윈도우가 프라이머리 파티션을 인식하지 못하게 다른 두 개의 파티션을 감출 수 있다. 이것은 DOS, Win9x 그리고 윈도우 2000 간의 데이타 공유를 위한 다른 파티션이 있어야 한다는 것을 말합니다. 네 번째 파티션은 확장 파티션으로 사용한다.

또한 시스템이 한 개의 멀티부팅 메뉴를 지원해 주기를 원하는데, GRUB는 그런 멋진 메뉴를 제공한다.

GRUB의 또 다른 멋진 특징은 reiserfs를 지원한다는 것이다. 그래서 필자는 리눅스 파티션의 하나의 독립된 /boot 파일 디렉토리를 유지할 필요가 없었다.


2. 설치 절차

2.1. 부트 플로피 디스크 준비하기

3장의 플로피 디스켓이 필요하다. 하나는 도스부팅 디스켓으로 만들어라. fdisk.exe와 sys.exe를 이 디스켓에 복사하라.

FORMAT /S A:
COPY FDISK.EXE A:
COPY SYS.EXE A:

두 번째 디스켓은 윈도우98 복구디스크로 사용하라. 세 번째 디스켓은 간한하게 GRUB를 위해 쓸 것이다.


2.2. 리눅스 설치하기

당신이 좋아하는 리눅스 배포판을 설치하라. 하드디스크를 파티션하기 위해 fdisk를 사용해야 할 것이다. 먼저 설치할 각각의 운영체제들이 차지하게 될 디스크 공간을 계산하라.

이것은 필자의 하드디스크 파티션 테이블 정보이다:

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1         6     48163+  16  Hidden FAT16
/dev/hda2             7        19    104422+  16  Hidden FAT16
/dev/hda3            20       593   4610655   1b  Hidden Win95 FAT32
/dev/hda4           594      3737  25254180    5  Extended
/dev/hda5           594       848   2048256    6  FAT16
/dev/hda6           849      2123  10241406    7  HPFS/NTFS
/dev/hda7          2124      2140    136521   82  Linux swap
/dev/hda8          2141      2523   3076416   83  Linux

첫 번째 파티션은 윈도우2000을 부팅하기 위한 것이다. 그렇게 하려면 10MB 정도의 하드디스크 공간이 필요할 것이다. 이 파티션은 NT를 부팅하는 데 필요한 boot.ini, ntldr, ntdetect.com 등과 같은 파일들을 포함할 것이다. NT는 필자의 경우 6번 파티션에 위치시킬 것이다. 이 파티션은 Hidden FAT16 파티션 형식이다.

2번 파티션은 도스 부팅하기 위한 파티션이다. 필자는 100MB면 충분하다고 생각했다. 이 파티션도 Hidden FAT16 형식이다.

3번 파티션은 윈도우9x를 위한 파티션이다. 필자는 이 파티션을 5GB로 잡고 성능을 감안해 FAT32로 설정했다.

이번에는 나머지 하드디스크를 확장 파티션으로 생성하라. 그러면 이 파티션은 fdisk 상에서 4번째 파티션으로 나타날 것이다.

2GB로 파티션으로 생성하라. 이 파티션은 모든 운영체제 간의 데이타 공유를 위해 쓸 것이다. 위의 파티션 작업은 모두 하드디스크 8기가 내에서 하는 작업이라는 것을 염두에 둬라. 이 것은 도스에 의한 제한 이다.

다음으로 윈2000 파티션을 생성하라. 필자는 부은 돼지 같은 윈도우의 부양을 위해 이 파티션을 10기가로 잡았다. 그리고 속도를 위해 이 파티션은 HPFS/NTFS 형식으로 설정했다.

다음으로 스왑 파티션과 리눅스 파티션을 추가해라. /boot를 위한 파티션을 따로 생성하지 말라. GRUB에서는 루트 파티션에 /boot를 갖는 것이 좋다.

리눅스를 설치하고 FAT16 형식의 파티션들을 포맷하라:

mkdosfs /dev/hda1
mkdosfs /dev/hda2
mkdosfs /dev/hda6


2.3. GRUB 설치하기

최신 버전의 GRUB인지 확인하라. 필자는 0.5.96.1 버전을 사용하고 있다. 이 버전은 필자가 설치했던 당시 최신 배포판에 패키징된 것이다. 이 것은 필자에게 많은 비탄을 가져다 줬다. GRUB는 http://www.fsf.org에서 최신 버전을 다운로드할 수 있다.

이제 당신은 플로피에 GRUB를 설치하길 원할 것이다. 당신은 이 것을 윈2000를 덮어 쓸 수도 있기 때문에 아직 하드디스크에는 설치하고 싶지 않을 것이다.

grub-install '(fd0)'

아래와 같이 GRUB를 위한 menu.lst를 생성하다. 이 파일은 /boot/grub에서 살고 있다.?

#
# 부트 메뉴 설정 예제 파일
#

# 60초 후 자동으로 부팅시키기
timeout 60

# 디폴트 값에 의해 두 번째 부트 엔트리?
# By default, boot the second entry.
default 1

# 첫 번째 엔트리로 후퇴
fallback 0

title Windows 2000 
unhide (hd0,0)
hide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,0)
chainloader +1
makeactive

# 리눅스 부팅을 위한 부분
title  Linux
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261

title Windows 98
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
rootnoverify (hd0,2)
chainloader +1
makeactive

title DOS 6.22
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,1)
chainloader +1
makeactive

# 싱글유저 모드로 리눅스 부팅하기 위한 부분
# For booting Linux
title  Linux (single user)
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261 single

title Partition 2 (floppy)
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
chainloader (fd0)+1

title Partition 3 (floppy)
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
chainloader (fd0)+1

플로피 디스크로 리눅스를 부팅할 수 있는지 확인하라. 문제가 있다면 GRUB 명령어 라인에서 다운될 수도 있다. 그러면 무엇이 문제인지 분석해 보라. GRUB는 문서화가 잘 되어있다. 그러니 어떤 문제가 있다면 그 문서를 보기 바란다.


2.4. 윈2000 설치하기:

필자는 윈2000을 설치하기 전에 첫 번째 파티션으로 초기화 했다. 도스 부팅 디스크를 삽입하고 시스템을 리부팅하라. 도스 프롬프트가 나타나면 아래와 같이 하라:

FDISK /MBR
SYS C:

이제는 윈2000을 설치하라. 어떤 점에 이르면 윈2000은 당신에게 윈2000을 설치할 파티션을 선택하라고 응답할 것이다. fdisk로 생성한 파티션이 손상이나 포맷되지 않은 파티션으로 나타날 것이다. 계속 진행하여 그것을 선택하라.

윈2000 멀티부팅 메뉴를 숨기기 위해 C: 드라이브에 있는 boot.ini 파일을 편집하라. 그리고 30부터 0사이의 타임아웃 시간을 변경하라.

[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(1)partition(1)\WINNT
[operating systems]
...


2.5. 도스 설치

GRUB 디스크를 삽입하라. 멀티부팅 메뉴가 보이면 도스 부트 디스크를 삽입하라. 메뉴의 두 번째 파티션(플로피)을 선택하라. 엔터키. 이것은 플로피 디스크로 부팅하고 1번 3번 파티션을 숨길 것이다.

FDISK를 실행하여 C: 드라이브가 2번 파티션인지 확인하라. 다음으로 도스 설치:

SYS C: 


2.6. 윈98 설치하기

GRUB 디스크를 삽입하라. 메뉴가 보일 때 윈98 복구 디스크를 삽입하라. 메뉴에서 3번 파티션(플로피)을 선택하라. 엔터키. 이 것은 이 플로피 디스크로 부팅하고 1번 2번 파티션을 숨길 것이다.

FDISK를 실행하여 C: 드라이브가 3번 파티션인지 확인하라. 다음은 윈98 설치:

SYS C: 


2.7. 마무리

GRUB로부터 모든 것이 작동하는지 테스트:

GRUB 플로피 디스크로 4개의 운영체제를 모두 부팅할 수 있을 ?痼甄?.

모든 것이 잘 작동하면 GRUB를 하드디스크에 설치하라. 리눅스에서 입력:

grub-install /dev/hda

당신은 이제 GRUB 메뉴에서 4개의 운영체제를 모두 부팅할 수 있는 것이다. ENJOY!


3. 참고자료

필자는 시스템을 셋팅하면서 유용한 링크들을 찾았다.


4. 피드백

필자는 이 문서를 읽은 당신이 경험(좋은 경험이든 나쁜 경험이든)한 것에 대해 듣기를 좋아한다. 다른 OS를 추가하기 위한 어떤 지시사항이 있다면 그것을 추가할 수 있게 에게 보내주기 바란다.


ID
Password
Join
Promptness is its own reward, if one lives by the clock instead of the sword.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0140 sec