4.4. Підготовка файлів для завантаження з TFTP

Якщо Ваш комп’ютер під'єднаний до локальної мережі, його можна завантажити через мережу з іншого комп’ютера за допомогою TFTP. Якщо бажаєте завантажити систему інсталяції з іншого комп’ютера, потрібно завантажувальні файли розмістити на цьому комп’ютері в певних місцях, а комп’ютер налаштувати для підтримки завантаження Вашого конкретного комп’ютера.

Вам потрібно налаштувати сервер TFTP, а для декількох комп'ютерів налаштувати сервер DHCP чи сервер RARP, чи сервер BOOTP.

Зворотний протокол визначення адрес (RARP) — це шлях повідомлення Вашому клієнту яку IP-адресу використовувати. Інший спосіб — використовувати протокол BOOTP. BOOTP — протокол IP, який повідомляє комп'ютерам їх IP-адреси та інформацію про розташування в мережі образів для завантаження. Протокол DHCP (протокол динамічної конфігурації вузла) — це більш гнучке, зворотно сумісне розширення BOOTP. Деякі системи можуть бути налаштовані лише через DHCP.

Простий протокол обміну файлами (TFTP) використовується для передачі завантажувального образу до клієнтів. Теоретично Ви можете використовувати сервер на будь-якій платформі, яка його підтримує. Приклади у цьому розділі стосуються операційних систем SunOS 4.x, SunOS 5.x (Solaris) та GNU/Linux.

4.4.1. Налаштування сервера RARP

Для налаштування RARP Вам потрібно знати MAC-адресу клієнтських комп'ютерів, де потрібно зробити установку. Якщо цієї інформації у Вас немає, Ви можете завантажитися у режимі «Відновлення» та скористуватися командою ip addr show dev eth0.

На серверних системах RARP із ядром Linux або Solaris/SunOS використовується програма rarpd. Вам потрібно переконатися, що апаратна адреса Ethernet для клієнта вказана у базі даних «ethers» (або у файлі /etc/ethers, або через NIS/NIS+) та у базі даних «hosts». Потім потрібно запустити демон RARP. Виконайте команду (від імені root): /usr/sbin/rarpd -a у більшості систем Linux та SunOS 5 (Solaris 2), /usr/sbin/in.rarpd -a у деяких інших системах Linux або /usr/etc/rarpd -a у SunOS 4 (Solaris 1).

4.4.2. Налаштування сервера DHCP

Одним з безплатних програмних серверів DHCP є ISC dhcpd. Для Debian GNU/Linux рекомендується пакунок isc-dhcp-server. Нижче зразок файлу конфігурації (див. /etc/dhcp/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.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

У цьому прикладі є один сервер servername, який виконує всю роботу сервера DHCP, сервера TFTP та мережевого шлюзу. Вам майже напевно доведеться змінити параметри назви домену, а також назву сервера та апаратну адресу клієнта. Параметр filename має бути назвою файлу, який буде отриманий через TFTP.

Після редагування файлу конфігурації перезапустіть dhcpd за допомогою команди/etc/init.d/isc-dhcp-server restart.

4.4.3. Налаштування сервера BOOTP

Для GNU/Linux є два сервери BOOTP. Перший — CMU bootpd. Інший фактично є сервером DHCP: ISC dhcpd. У Debian GNU/Linux вони містяться в пакетах bootp та isc-dhcp-server відповідно.

Для використання CMU bootpd, Вам потрібно спочатку розкоментувати (або додати) відповідні рядку у /etc/inetd.conf. У Debian GNU/Linux, це можна зробити так: виконати update-inetd --enable bootps, потім /etc/init.d/inetd reload. Якщо Ваш сервер BOOTP працює не на Debian, рядок у запиті може виглядати приблизно так:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

Тепер потрібно створити файл /etc/bootptab. У нього такий самий формат, як у файлів у старому доброму BSD printcap, termcap та disktab. Для докладної інформації подивіться сторінку з настановами щодо bootptab. Для CMU bootpd Вам потрібно знати фізичну адресу (MAC) клієнта. Тут є приклад /etc/bootptab:

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

Вам потрібно змінити хоча би параметр «ha», який містить фізичну адресу. Параметр «bf» містить назву файлу, який повинен передаватися клієнту через TFTP; більше інформації у Розділ 4.4.5, «Перемістіть образи TFTP на місце».

На відміну від попереднього налаштування BOOTP за допомогою ISC dhcpd дуже просте, оскільки dhcpd розглядає клієнтів BOOTP як окремі випадки клієнтів DHCP. Але деякі архітектури вимагають складного налаштування для завантаження клієнтів через BOOTP. Якщо це Ваш випадок, прочитайте Розділ 4.4.2, «Налаштування сервера DHCP». В іншому випадку достатньо додати директиву allow bootp у файлі конфігурації /etc/dhcp/dhcpd.conf у блок підмережі, в якій знаходиться клієнт. Потім перезапустіть сервер dhcpd командою /etc/init.d/isc-dhcp-server restart.

4.4.4. Увімкнення сервера TFTP

Для підготовки до роботи сервера TFTP, переконайтеся спочатку, що tftpd активований.

У випадку tftpd-hpa існує два способи запуску служби. Можна запустити як окремий демон inetd під час запуску системи, або як незалежний демон. Який метод Вам потрібен можна обрати під час встановлення пакунка або можете змінити налаштування в будь-який час пізніше.

[Примітка] Примітка

Історично сервери TFTP використовували каталог /tftpboot для використання образів з них. Однак пакунки Debian GNU/Linux можуть використовувати інші каталоги відповідно до стандарту ієрархії файлової системи. Наприклад, tftpd-hpa стандартно використовує /srv/tftp. Можливо, Вам доведеться налаштувати приклади конфігурації в цьому розділі під свої потреби.

Усі альтернативи in.tftpd, доступні в Debian повинні типово реєструвати запити TFTP у системних журналах. Деякі з них підтримують аргумент -v для збільшення інформативності. У разі проблем із завантаженням рекомендується перевіряти ці повідомлення журналу, оскільки вони є гарною відправною точкою для діагностики помилок та пошуку причин.

4.4.5. Перемістіть образи TFTP на місце

Далі розмістіть потрібний завантажувальний образ TFTP, як описано у Розділ 4.2.1, «Де знайти інсталяційні файли», до каталогу з образами tftpd. Можливо, буде потрібно створити посилання з цього файлу на файл, який tftpd використовуватиме для завантаження певного клієнта. На жаль, імена файлу визначається клієнтом TFTP і тут немає жорстких стандартів.