Pokud je váš počítač připojen do lokální sítě, můžete jej zavést ze sítě pomocí TFTP. Jestliže chcete pomocí TFTP zavést instalační systém, musíte na vzdáleném počítači nakopírovat zaváděcí soubory do specifických adresářů a povolit zavádění vaší stanice.
Musíte nastavit TFTP server a často i BOOTP server nebo DHCP server.
BOOTP je IP protokol, který informuje počítač o jeho IP adrese a prozradí mu, odkud si má stáhnout zaváděcí obraz. DHCP (Dynamic Host Configuration Protocol) je flexibilnější, zpětně kompatibilní rozšíření protokolu BOOTP. Některé systémy mohou být nastaveny pouze pomocí DHCP.
Pro přenos zaváděcího obrazu ke klientovi se používá protokol TFTP (Trivial File Transfer Protocol). Teoreticky můžete použít server na libovolné platformě, která jej implementuje. Ukázky v této kapitole se vztahují k operačním systémům SunOS 4.x, SunOS 5.x (neboli Solaris) a GNU/Linux.
V GNU/Linuxu můžete použít v zásadě dva BOOTP servery. Jednak je to
CMU bootpd a druhý je vlastně DHCP server —
ISC dhcpd. V distribuci Debian GNU/Linux jsou k dispozici v
balíčcích bootp
a dhcp
.
Pokud chcete použít CMU bootpd, musíte nejprve
odkomentovat (nebo přidat) jeden důležitý řádek v souboru
/etc/inetd.conf
. V systému Debian GNU/Linux můžete
spustit update-inetd --enable bootps
a následně
restartovat inetd pomocí /etc/init.d/inetd
reload
. V jiných systémech přidejte řádku, která bude
vypadat zhruba takto:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Nyní musíte vytvořit soubor /etc/bootptab
. Jeho
struktura je velmi podobná té, co používají staré dobré soubory
printcap
, termcap
, a
disktab
ze systému BSD.
Bližší informace jsou v manuálové stránce
bootptab
. Pokud používáte CMU
bootpd, musíte rovněž znát hardwarovou (MAC) adresu
klienta. Následuje příklad souboru /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:
Z příkladu budete muset změnit minimálně volbu „ha“, která značí hardwarovou adresu klienta. Volba „bf“ specifikuje soubor, který si klient stáhne protokolem TFTP, viz 4.3.4 – „Přesun TFTP obrazů na místo“.
V kontrastu s předchozím je nastaveni BOOTP pomocí ISC
dhcpd velmi jednoduché, protože dhcpd považuje
BOOTP klienty za speciální případ DHCP klientů. Některé architektury
však vyžadují pro zavádění klientů pomocí BOOTP komplikované
nastavení. Je-li to váš případ, přečtěte si 4.3.2 – „Nastavení DHCP serveru“.
V opačném případě stačí v konfiguračním souboru vložit do bloku
podsítě, ve které se nachází klient, direktivu allow
bootp
. Potom restartujte dhcpd server
příkazem /etc/init.d/dhcpd restart
.
Jedním ze svobodných DHCP serverů je ISC
dhcpd. Debian GNU/Linux jej obsahuje jako balík
dhcp
. Následuje ukázka jednoduchého
konfiguračního souboru (obvykle /etc/dhcpd.conf
):
option domain-name "priklad.cz"; option domain-name-servers ns1.priklad.cz; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "karel"; 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 "karel"; next-server dalsiserver.priklad.cz; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
Poznámka: novější (a preferovaný) balík dhcp3
používá konfigurační soubor
/etc/dhcp3/dhcpd.conf
.
V tomto příkladu máme jeden server jménem
karel
, který obstarává práci DHCP a
TFTP serveru a také slouží jako brána do sítě. Ve svém nastavení si
musíte změnit alespoň doménové jméno, jméno serveru a hardwarovou
adresu klienta. Položka filename
by měla
obsahovat název souboru, který si klient stáhne přes TFTP.
Po úpravách konfiguračního souboru musíte restartovat
dhcpd příkazem /etc/init.d/dhcpd
restart
.
Aby vám TFTP server fungoval, měli byste nejprve zkontrolovat,
zda je tftpd povolen. Toho obvykle docílíte
následující řádkou v souboru /etc/inetd.conf
:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
Při instalaci z debianích balíků se o nic nemusíte starat, protože se tento řádek založí automaticky při instalaci balíku.
Podívejte se do souboru /etc/inetd.conf
a
zapamatujte si název adresáře, jehož jméno je za
in.tftpd; budete jej dále potřebovat. Přepínač
-l
umožňuje některým verzím
in.tftpd zaznamenávat všechny požadavky, které mu
byly zaslány, do systémových logů. To je vhodné zejména v situaci, kdy
zavádění neprobíhá tak, jak má. Pokud musíte změnit obsah souboru
/etc/inetd.conf
, musíte proces
inetd upozornit, aby aktualizoval svá nastavení.
Na počítači s Debianem stačí spustit /etc/init.d/inetd
reload
.
Na jiných systémech musíte zjistit ID běžícího procesu
inetd a spustit kill -HUP
.
inetd-pid
Dále je potřeba umístit příslušný TFTP obraz (viz
4.2.1 – „Kde se nalézají instalační obrazy?“) do adresáře, kde má
tftpd uloženy obrazy, obvykle
/tftpboot
. Bohužel TFTP klient očekává jméno
souboru v určitém tvaru, pro který neexistují žádné závazné
standardy. Proto ještě musíte na příslušný obraz vytvořit odkaz, který
tftpd použije pro zavedení konkrétního klienta.
Na počítačích DECstation existují pro každou podarchitekturu speciální
tftp obrazy, které v jednom souboru obsahují jak jádro, tak instalační
program. Jména těchto souborů jsou
podarchitektura
/netboot-boot.img. Jestliže
jste si nastavili BOOTP/DHCP podle našich příkladů, nakopírujte tftp
obraz do souboru /tftpboot/tftpboot.img
.
Z DECstation firmwaru zavedete systém přes TFTP příkazem
boot
, kde
#
/tftp#
je číslo zařízení TurboChannel, ze
kterého se má zavádět. Většinou to bývá „3“. Pokud vám
BOOTP/DHCP server nenabídne správný obraz, nebo pokud chcete zadat
speciální parametry, můžete použít následující syntaxi:
boot #/tftp/obraz param1=hodnota1 param2=hodnota2 ...
U několika revizí DECstation firmwaru se projevuje problém se
zaváděním ze sítě: zahájí se přenos a po krátké době stahování spadne
s hláškou a.out err
. To může mít
několik příčin:
Firmware neodpovídá na ARP požadavky, což po chvíli vede k vypršení
časového kvanta ARP protokolu a přenos se zastaví. Řešením je ručně
přidat MAC adresu síťové karty stanice do ARP tabulky TFTP
serveru. MAC adresu získáte z promptu firmwaru příkazem
cnfg. Tuto adresu pak na TFTP serveru přidáte
příkazem arp -s
.
IP-adresa
MAC-adresa
Firmware má omezení na velikost zaváděných obrazů.
Také existují revize firmwaru, které neumí s TFTP pracovat vůbec. Přehled různých revizí můžete najít na stránkách projektu NetBSD: http://www.netbsd.org/Ports/pmax/board-list.html#proms.