Příprava souborů pro zavedení ze sítě pomocí TFTP
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 pro CATS stroje BOOTP server
nebo RARP
nebo DHCP 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.
Na systémech VMEbus existuje ještě jedna možnost:
IP adresu můžete ručně nastavit v boot ROM.
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.
Pokud máte NewWorld Power Macintosh, je lepší použít místo BOOTP
protokol DHCP, protože některé novější počítače se neumí protokolem
BOOTP zavést.
Na rozdíl od Open Firmware, který je stanicích Sparc a PowerPC,
konzole SRM nemůže použít protokol RARP za
účelem získání IP adresy. Proto musíte pro zavedení Alphy ze sítě
použít protokol BOOTP. Také můžete zadat nastavení síťových rozhraní
přímo v SRM konzoli.
Systémy Alpha mohou také síťově nabootovat pomocí DECNet MOP
(Maintenance Operations Protocol), ale tato možnost není dále
popsána. Pravděpodobně ale bude váš lokální OpenVMS operátor
štěstím bez sebe, když ho požádáte o pomoc při zavedení Linuxu
na své Alphě.
Některé starší stroje HPPA (tj. 715/75) používají místo BOOTP protokol
RBOOTD. Balíček je dostupný na WWW stránce parisc-linuxu.
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.
&tftp-rarp.xml;
&tftp-bootp.xml;
&tftp-dhcp.xml;
Povolení TFTP serveru
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 root /usr/sbin/tcpd in.tftpd /tftpboot
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 (pro slink/2.1 a starší použijte
/etc/init.d/netbase reload).
Na jiných systémech musíte zjistit ID běžícího procesu
inetd a spustit kill -HUP
inetd-pid.
Abyste mohli využít PXE (Pre-boot Execution Environment) metodu TFTP
zavádění, musíte mít TFTP server s podporou
tsize, například tftp-hpa.
Pokud je vaším TFTP serverem GNU/Linux s jádrem 2.4.X, musíte na něm
následujícím příkazem vypnout Path MTU discovery
:
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
Pokud tak neučiníte, PROM na Indym nebude moci stáhnout jádro.
Dále zkontrolujte že TFTP pakety jsou posílány z portu menšího než
32767, protože jinak by se přenos zastavil po prvním paketu.
Rozsah zdrojových portů, které má TFTP server používat se nastaví
příkazem:
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
Přesun TFTP obrazů na místo
Dále je potřeba umístit příslušný TFTP obraz (viz
) 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 strojích NewWorld Power Macintosh budete muset nastavit jako
zaváděcí TFTP obraz zavaděč yaboot.
Yaboot si pak sám přes TFTP stáhne obrazy jádra a
RAMdisku. Pro zavádění ze sítě použijte soubor
yaboot-netboot.conf, který v TFTP adresáři
přejmenujete na yaboot.conf.
TFTP klient často hledá soubor
hex-ip-adresa-klienta-architektura.
Tento název se spočítá relativně jednoduše: K části
hex-ip-adresa-klienta dojdete tak, že
vyjádříte každý bajt IP adresy klienta v šestnáctkové soustavě.
Pokud máte po ruce program bc klidně jej použijte.
Příkazem obase=16 nastavíte výstup na
hexadecimální a potom už jen zadáte jednotlivé části IP adresy.
Pro proměnnou architektura vyzkoušejte
různé hodnoty.
Pro PXE zavádění můžete použít zavaděč
pxelinux.0, jež je součástí balíku
syslinux. Zavaděč nakopírujte do adresáře
/tftpboot. Tamtéž vytvořte podadresář
/tftpboot/pxelinux.cfg, který bude obsahovat
textový soubor default. Možný obsah souboru:
default lanlinux
prompt 1
label lanlinux
kernel tftpboot.img
append load initrd=root.bin devfs=nomount
Parametr devfs=nomount je podstatný, protože
bez něj by nešlo připojit kořenový souborový systém ze souboru
root.bin.
Závěrem nakopírujte do adresáře /tftpboot soubory
tftpboot.img a root.bin
(naleznete je na ftp archivech Debianu).
TFTP obrazy pro DECstation
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
tftpimage-podarchitektura nebo
tftpimage-podarchitektura.gz. Pokud je
obraz zabalený (má příponu .gz), musíte jej před použitím rozbalit
(např. gunzip
tftpimage-podarchitektura.gz),
protože DECstation neumí zavádět komprimované obrazy skrze TFTP.
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 #/tftp, kde
# 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/filename param1=value1 param2=value2 ...
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:
.
Zavedení Alphy přes TFTP
Na systémech Alpha musíte v SRM konzoli zadat jméno obrazu (jako
relativní cestu k adresáři se zaváděcími obrazy) jako parametr
argumentu -file příkazu
boot. Stejného výsledku dosáhnete nastavením
proměnné BOOT_FILE.
Eventuálně můžete jméno specifikovat rovněž pomocí BOOTP
(při konfiguraci ISC dhcpd použijte direktivu
filename). Na SRM konzoli, na rozdíl od Open
Firmwaru, neexistuje standardní jméno souboru,
takže musíte zadat jméno souboru jednou z
popsaných metod.
TFTP zavádění na počítačích SPARC
Počítače SPARC používají jména podarchitektur jako třeba ,,SUN4M''
nebo ,,SUN4C''; v některých případech se jméno architektury nechává
prázdné, takže jméno hledaného souboru je pouze
hex-ip-adresa-klienta.
Pokud třeba máte počítač s podarchitekturou SUN4C a IP adresa je
192.168.1.3, pak jméno souboru bude
C0A80103.SUN4C.
Některé sparc systémy můžete přidáním jména souboru na konec OpenPROM
příkazu boot donutit hledat konkrétní soubor.
(Např. boot net muj-sparc.obraz).
Soubor musí být samozřejmě v adresáři prohledávaném TFTP serverem.
TFTP zavádění na systémech BVM/Motorola
Pro systémy BVM a Motorola VMEbus nakopírujte soubory
&bvme6000-tftp-files; do adresáře /tftpboot/.
Poté nakonfigurujte boot ROM nebo BOOTP server, aby nejprve z TFTP
serveru natáhl soubory tftplilo.bvme nebo
tftplilo.mvme.
Další informace o konfiguraci systémově specifických částí pro svou
podarchitekturu získáte v souboru tftplilo.txt.
TFTP zavádění na SGI Indy
U počítačů SGI Indy se můžete spolehnout na bootpd,
že předá správné jméno TFTP souboru. Jméno se zadává v souboru
/etc/bootptab jako parametr
bf= nebo v souboru
/etc/dhcpd.conf parametrem
filename=.
TFTP instalace na systémech s nedostatkem paměti
Na některých systémech se standardní instalační RAMdisk a zaváděcí
TFTP obraz nemusí vlézt do paměti. V takovém případě musíte navíc přes
NFS připojit také kořenový adresář. Tento postup je shodný s instalací
na bezdiskové nebo bezdatové klienty.
Nejprve proveďte všechny kroky podle .
Nakopírujte obraz linuxového jádra (a.out verzi
pro vaši architekturu) na TFTP server.
Na NFS serveru rozbalte kořenový archiv. (NFS i TFTP mohou běžet na
stejném počítači):
# cd /tftpboot
# tar xvzf root.tar.gz
Ujistěte se, že používáte GNU tar, protože některé
implementace (konkrétně ta na SunOS) pracují (chybně) se zařízeními
jako s obyčejnými soubory.
Na klienta exportujte adresář
/tftpboot/debian-sparc-root (s rootovským
přístupem). Tj. do souboru /etc/exports přidejte
následující řádek (toto je GNU/Linux syntaxe - pro SunOS by to mělo
být podobné):
/tftpboot/debian-sparc-root klient(rw,no_root_squash)
Poznámka: ,,klient'' je jméno nebo IP adresa instalovaného počítače
tak, jak ji vidí server, když se klient zavádí.
Vytvořte symbolický odkaz z klientské IP adresy, v tečkové notaci,
na soubor debian-sparc-root v adresáři
/tftpboot.
Například pokud je IP adresa klienta 192.168.1.3, napište:
# ln -s debian-sparc-root 192.168.1.3
Instalace za použití TFTP a NFS
Instalace přes TFTP a použití kořenového adresáře přes NFS je podobné
jako , protože nebudete do paměti
nahrávat RAMdisk, ale zavedete systém z kořenového souborového systému
připojeného přes NFS. Musíte pak nahradit symbolický odkaz, aby
ukazoval na jádro (například linux-a.out) a ne na
tftp obraz.
RARP/TFTP vyžadují, aby všechny démony běžely na stejném serveru.
(Stanice totiž odešle TFTP požadavek tomu, kdo odpoví na RARP
zprávu).
Nyní máte nachystáno vše potřebné a můžete přejít k zavedení klientské
stanice — .