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 DHCP server nebo RARP nebo BOOTP server.
Klientovi můžete sdělit jeho IP adresu protokolem RARP (Reverse Address Resolution Protocol) nebo BOOTP. 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.
To set up RARP, you need to know the Ethernet address (a.k.a. the MAC address) of the client computers to be installed. If you don't know this information, you can boot into „Rescue“ mode and use the command ip addr show dev eth0
.
Na linuxových systémech, případně na systémech SunOS/Solaris máte k dispozici program rarpd. Nejprve musíte zaručit, že ethernetová adresa klienta bude zaznamenána v databázích „ethers“ (tj. buď v souboru /etc/ethers
nebo pomocí NIS/NIS+) a „hosts“. Pak můžete spustit RARP démona. Na většině linuxových systémů a na SunOS 5 (Solaris 2) to provedete (jako superuživatel root) příkazem /usr/sbin/rarpd -a
, na jiných systémech příkazem /usr/sbin/in.rarpd -a
a na SunOS 4 (Solaris 1) příkazem /usr/etc/rarpd -a
.
Jedním ze svobodných DHCP serverů je ISC dhcpd. Debian GNU/Linux jej obsahuje jako balík isc-dhcp-server
. Následuje ukázka jednoduchého konfiguračního souboru (obvykle /etc/dhcp/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.img"; server-name "karel"; next-server dalsiserver.priklad.cz; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
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/isc-dhcp-server restart
.
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 isc-dhcp-server
.
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.5 – „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 /etc/dhcp/dhcpd.conf
vložit do bloku podsítě, ve které se nachází klient, direktivu allow bootp
. Potom restartujte dhcpd server příkazem /etc/init.d/isc-dhcp-server restart
.
Aby vám TFTP server fungoval, měli byste nejprve zkontrolovat, zda je tftpd povolen.
V případě balíku tftpd-hpa
existují dva způsoby, jak službu provozovat. Jednak se může tftpd-hpa
spouštět jako samostatný daemon při startu systému, nebo může jeho spuštění zajišťovat systémový daemon inetd
v okamžik, kdy je ho potřeba. Způsob, který zrovna používáte, můžete zvolit při instalaci balíku, respektive ho můžete kdykoliv změnit rekonfigurací balíku.
Poznámka | |
---|---|
TFTP servery historicky používaly pro uložení nabízených obrazů adresář |
Všechny alternativní in.tftpd v Debianu by měly automaticky zaznamenávat všechny požadavky, které jim byly zaslány, do systémových logů. To se hodí zejména v situaci, kdy zavádění neprobíhá tak, jak má. Některé TFTP servery umí zvýšit svou upovídanost parametrem -v
.
Dále je potřeba umístit příslušný TFTP obraz (viz 4.2.1 – „Where to Find Installation Files“) do adresáře, kde má tftpd uloženy obrazy. 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.