LAN에 연결되어 있다면, 네트워크를 통해 TFTP를 사용해서 다른 컴퓨터에서 부팅할 수도 있습니다. 다른 컴퓨터에서 설치 시스템을 부팅하려고 한다면, 부팅 파일을 특정 위치에 복사해 놓고, 해당 컴퓨터의 부팅을 지원하도록 설정해 놓아야 합니다.
TFTP 서버를 설정해야 합니다. 그리고 많은 컴퓨터에서 DHCP 서버를 설정해야 합니다.
DHCP는 (Dynamic Host Configuration Protocol) 더 유연하며, BOOTP와 호환되는 확장 기능입니다. 일부 시스템은 DHCP를 이용해야만 설정할 수 있습니다.
Trivial File Transfer Protocol은 (TFTP) 부팅 이미지를 클라이언트에게 넘겨줄 때 사용합니다. 이론상 이 프로토콜을 사용한다면 어떤 플랫폼의 어떤 서버라도 사용할 수 있습니다. 여기서는 SunOS 4.x, SunOS 5.x (Solaris), 그리고 GNU/Linux에서 사용하는 명령을 예로 듭니다.
자유 소프트웨어 DHCP 서버의 하나로 ISC dhcpd가 있습니다. 데비안 GNU/리눅스에서는 dhcp3-server
패키지를 권장합니다. 다음은 간단한 설정 파일 예제입니다 (/etc/dhcp3/dhcpd.conf
파일을 보십시오):
option domain-name "example.com"; option domain-name-servers ns1.example.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host clientname { filename "/tftpboot/tftpboot.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
이 예제에서는, DHCP 서버, TFTP 서버, 네트워크 게이트웨이 역할을 모두 하는 servername
이라는 서버가 있다고 가정합니다. domain-name 옵션도 바꾸고, 서버 이름과 클라이언트 하드웨어 주소도 바꿔야 합니다. filename
옵션은 TFTP로 가져오려는 파일의 이름입니다.
dhcpd 설정 파일을 편집한 다음에, /etc/init.d/dhcp3-server restart
명령으로 dhcpd를 다시 시작하십시오.
TFTP 서버를 준비하려면, 먼저 tftpd 서버를 사용도록 해야 합니다. 보통 다음과 같은 줄을 /etc/inetd.conf
에 넣으면 됩니다:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
데비안 패키지의 경우에는 설치만 하면 기본적으로 이런 설정이 들어갑니다.
전통적으로 부팅 이미지를 저장하는 위치로 TFTP 서버는 /tftpboot
디렉토리를 사용합니다. 하지만, 데비안 GNU/리눅스 패키지는 Filesystem Hierarchy Standard에 맞추기 위해 다른 디렉토리를 사용합니다. 예를 들어, tftpd-hpa
는 기본값으로 /var/lib/tftpboot
를 사용합니다. 여기서 설명하는 설정 파일 예제에서는 이 점을 고려해서 적용하십시오.
/etc/inetd.conf
파일을 보고 in.tftpd의 인자로 사용하는 디렉토리를 기억해 두십시오[2]. 아래에서 이 디렉토리 이름이 필요합니다. /etc/inetd.conf
파일을 바꿨다면, 바꿨다는 사실을 inetd 프로세스에 알려야 합니다. 데비안 컴퓨터에서는 /etc/init.d/inetd reload
명령을 실행하고, 다른 곳에서는 inetd의 프로세스 ID를 찾아서 kill -HUP
명령을 실행합니다. inetd-pid
데비안을 SGI 컴퓨터에 설치하려 하고, TFTP 서버가 리눅스 2.4로 동작하는 GNU/리눅스인 경우, 서버에서 다음을 설정해야 합니다:
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
이 명령은 Path MTU discovery 기능을 끕니다. 이 기능을 끄지 하지 않으면 SGI의 PROM이 커널을 다운로드하지 못합니다. 또 32767보다 높지 않은 포트에서 TFTP 패킷을 보내도록 만드십시오. 그렇지 않으면 첫번째 패킷을 받은 다음에 멈춰버립니다. 이 문제는 PROM의 버그를 리눅스 2.4.x에서 들춰내는 것입니다. 다음 명령으로 이런 현상을 피할 수 있습니다:
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
이 명령은 리눅스 TFTP 서버에서 사용할 포트의 범위를 조정합니다.
그 다음에, 필요한 TFTP 부팅 이미지를 4.2.1절. “설치 이미지를 찾을 위치”에 쓰여 있는 것처럼 tftpd 부팅 이미지 디렉토리에 복사해 놓으십시오. 이 파일에서, tftpd가 특정 클라이언트를 부팅할 때 사용하는 특정 파일로 링크를 만들어야 할 것입니다. 불행히도 그 파일의 이름은 TFTP 클라이언트가 결정하고, 어떤 표준도 없습니다.
SGI 컴퓨터에서는 bootpd 명령만을 이용해서 TFTP 파일 이름을 넙깁니다. 파일 이름은 /etc/bootptab
파일의 bf=
혹은 /etc/dhcpd.conf
파일의 filename=
옵션으로 지정합니다.
[2] 데비안에 들어 있는 모든 in.tftpd 프로그램은 TFTP 요청을 시스템 로그에 기록합니다. 일부 프로그램은 -v
옵션으로 자세히 기록할 수 있습니다. 부팅 문제가 있는 경우 이 로그 메세지를 확인하길 권합니다. 오류 원인을 진단할 때는 이 로그 메세지부터 시작해 보는 게 좋습니다.