Mini Howto dla bezdyskowych stacji Robert Nemkin, buci@math.klte.hu v0.0.3, 12 Wrze¶nia 1996. WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll v1.12, 26 Lipca 1997 Dokument ten opisuje jak zainstalowaæ bezdyskow± stacje robocz± Linux- a. Prawa autorskie nale¿± do Roberta Nemkina. Polisa praw autorskich to GPL. Chcia³bym podziêkowaæ Bela Kis bkis@cartan.math.klte.hu za przet³umaczenie tego dokumentu na jêzyk angielski. Dokument ten zosta³ napisany w standardzie ISO-8859-2. Wersja oryginalna znajduje siê pod adresem ftp.icm.edu.pl <ftp://ftp.icm.edu.pl:/pub/Linux/sun site/docs/HOWTO/mini/>. ______________________________________________________________________ Spis tre¶ci 1. Zmiany. 2. Jak zainstalowaæ bezdyskow± stacjê robocz± Linux-a ? 3. Dokumenty zwi±zane z tym. 4. Sprzêt. 5. Podstawowe idee. 5.1 Ustawianie PC-ta. 5.2 Ustawianie bootpd na serwerze. 5.3 Konfiguracja bottpd na serwerze. 5.4 Rozumienie tftp. 5.5 Ustawianie minimalnej konfiguracji Linux-a na odleg³ym serwerze. 5.6 Konfiguracja serwera tftp. 5.7 Praca koñcowa. 6. Wymagania pamiêciowe i dyskowe; prêdko¶æ. 7. Mo¿liwe b³êdy. 8. B³êdy i mo¿liwy dalszy rozwój tego dokumentu. 8.1 Od autora. 8.2 Od t³umacza. ______________________________________________________________________ 11.. ZZmmiiaannyy.. · v0.0.3 12 Wrze¶nia 1996: Ma³e poprawki b³êdów. 22.. JJaakk zzaaiinnssttaalloowwaaææ bbeezzddyysskkooww±± ssttaaccjjêê rroobboocczz±± LLiinnuuxx--aa ?? Dokument ten traktuje o instalacji bezdyskowej stacji roboczej na Linux-ie. Czasami jest konieczna instalacja Linux-a na PC-tach, które nie maj± ani dysku twardego ani stacji dyskietek. Je¶li dostêpna jest sieæ, inny komputer z Unix-em z bootp, tftp, serwer NFS, i eprom burner FIXME wtedy mo¿liwe jest zainstalowanie Linux-a bez twardego dysku czy dyskietek. 33.. DDookkuummeennttyy zzwwii±±zzaannee zz ttyymm.. · NFS-root Mini Howto · Linux NET-2/3-HOWTO napisane przez Terry Dawsona, _9_4_0_0_4_5_3_1_@_p_o_s_t_o_f_f_i_c_e_._c_s_u_._e_d_u_._a_u · /usr/src/linux/README na temat konfiguracji i kompilacji nowego j±dra. 44.. SSpprrzzêêtt.. Cokolwiek tu by³o opisane, sprawdzone zosta³o na nastêpuj±cej konfiguracji: · Sun-OS 4.1.3 jako serwer startowy · Slackware 2.3 + Linux 1.2.8 + wd 8013 ethercard · Dzia³aj±ca sieæ lokalna oparta na Ethernecie. 55.. PPooddssttaawwoowwee iiddeeee.. Podstawow± ide± tego jest: PC-et otrzyma swój adres IP z serwera startowego poprzez protokó³ bootp, u¿ywaj±c 0.0.0.0 jako inicjacyjnego adresu IP oraz j±dro poprzez protokó³ tftp. (-- Startowanie poprzez ró¿ne segmenty (poprzez ruter) nie jest takim prostym pytaniem, wiêc albo umie¶æ oba - serwer startowy i stacjê bezdyskow± - w jednym segmencie albo skonfiguruj pomocniczy adres UDP w swoim ruterze dla adresu serwera. Dalszych informacji szukaj w podrêczniku dostarczonym razem z twoim ruterem.--) Aby to zrobiæ postepuj zgodnie z poni¿szymi krokami. 55..11.. UUssttaawwiiaanniiee PPCC--ttaa.. Zdob±d¼ pakiet nfsboot. (Dostêpny jest np. z ftp.icm.edu.pl) Zawiera on obraz BIOS-u dla karty wd8013, który mo¿e byæ bezpo¶rednio zapisany. S± jeszcze inne alternatywne sposoby na przygotowanie PC-ta: · je¶li twój komputer nie jest ca³kowicie bezdyskowy, wtedy mo¿esz u¿yæ ma³ego DOS-owego programu albo · obrazu dyskietki binarnej z tego samego pakietu. Je¶li wybierzesz tê druga opcjê musisz zapisaæ obraz na dyskietke poleceniem dd. Obrazy te zawieraj± klienta bootp oraz tftp. Musisz tak¿e przygotowaæ j±dro, które bêdzie zawiera³o opcjê nfs-root. · Je¶li u¿ywasz najnowszej stabilnej wersji j±dra, linux-1.2.13, to musisz za³ataæ j±dro ³at± zawart± w pakiecie nfsboot. (-- Zobacz patch(1)--) · Je¶li próbujesz u¿yæ najnowszej wersji j±dra z serii 1.3.x, to musisz skonfigurowaæ opcjê nfs-root. Mo¿esz skonfigurowaæ obs³ugê urz±dzenia blokowego (dyskietki albo dysku twardego), ale musisz skonfigurowaæ obs³ugê tcp/ip, karty wd ethernet, g³ównego sytemu plików przez nfs. Potem skompiluj j±dro jak zwykle. 55..22.. UUssttaawwiiaanniiee bboooottppdd nnaa sseerrwweerrzzee.. Mo¿na go znle¼æ w pakiecie >bootpd-2.4.tar.gz na serwerze ftp.icm.edu.pl. Zdob±d¼ pakiet, skompiluj go i zainstaluj. Je¶li twój drugi komputer to przypadkiem Linux Slackware, to mo¿esz przeskoczyæ ten krok poniewa¿ standardowa dystrybucja zawiera bootpd. Demona mo¿na uruchomiæ albo bezpo¶rednio poleceniem: bootpd -s albo u¿ywaj±c inetd. W tym wypadku musisz: · zmieniæ plik /etc/inetd.conf przez usuniêcie znaku # z pocz±tku tych linii: ___________________________________________________________________ # tftp dgram udp wait root /usr/sbin/in.tftpd tftpd /export # bootps dgram udp wait root /usr/sbin/in.bootpd bootpd ___________________________________________________________________ · do³o¿yæ lub tak¿e odkomentowaæ nastêpuj±ce linie w pliku /etc/services ___________________________________________________________________ bootps 67/tcp # serwer BOOTP tftp 69/udp # serwer TFTP ___________________________________________________________________ · ponownie zainicjowaæ inetd przez kill -HUP <PID inetd> 55..33.. KKoonnffiigguurraaccjjaa bboottttppdd nnaa sseerrwweerrzzee.. Po pierwsze bootpd ma plik konfiguracyjny o nazwie bootptab, który z regu³y znajduje siê w katalogu /etc. Musisz go zmodyfikowaæ przez wpisanie adresu IP twoich gateway-ów, serwerów dns i adres-u/ów ethernet twojej stacji bezdyskowej. Oto przyk³adowy plik konfiguracyjny /etc/bootptab: ______________________________________________________________________ global.prof:\ :sm=255.255.255.0:\ :ds=192.168.1.5:\ :gw=192.168.1.19:\ :ht=ethernet:\ :bf=linux: machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.1 machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.1 machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.1 ______________________________________________________________________ _g_l_o_b_a_l_._p_r_o_f jest ogólnym szablonem dla pól host-a, gdzie · sm jest mask± podsieci · ds jest adresem serwera DNS · gw jest adresem gatway-a · ht jest typem sprzêtu LAN · bf jest nazw± pliku startowego Potem ka¿dy komputer musi mieæ swoj± liniê: · pierwsze pole jest nazw± host-a · pole hd jest katalogiem, w którym znajduje siê plik startowy · ogólny szablon mo¿e byæ zawarty przez pole tc · pole ha jest adresem sprzêtowym karty ethernet · pole ip jest adresem przypisanym do danego host-a 55..44.. RRoozzuummiieenniiee ttffttpp.. TFTP (Trivial File TRansfel Protocol) jest protoko³em transferu plików, takim jak ftp, z tym, ¿e o wiele prostszym do zapisania go w EPROM-ach. TFTP mo¿e zostac u¿yty na dwa sposoby: · proste tftp: oznacza, ¿e klient ma dostêp do ca³ego twojego systemu plików. Jest to prostsze rozwi±zanie, ale jest ono wielk± dziur± w bezpieczeñstwie systemu (ka¿dy mo¿e pobraæ twój plik z has³ami poprzez tftp). · bezpieczne tftp: serwer tftp u¿ywa funkcji systemowej chroot(2), aby zmieniæ swój katalog g³ówny. Wszystko poza nowym katalogiem g³ównym bêdzie ca³kiem niedostêpne. Z powodu chroot dir staje siê nowym katalogiem g³ównym; pole hd musi odzwierciedlaæ now± sytuacjê. Na przyk³ad: podczas u¿ywania niezabezpieczonego tftp, pole hd zawiera pe³n± ¶cie¿kê do katalogu startowego: /export/root/machine1. Podczas u¿ywania bezpiecznego tftp z katalogiem /expoprt jako katalog g³ówny, wtedy /export staje siê / a pole hd musi zawieraæ /root/machine1. Prawie ka¿da implementacja Unix-a zawiera serwer tftp, przypuszczalnie nie musisz instalowaæ w³asnego. 55..55.. sseerrwweerrzzee.. UUssttaawwiiaanniiee mmiinniimmaallnneejj kkoonnffiigguurraaccjjii LLiinnuuxx--aa nnaa ooddlleegg³³yymm Mo¿e to zawieraæ pakiety a, ap, n oraz x z dystrybucji Slackware. Je¶li zainstalujesz wiêcej - nie ma sprawy; ale wymienione pakiety wystarcz±, ¿eby zrobiæ bezdyskowy Xterminal. Do instalacji potrzebujesz dzia³aj±cego ju¿ Linux-a. Znajd¼ trochê miejsca na dysku na odleg³ym komputerze i wyeksportuj je jako do zapisu-i-odczytu. Zamontuj ten wyeksportowany katalog gdzie¶ (np. /mnt) w systemie plików Linux-a. Zacznij ustawianie Linux-a i zmieñ opcjê root w setup- ie z / na /mnt. Potem zainstaluj powy¿sze pakiety jak zwykle. Je¶li chcesz mieæ nie wiêcej ni¿ jedn± stacjê bezdyskow± Linux-ow±, to nie potrzeba ¿adnych zmian. Jednak z drugiej strony, je¶li planujesz u¿ywaæ wiêcej ni¿ jednej bezdyskowej stacji Linux-owej wtedy powy¿sze ustawienia nie bêd± dzia³aæ poniewa¿ niektóry pliki i katalogi musz± byæ prywatne dla danej maszyny. Problem ten mo¿na obej¶æ przez przeniesienie katalogu /usr (nie zaweira on ¿adnych prywatnych danych) i stworzyæ osobne podkatalogi dla ka¿dej bezdyskowej stacji. Na przyk³ad, je¶li /export/linux/machine1 zosta³by zamontowany na /mnt wtedy struktura katalogów po inicjacyjny ustawieniu wygl±da³aby tak: ______________________________________________________________________ /export/linux/machine1/bin /export/linux/machine1/sbin /export/linux/machine1/lib /export/linux/machine1/etc /export/linux/machine1/var /export/linux/machine1/usr ______________________________________________________________________ Po zmianach wygl±da³aby tak: ______________________________________________________________________ /export/linux/machine1/bin /export/linux/machine1/sbin /export/linux/machine1/lib /export/linux/machine1/etc /export/linux/machine1/var /export/linux/usr ______________________________________________________________________ Teraz stwórz podkatalogi dla innych maszyn. Przyjmij na razie, ¿e twoje stacje bezdyskowe nazywaj± siê machine1, machine2, ..., machinen; wtedy mo¿esz u¿yæ nastêpuj±cego skryptu w bash-u, aby pozak³adaæ inne katalogi: ______________________________________________________________________ #!/bin/bash cd /export/linux for x in machine2 machine3 ; do mkdir $x; cd $x (cd ../machine1; tar cf - *) | tar xvf - done ______________________________________________________________________ Potem zrób nastepuj±ce eksporty: · /export/linux/usr tylko-do-odczytu dla ka¿dego · /export/liunx/machine1 tylko dla machine1 z prawami rw, root · /export/liunx/machine2 tylko dla machine2 z prawami rw, root · /export/liunx/machine3 tylko dla machine3 z prawami rw, root tak jak tutaj: (-- format tego przyk³adowego pliku odpowiada sk³adni pliku eksportowego z SunOS-u 4.1.3--) ______________________________________________________________________ # To jest plik /etc/export # dla odleg³ych Xterminali na Linux-ie zrobiony przez Buci # ta linia pojawia siê tylko jeden raz /export/root/usr -access=linuxnet # te po jednej dla ka¿dego host-a /export/root/machine1 rw=machine1,root=machine1 /export/root/machine2 rw=machine2,root=machine2 /export/root/machine3 rw=machine3,root=machine3 ______________________________________________________________________ Nie zapomnij uruchomiæ exportfs -a. 55..66.. KKoonnffiigguurraaccjjaa sseerrwweerraa ttffttpp.. Teraz czas na konfiguracjê serwera tftp. Je¶li nie potrzebujesz bezpiecznego tftp, to wszystko jest raczej proste, twoje klienty mog± byæ startowane z katalogu /export. Je¶li u¿ywany jest bezpieczny tftp, to mo¿esz albo zrobiæ pe³n± strukturê katalogów /export/linux pod tftpboot (z jednym rzeczywistym j±drem i symbolicznymi do³±czeniami dla innych maszyn), albo niech katalog /export bêdzie katalogiem startowym dla bezpiecznego tftpd. Albo, je¶li masz odrêbny katalog tftpboot, to potrzbujesz tylko oryginalnej struktury katalogów z jednym j±drem i symbolicznymi dowi±zaniami dla innych. Mo¿esz otrzymaæ takie ustawienie przez wpisanie tego: ______________________________________________________________________ mkdir -p /tftpboot/export/linux/machine1 cd /tftpboot/export/linux/machine1 cp /export/linux/machine1/<name of the kernel> . ______________________________________________________________________ 55..77.. PPrraaccaa kkooññccoowwaa.. Ostatecznie musisz wpisaæ: ______________________________________________________________________ /sbin/mount nfs_server:/export/linux/usr /usr ______________________________________________________________________ jako pierwsz± liniê pliku ______________________________________________________________________ /export/linux/<machinex>/etc/rc.d/rc.S ______________________________________________________________________ gdzie <machinex> to machine1, machine2, itd. 66.. WWyymmaaggaanniiaa ppaammiiêêcciioowwee ii ddyysskkoowwee;; pprrêêddkkoo¶¶ææ.. Slackware 2.3; dla innych dystrybucji/wersji podane liczby mog± byæ ró¿ne. · Miejsce na dysku: 28MB + 6,5MB/maszynê · RAM: Ja u¿ywam X-ów na 8MB. Tylko dla 4MB jest potrzebny swap, s±dze; mo¿e on byæ stworzony oddzielnie dla ka¿dego komputera w katalogu /tmp. Nie zapomnij uruchomiæ _m_k_s_w_a_p. · Prêdko¶æ: Nie mia³em problemów na 486 DX2/66 z 8MB RAM-u. 77.. MMoo¿¿lliiwwee bb³³êêddyy.. · Znalaz³em dziwny b³±d: w podkatalogu /dev SunOS popsu³ pliki urz±dzeñ i musia³em uruchomic ponownie MAKEDEV przez zamontowanie tego podkatalogu na Linux-a z dyskiem. (Powodem by³y ró¿nice pomiêdzy Linux-owym a SunOS-owym nfs-em: oba u¿ywaj± 32 bitów na liczbê g³ówn± (major) i liczbê poboczn± (minor) urz±dzeñ, ale Linux u¿ywa 16-bitowych pól dla ka¿dego z nich, a SunOS u¿ywa 14 bitów dla liczby g³ównej, a 18 bitów dla liczby pobocznej.) · Kiedy bezdyskowy Linux jest startowany, jest tylko jedno pole w tablicy rutingu do serwera tftp, tak wiêc musisz ustawiæ poprawne tablice rutingu. Masz tu dwie mo¿liwo¶ci do wyboru: · skonfigurowaæ ka¿dy rc.S dla ka¿dej maszyny, · u¿yæ pakietu z klientem _b_o_o_t_p i napisaæ uogólniony skrypt ustawiaj±cy. 88.. BB³³êêddyy ii mmoo¿¿lliiwwyy ddaallsszzyy rroozzwwóójj tteeggoo ddookkuummeennttuu.. 88..11.. OOdd aauuttoorraa.. · Poprawne cytowanie dokumentów zwi±zanych. · SunOS powsta³ na podstawie BSD. Trzeba do³±czyæ konfiguracjê bazowan± na SVR4 (np. Solaris) · Pomimo, i¿ Linux jest do¶æ podobny do SunOS-a jako serwer bootp/tftp, to jednak przyda³by siê przyk³ad wziêtyz Linux-a. · Odnowienie tego dokumentu w zwi±zku z bie¿±c± wersja pakietu etherboot. · Pokazaæ ró¿nice miêdzy za³atanym j±drem z nfs-root w wersji 1.2.13 i najnowsz± wersj± j±dra 1.3.x, która ma w sobie ³atê nfs-root. · Trzeba wypróbowaæ inne karty ni¿ wd8013. · Do³±czyæ informacje na temat konfiguracji _b_o_o_t_p_c, klienta bootp dla Linux-a, ¿eby ustawiæ poprawn± tablicê rutingu. · Literówki i inne b³êdy: zg³aszaj je do buci@math.klte.hu Dziêkujê. 88..22.. OOdd tt³³uummaacczzaa.. Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne, sk³adniowe, techniczne to pisz do mnie: B.Maruszewski@zsmeie.torun.pl Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem ftp.ippt.gov.pl/pub/Linux/JTZ/ Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S± tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej. Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij list o tre¶ci subscribe jtz Imiê Nazwisko na adres listproc@ippt.gov.pl Zmiany wprowadzone przeze mnie do tego dokumentu to polskie odno¶niki do serwerów ftp i WWW.