· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Linux+NT-Loader

<!doctype linuxdoc system>

<!-- 

번역 : 김지인   <jiinny@netian.com> 1998년 8월 9일
sgml 소스 작업 : 엄기성 <jurist@sarang.net> 1998년 9월 30일 마침
test : sgml-tools 1.0.7 at Debian 2.0 (hamm)

 -->

<article>
<title>NT OS Loader + Linux mini-HOWTO</title>
<author>Bernd Reichert, <reichert@dial.eunet.ch></author>
<date>v1.11, 97년 9월 2일
<abstract>
이 문서는 리눅스를 기동하기 위해 윈도우즈 NT의 부트 로더(boot loader)를
사용하는 방법을 설명하고 있다. 테스트는 윈도우즈 NT 4.0 워크스테이션과 리눅스
2.0에서 행해졌다.
</abstract>

<sect>NT OS Loader는 어떻게 작동하는가
<p>
NT OS Loader는 다른 운영체계 시스템의 부트 섹터를 파일 처럼 다루려고
하며, 이러한 파일들 즉, 부트섹터를 읽어서 선택된 운영체계를 기동한다. 이것은
다른 모드의 윈도우즈 NT(역자주: VGA 모드와 같은 모드)나 기타 다른 운영체계나
마찬가지이다.
<sect>윈도우즈 NT와 리눅스를 같은 시스템에 인스톨하는 방법에 관한 팁
<sect1>윈도우즈 NT의 인스톨
<p>
윈도우즈 NT를 먼저 설치하라. 당신이 윈도우즈 NT 파티션을 NTFS 로 사용하고
싶다면 현재에 사용되는 버전의 리눅스에서는 NTFS 파티션을 인식할 수 없다는
사실을 인지해야 한다. NTFS 파티션을 읽을 수 있는 알파버전의 드라이버가
<tt><url url="http://www.informatic.hu-berlin.de/˜loewis/ntfs"></tt>에 있기는
하다. 데이터의 교환을 위해서는 도스 FAT 파티션을 따로 만들어 두거나,
도스포맷된 플로피 디스크를 사용해야 할 것이다.

<sect1>파티션 하기
<p>
다른 미니 하우투에서는 윈도우즈 NT의 "디스크 관리자"로 리눅스의 스왑
파티션이나 루트 파티션을 만들지 말라고 조언한다. 나역시도 그냥 빈공간으로
남겨두었다가 나중에 리눅스의 fdisk를 사용하여 리눅스 파티션을 만들 것을
권한다.

<sect1>리눅스 인스톨
<p>
이제 플로키 디스크로 리눅스를 부팅해서 리눅스 스왑 파티션과 루트 파티션을
만들자. 아마도 리눅스의 fdisk는 NTFS 파티션을 OS/2의 HPFS 파티션으로 여길
것이다. 이것은 정상이다. 다시 시스템을 플로피 디스크로 부팅 시킨 후 원하는
리눅스(역자주: 원하는 배포본이나 자신이 만든)를 인스톨하라.

<sect1>Lilo
<p>
인스톨을 하다가 Lilo를 선택해야하는 상황이 오면, 리눅스 루트 파티션을 부트
디바이스로 설정하라. 이미 윈도우즈 NT가 마스터 부트섹터(MBR)를 사용하고 있기
때문에 그렇게 해야한다. 이 것은 <tt>/etc/lilo.conf</tt> 파일에 루트 목록(root
entry)와 부트 목록(boot entry)가  똑같게 설정되는 것을 의미한다. 당신이 IDE
타입의 하드 디스크를 가지고 있으며, 두번째 파티션에 리눅스 파티션을 잡았다면,
<tt>/etc/lilo.conf</tt>에 있는 부트 목록이 다음과 같이 설정되어 있을 것이다.

<tscreen><verb>
boot=/dev/hda2
</verb></tscreen>

또, 두개의 하드 디스크를 가지고 있고 리눅스가 두번째 하드 디스크의 첫번째
파티션에 있다면, <tt>/etc/lilo.conf</tt>에 있는 부트목록은 다음과 같이
설정되어 있을 것이다.

<tscreen><verb>
boot=/dev/hdb1
</verb></tscreen>

커널 설정을 하도록 lilo 를 실행시켜라. 확실하지 않다면 먼저 플로피 디스크를
가지고서 부팅을 해보아, 커널을 체크해 본다.

<p>
만약 윈도우즈 NT가 부팅되지 않는다면 뭔가 문제가 있는 것이다. 최근에 만든 복구
디스크가 있기를 바랄뿐이다.

<sect>Bootpart
<p>
G. Vollant 가 만든 Bootpart라는 윈도우즈 NT 프로그램이 있는데, 다음에 올
두가지 일을 해주는 프로그램이다. 이 프로그램이 어떤 일을 하는 지를 알고 싶으면
5번, 6번항에 기술된 과정을 활용하라. 

Bootpart는 <tt><url url="http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm"></tt>에서 구할 수 있다.

<sect>리눅스 쪽에서의 작업
<p>
윈도우즈 NT에서의 작업이 완전할 때까지는 플로피 디스크로 리눅스를 부팅해야
한다.

<p>
이제 리눅스의 부트 파티션에서 부트 섹터를 복사해야 한다. 리눅스 파티션이
/dev/hda2라고 가정하면, 다음과 같이 dd 명령어를 쓴다.

<tscreen><verb>
# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
</verb></tscreen>

bootsect.lnx 파일이 512 바이트를 넘을 경우에는 무언가 잘못 된것이다.

윈도우즈 NT 파티션을 NTFS로 잡았다면, bootsect.lnx 을 도스 포맷된 플로피
디스크에 폭사한다.

다음과 같은 명령어들을 쓸 수 있을 것이다

<tscreen><verb>
# mcopy /bootsect.lnx a:
</verb></tscreen>

혹은

<tscreen><verb>
# mount -t msdos /dev/fd0 /mnt
# copy /bootsect.lnx /mnt
# umount /mnt
</verb></tscreen>


<sect>원도우즈 NT 쪽에서의 작업
<p>
플로피 디스크에 있는 파일을 <tt>C:\bootsect.lnx</tt> 로 복사한다. 복사하는 방법은
가르쳐주지 않겠다. (역자주: 이 부분에선 웃어주어야 합니다.)

lilo.conf 파일이 리눅스에서 하는 일을 윈도우즈 NT에서는 C:\boot.ini가
맡아서 한다. <tt>boot.ini</tt> 파일의 시스템 파일, 읽기만 하는 파일 속성을 다음의
방법으로 제거한다.

<tscreen><verb>
C:\attrib -s -r c:\boot.ini 
</verb></tscreen>

이제 노트패드와 같은 편집기로 boot.ini 파일을 변경한다. 예를들면 다음과 같이
할 수 있다.

<tscreen><verb>
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="한글 윈도우즈 NT 워크 ... 
multi(0)disk(0)rdisk(0)partition(1)\WINNT="한글 윈도우즈 NT 워크 ...
C:\BOOTSECT.LNX="Linux"
</verb></tscreen>

위의 예에선 마지막 라인만을 추가 했다. boot.ini 파일을 저장하고 속성을 다음과
같이 복구해 준다.

<tscreen><verb>
C:\attrib +s +r c:\boot.ini 
</verb></tscreen>

이제 시스템을 셧다운 시키고, 다시 전원을 켜면 다음과 같은 메시지를 볼 수 있을
것이다.

<tscreen><verb>
  OS Loader V4.00
 
  Please select the operating system to start:

  Windows NT Workstation Version 4.0
  Windows NT Workstation Version 4.0 [VGA mode]
  Linux

리눅스를 선택하면 다음과 화면을 볼 수 있다.

  LILO loading zImage ....
</verb></tscreen>


<sect>다시 반복
<p>
리눅스 파티션의 부트섹터가 변경되면 매번 새로운 bootsect.lnx 파일을
<tt>C:\bootsect.lnx</tt>로 옮겨줘야 한다. 예를들어 새로운 커널과 lilo를
인스톨했다던지 할때마다 옮겨줘야 한다는 뜻이다. 새로운 실험적인 커널을
시스템에 설치한다던지 알때 그리 좋은 환경이 아님을 알 것이다.

<sect>문제 해결
<p>
원하는대로 작동하지 않을 경우에는 플로피 디스크로 부팅할 수 있는지부터
체크해봐라. <tt>/dev/hdb1</tt> 리눅스 파티션이 있으면, <tt>/etc/lilo.conf</tt> 파일은 다음과
같은 설정한다.

<tscreen><verb>
root=/dev/hdb1
boot=/dev/fd0
</verb></tscreen>

플로크 디스크를 드라이브에 넣고 lilo를 실행시킨다. 이제 플로피 디스크로 부팅을
시도한다. <tt>/dev/hdb1</tt>에 있는 리눅스가 실행되지 않는다면, NT OS Loader도 역시 실행 시키는데 실패할 것이다.<tt>"01 01 01 01..."</tt> 화면에 가득히 나오면 루트 디스크를 인식하지 못하는 것이다. 그러면 롬바이오스가 가지고 있는 모든 디스크를 인식하고 있는지 체크해봐라.

<p>
플로피 디스크가 리눅스 파티션을 부팅시킨다면, NT OS loader 가 인식할 수 있도록
하기 위해서 부트 섹터를 다음처럼 복사해 놓는다.

<tscreen><verb>
# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1
</verb></tscreen>

<p>
이 디스켓은 윈도우즈 NT 인스톨이 깨어졌을 경우 복구 디스켓으로 사용할 수
있도록 잘 보관해둔다.

<sect>참고 문헌
<p>
<itemize>
  <item>The Linux+WindowsNT mini-HOWTO
  <item>The FAQ for FreeBSD 2.X
</itemize>

<sect>감사의 글
<p>
<itemize>
  <item>첫번째 디스크가 아닌 다른 디스크로 작업할 때의 팁을 가르쳐준데 대해 Xiaoming Yi <z3c20@ttacs.ttu.edu>에게 고마움을 표한다.
  <item>플로피 디스크를 사용하는 트릭을 가르쳐준 Frank Dennler <Frank.Dennler@zkb.ch>에게도 역시 고마움을 표한다.
</itemize>

<sect>Feedback
<p>
어떠한 문의사항이나 충고도 환영한다.
</article>




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:30
Processing time 0.0083 sec