4.3. Подготовка файлов для загрузки по TFTP

Если ваша машина подключена к локальной сети, то вы можете загрузить её по сети с другой машины через TFTP. Для этого на удалённую машину в определённое место вам нужно поместить загрузочные файлы и настроить поддержку загрузки вашей машины.

Вам нужно настроить TFTP сервер, а если машин много, то BOOTP сервер или DHCP сервер.

DHCP (Dynamic Host Configuration Protocol) более гибок и обратно совместим с BOOTP. Некоторые системы могут быть настроены только через DHCP.

Trivial File Transfer Protocol (TFTP) используется для загрузки загрузочного образа на клиентскую машину. Теоретически, можно использовать любой сервер на любой платформе, которая реализует эти протоколы. В примерах этого раздела мы используем команды из SunOS 4.x, SunOS 5.x (так называемый Solaris) и GNU/Linux.

4.3.1. Настройка DHCP сервера

Есть один свободный DHCP сервер — это ISC dhcpd. В Debian GNU/Linux он доступен из пакета dhcp. Вот пример его конфигурационного файла (обычно /etc/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;
}

Замечание: новый (и предпочтительный) пакет dhcp3 использует /etc/dhcp3/dhcpd.conf.

В этом примере определён единственный сервер servername, который работает в качестве DHCP, TFTP серверов и шлюза сети. Вам почти наверняка нужно изменить опцию domain-name, а также имя сервера и аппаратный адрес клиента. Опция filename должна содержать имя файла, который нужно получить по TFTP.

После редактирования конфигурационного файла dhcpd, перезагрузите сервер командой /etc/init.d/dhcpd restart.

4.3.2. Включение TFTP сервера

Для запуска TFTP сервера вы должны убедиться, что tftpd включён. Обычно, это делается добавлением в /etc/inetd.conf строки вида:

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

Пакеты Debian сами создают такую строку при установке.

Загляните в этот файл и запомните каталог, который используется в качестве аргумента in.tftpd— он вам потребуется далее. Аргумент -l в некоторых версиях in.tftpd включает запись протокола всех обращений в системные журналы — это полезно для диагностики ошибок. Если вы изменили /etc/inetd.conf, вам нужно об этом сказать запущенному процессу inetd. На машине Debian выполните /etc/init.d/inetd reload; на других машинах определите ID процесса inetd и запустите kill -HUP inetd-pid.

Если вы хотите установить Debian на машину SGI, а ваш TFTP сервер работает на GNU/Linux с ядром Linux 2.4, то на сервере вам нужно выполнить:

# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

чтобы отключить обнаружение Path MTU, иначе Indy PROM не сможет загрузить ядро. Кроме того, убедитесь, что TFTP пакеты посылаются с портом источника не выше 32767 или загрузка остановится после первого пакета. Ещё раз, это ошибка Linux 2.4.X при работе с PROM, и вы можете избежать этого, выполнив настройку

# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

, которая регулирует диапазон портов источника используемого Linux TFTP сервером.

4.3.3. Копирование TFTP образов в каталог TFTP сервера

Далее, поместите нужный загрузочный образ TFTP из Раздел 4.2.1, «Где искать установочные образы» в каталог загрузочных образов tftpd. Как правило, этот каталог называется /tftpboot. Вы можете сделать ссылку на этот файл для файла, который tftpd будет передавать для загрузки определённому клиенту. К сожалению, имя файла определяется TFTP клиентом и никак не стандартизовано.

4.3.3.1. Загрузка SGI Indy по TFTP

На SGI Indy вы можете положиться на bootpd передав имяTFTP файла. Оно задаётся или как bf= в /etc/bootptab или как параметр filename= в /etc/dhcpd.conf.

4.3.3.2. Загрузка Broadcom BCM91250A по TFTP

Не требуется как-то особенно настраивать DHCP, кроме как передать CFE полный путь к файлу для загрузки.