다음 이전 차례

5. 기본적인 아이디어들

기본적인 생각은 다음과 같다. ; PC는 tftp 프로토콜을 경유하여 커널과 초기 IP 주소로서 0.0.0.0을 사용한 bootp 프로토콜에 의한 부트서버로부터 IP주소를 얻을 것이다.

(라우터를 경유하여)교차된 세그먼트로 부팅 하는 것은 쉬운 문제가 아니다. 그래서, 서버와 디스크 없는 리눅스 박스를 같은 랜 세그먼트에 두거나 서버의 주소와 관계된 당신의 라우터에서 UDP Helper의 주소를 설정하라. 더자세한 정보에 관해서는 라우터의 매뉴얼을 참고하기 바란다.

아래에는 이 과정들을 열거한 것이다.

5.1 PC를 설치하기

nfs 패키지 ( 유명한 리눅스의 미러사이트의 /pub/Linux/system/Linux-boot디렉토리에서 찾을 수 있는 )를 얻어라. 여기에서 즉시 사용할 수 있는 wd8013 카드에 관한 booteprom에 관한 이미지가 포함되어있다.

PC를 준비하는데는 여러 가지 방법이 있다. ;

만약 당신이 마지막 옵션을 선택한다면, dd 명령을 통하여 플로피에 이미지를 써넣어야만 한 다.

이 이미지들은 bootp와 tftp 클라이언트를 포함하고 있다. 당신은 nfs-root옵션을 포함한 리눅스 커널또한 준비할 필요가 있다.

당신은 블록 디바이스 (플로피 또는 하드디스크)를 설정할 필요는 없으나, tcp/ip와 wd-ethernet 카드와 nfs 파일시스템을 선택하여야한다. 그리고 일상적으로 커널을 재 컴파일 하라.

5.2 서버에서 bootpd를 설치하기

만약당신이 bootpd-2.4.tar.gz (당신의 주요 리눅스 미러사이트인 /pub/Linux/system/Network/boot.net 디렉토리)패키지를 발견한다면, 패키지를 얻고, 컴파일한후 인스톨하라. 만약 당신의 유닉스 박스가 슬랙웨어 리눅스 배포판이라면 bootpd를 포함하고 있으므로 이 과정을 생략 하라. 데몬은 다음 명령에 의해서 즉시 실행된다.


        bootpd -s

또는 inetd를 사용하여, 이런 경우에는 다음을 편집해야한다.

5.3 서버에서 bootpd를 설정하기

무엇보다도, bootpd는 /etc 디렉토리에서 bootptab이라 불리는 설정 파일을 가지고 있다. 당신은 이 파일에서 게이트웨이, 도메인 네임 서버, 그리고 당신의 디스크 없는 머신의 이더넷 주소 등을 수정하여야만 한다. 다음은 /etc/bootptab의 한 예이다.


global.prof:\
        :sm=255.255.255.0:\
        :ds=192.168.1.5:\
        :gw=192.168.1.19:\
        :ht=ethernet:\
        :bf=linux:
machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:

global.conf는 일반적인 호스트에 관한 내용들을 가지고있는 파일이고 여기에서,

이것이 끝난 후에, 각 머신들은 다음의 라인을 가지고 있어야 한다. ;

5.4 tftp를 이해하기

TFTP (Trivial File Transfer Protocol) 은 ftp와 같은 파일 전송 프로토콜이지만, EPROM에 있어서 코딩을 하는데 훨씬 간단하다. TFTP는 다음의 두 가지 방법에 의해 사용될 수 있다.

거의 모든 유닉스의 구현에 있어서 tftp 서버를 포함하고, 아마 스스로 인스톨할 일은 없을 것이다.

5.5 원격 서버에서 최소의 리눅스 설정을 설치하기

이것은 슬랙웨어 배포 본에서 a, ap, n과 x의 패키지에 포함되어있다. 모두 인스톨하는 것은 좋다. ; 그러나 위의 패키지들은 디스크 없는 X 터미널로서의 목적은 충분하다. 인스톨에 관해서, 당신은 리눅스 시스템을 이용해야한다. 원격 머신의 디스크 공간을 확인하고 그것은 읽기-쓰기로 export 하라. 리눅스 박스의 파일시스템에서 어떤 (/mnt)같은 export된 디렉토리를 마운트한다. 리눅스 설치를 시작하고 /로부터 /mnt로의 설치에서 루트 옵션을 변경하라. 그후 일방적으로 패키지를 설치하라. 만약 당신이 하나의 디스크 없는 리눅스 박스만을 실행하기를 원한다면, 바꿀 필요가 아무 것도 없다. 다른 한편으로, 만약 당신이 하나의 디스크 없는 머신 이상을 사용하기를 원한다면, 한 머신에 관한 개인적인 파일과 디렉토리만을 포함하므로 위의 설치는 작동하지 않을 것이다. 문제는 /usr (개인적인 데이터를 포함하지 않은 부분)을 옮기고 각각의 디스크 없는 머신의 디렉토리를 설정하므로 피할 수 없게된다. 예를 들어, 만약 /export/linux/machine/ 이 /mnt에 마운트되어 있다면, 초기의 설치를 한 후에 디렉토리 구조가 다음과 같을 것이다.


/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/machine1/usr

설정을 변경한 후에는 다음과 같을 것이다.


/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/usr

지금 다른 머신에 관한 서브디렉토리를 만들라. 지금, 당신의 디스크 없는 머신이 machine1, machine2, machine3등이라고 가정한다. 그러면 당신의 다른 디렉토리를 설정할 때에 다음의 bash 스크립트를 사용할 수 있다.


        
        cd /export/linux
        for x in machine2 machine3 ; do
                mkdir $x; cd $x
                (cd ../machine1; tar cf - *) | tar xvf -
        done

그러면 아래의/export들은

아래에서

아래의 형식은 SunOS 4.1.3의 exports의 파일 규칙을 따를 것이다.


        
# This file is /etc/export
# for remote linux X terminals by Buci
# this line is only once
/export/root/usr             -access=linuxnet
# these lines once for every host
/export/root/machine1       rw=machine1,root=machine1
/export/root/machine2       rw=machine2,root=machine2
/export/root/machine3       rw=machine3,root=machine3

exportfs -a 하는 것을 잊지 말아라.

5.6 tftp 서버를 설정하기

지금 tftp 서버를 설정할 때이다. 만약 당신이 안전한 tftp를 필요로 하지 않는다면 당신의 클라이언트에 관해 모든 것이 간단하여 /export 디렉토리로부터 부팅할수 있을 것이다.

만약, 안전한 ftp를 사용한다면 (단일의 실제 커널과 다른 머신들과 심볼릭 링크된것)아래 /export/linux 디렉토리 구조를 만들것이다. 또는, /export 디렉토리를 안전한 tftpd의 부트 디렉토리 가 되게 하여라. 그리고 유사하게, 다른것들을 위한 단위의 커널과 심볼릭 링크들의 원래 디렉토리 구조를 필요로하게된다. 당신의 다음을 타이핑 함으로서 이 과정을 수행할 수 있다.


      mkdir -p /tftpboot/export/linux/machine1
      cd /tftpboot/export/linux/machine1
      cp /export/linux/machine1/<name of the kernel> . 

그후 다음을 타이핑하라.


      mkdir -p /tftpboot/export/linux/machine2
      cd ../machine2 
      ln -s ../machine2/<name of the kernel> 

5.7 마지막 작업

마지막으로, 당신은 다음을 수정하여야 하고


   /sbin/mount nfs_server:/export/linux/usr /usr

as the first line of

   /export/linux/<machinex>/etc/rc.d/rc.S

여기에서 <machinex> 는 머신1, 머신2, 머신3등을 나타낸다.


다음 이전 차례