Stacja robocza z głównym systemem plików z sieci.

Autor: Ofer Maor, ofer@hadar.co.il
v3, 5 Grudnia 1996
Wersja polska: Bartosz Maruszewski B.Maruszewski@zsmeie.torun.pl
v1.02, 26 Lipca 1997


Celem tego dokumentu jest wyjaśnienie jak stworzyæ główne katalogi na serwerze, który obsługuje klientów z montowanym głównym systemem plików. Najnowszą wersjê oryginału możesz znaleźæ pod adresem www.hadar.co.il. Dokument ten został napisany w standardzie ISO-8859-2. Odnośnie nowszych wersji tłumaczenia zobacz sekcjê Od tłumacza.

1. Prawa autorskie.

Prawa autorskie należą do Ofera Maora < ofer@hadar.co.il>.

O ile nie stwierdza siê inaczej, dokumenty HOWTO są chronione prawami autorskimi ich autorów. Mogą one byæ rozprowadzane w całości lub w czêści, w jakiejkolwiek postaci fizycznej czy elektronicznej tak długo, dopóki znajduje siê w nich ta wzmianka. Dystrybucja komercyjna jest dozwolona, a nawet zachêca siê do niej; chociaż autor chciałby byæ poinformowany o takowej.

Wszelkie tłumaczenia, prace pochodne, prace zebrane zawierające dokumenty HOWTO muszą zawieraæ tê notatkê o prawach autorskich. Oznacza to, że nie możesz stworzyæ pracy pochodzącej z HOWTO i nałożyæ na jej dystrybucjê dodatkowych ograniczeñ. Wyjątki od tej zasady mogą byæ uczynione pod pewnymi warunkami; skontaktuj siê z koordynatorem programu Linux HOWTO pod niżej podanym adresem.

Krótko mówiąc, chcemy promowaæ szerzenie tych dokumentów przez wszelkie dostêpne kanały. Chcielibyśmy także utrzymaæ prawa autorskie nałożone na te dokumenty, i byæ powiadomieni o planach dotyczących redystrybucji HOWTO.

Jeśli masz jakieś pytania, skontaktuj siê z Oferem Maorem pod adresem <ofer@hadar.co.il> - autorem tego dokumentu, albo Gregiem Hankinsem - koordynatorem projektu Linux HOWTO pod adresem <gregh@sunsite.unc.edu>.

Jeśli masz coś do dodania, skontaktuj siê proszê z autorem ( Ofer Maor <ofer@hadar.co.il>). Szczególnie mile widziane są informacje o pojawieniu siê nowszych narzêdzi.

1.1 Podziêkowania.

Chciałbym wyraziæ podziêkowania autorowi NFS-Root Howto, Andreasowi Kostyrce (htmlurl url="mailto:andreas@medman.ag.or.at" name="andreas@medman.ag.or.at"). Jego dokument pomógł mi w pierwszych krokach przy tworzeniu stacji bezdyskowych. Moje mini-howto nie próbuje w żaden sposób zamieniæ jego pracy, ale rozszerzyæ ją posługując siê moimi doświadczeniami.

Chciałbym także podziêkowaæ Markowi Kushinsky (htmlurl url="mailto:mark026@ibm.net" name="mark026@ibm.net") za "wypolerowanie" stylu i sprawdzenie poprawności jêzykowej tego Howto, co znacznie poprawiło jego czytelnośæ.

2. Przedmowa.

Dokument ten został napisany, aby pomagaæ ludziom, którzy chcą używaæ montowania głównego systemu plików z sieci, żeby stworzyæ katalogi klienta. Zauważ, że jest wiele sposobów na zrobienie tego, zależnie od twoich potrzeb i intencji. Jeśli klienci są indywidualni a każdy z nich ma własnych użytkowników i administratora konieczne bêdzie, aby znaczące katalogi klienta nie były współdzielone z innymi klientami. Z drugiej strony, jeśli klient jest przeznaczony dla wielu użytkowników i wszystkie są administrowane przez tê samą osobê (na przykład, klasa komputerowa), tyle plików ile siê tylko da musi byæ wspołdzielone, aby uczyniæ zarządzanie prostszym. Dokument ten skupi siê na tym drugim zagadnieniu.

2.1 Przegląd ogólny.

Podczas tworzenia katalogu głównego dla klienta oraz prób limitowania do minimum rozmiaru tego katalogu, głównie skupiamy siê na tym, które pliki możemy współdzieliæ albo montowaæ z serwera. W tym Howto bêdê zalecał konfiguracjê klienta na podstawie moich doświadczeñ. Ale zanim zaczniemy zapamiêtaj:

3. Tworzenie głównego katalogu klienta.

3.1 Tworzenie drzewa katalogów.

Przede wszystkim musisz stworzyæ strukturê katalogów. Ja stworzyłem wszystkie katalogi w /clients/hostname i bêdê używał tego katalogu do przykładów. Chociaż jeśli chcesz, to możesz sobie zmieniæ ten katalog na inny. Pierwszym krokiem jest zrobienie odpowiednich katalogów. Powinny to byæ nastêpujące:

    bin, dev, etc, home, lib, mnt, proc, sbin, server, tmp, usr, var

i wszelkie inne katalogi jakie chcesz mieæ na stacji.

Katalogi local, proc i dev bêdą użyte oddzielnie dla każdej stacji, a reszta bêdzie współdzielona.

3.2 Tworzenie minimalnego systemu plików potrzebnego do startu.

Tworzenie katalogu dev.

Właściwie katalog dev może byæ współdzielony, ale lepiej jeśli nie jest. Zawartośæ tego katalogu możesz stworzyæ odpowiednim skryptem, chcociaż prościej jest go po prostu skopiowaæ z serwera:


     cp -a /dev /clients/hostname

Musisz pamiêtaæ, że /dev/mouse, /dev/cdrom i /dev/modem są symbolicznymi dowiązaniami to właściwych urządzeñ, i dlatego powinieneś siê upewniæ, że wskazują one na poprawne urządzenia zgodnie ze sprzêtem w stacji.

Kopiowanie potrzebnych binariów.

Pomimo, iż montujemy wszystko z serwera jest pewna minimalna ilośæ plików, które musimy skopiowaæ do każdego klienta. Przede wszystkim potrzebujemy init-a, nasz system nie bêdzie w stanie uruchomiæ czegokolwiek przed uruchomieniem init-a (czego autor doświadczył na własnej skórze ;) ). Tak wiêc najpierw skopiuj /sbin/init do katalogu sbin klienta, potem skopiuj /bin/sh do katalogu bin klienta, żeby skrypt rc.S mógł siê wykonaæ. Żeby wszystko zamontowaæ potrzebujesz także programu mount - skopiuj go do katalogu sbin klienta. To jest zupełne minimum zakładając, że pierwszą linijką w rc.S jest

      mount -av

Zalecam jednak skopiowanie jeszcze kilku plików: update, ls, rm, cp oraz umount, tak żebyś miał podstawowe narzêdzia w razie gdyby klientowi nie powiodło siê montowanie. Jeśli zostawisz liniê właczającą swap przed linią montującą katalogi, to musisz także skopiowaæ program swapon.

Ponieważ wiêkszośæ z tych programów jest dynamicznie łączona z bibliotekami, bêdziesz też potrzebował sporej czêści katalogu /lib:


    cp -a /lib/ld.* /lib/libc.* /lib/libcursses.* /client/hostname/lib

Rozważ też możliowośæ stałego dowiązania zamiast kopiowania. Przeczytaj mój komentarz na ten temat w sekcji Przegląd ogólny.

Zauważ, że powyższe informacje zakładają, że parametry sieciowe zostały przekazane do jądra podczas startu. Jeśli masz zamiar użyæ RARP lub BOOTP, bêdziesz także potrzebował odpowiednich binariów.

Ogólnie potrzebujesz minimum te programy, które pozwolą ci skonfigurowaæ sieæ i uruchomiæ skrypt rc.S do momentu zamontowania wszystkich katalogów z serwera.

Katalog var.

W wiêkszości przypadków katalog var powinien byæ osobny dla każdego klienta. Chociaż wiele danych może byæ współdzielonych. Stwórz w katalogu głównym stacji katalog var. Zamontujemy tam katalog var z serwera. Aby stworzyæ katalog var napisz:


    cp -a /var /clients/hostname/

Teraz możesz wybraæ co chcesz współdzieliæ, a co chcesz mieæ osobne dla każdego klienta. Każdy plik/katalog, który chcesz współdzieliæ usuñ i stwórz symboliczne dołączenie do /serwer/var. Zauważ, że musisz dołączyæ go albo do katalogu /serwer/var albo do ../serwer/var, ale NIE do /clients/hostname/serwer/var ponieważ nie bêdzie to działało kiedy zmieni siê katalog główny.

Ogólnie polecałbym oddzieliæ katalogi /var/run, /var/lock, /var/spool, oraz /var/log.

Reszta katalogów.

3.3 Tworzenie katalogu etc oraz konfiguracja klienta.

Zapamiêtaj - sekcja ta odnosi siê do tworzenia katalogu etc, który w wiêkszości przypadków jest współdzielony miêdzy klientami. Jeśli twoi klienci mają osobnych administratorów, najlepiej zrobiæ osobne katalogi etc dla każdego klienta.

Tworzenie katalogu dla wszystkich klientów.

Pomimo, iż oddzielamy katalogi etc, to i tak wiêkszą czêśæ stamtąd chcemy współdzieliæ. Ogólnie sądzê, że współdzielenie katalogu etc z serwerem nie jest dobrym pomysłem, dlatego zalecam stworzenie katalogu /clients/etc, w którym bêdą przechowywane informacje dla klientów. Na początek po prostu skopiuj katalog etc serwera do katalogu dla klientów.

Powinieneś dodaæ do tego katalogu wszystkie pliki konfiguracyjne nie związane z konkretnym komputerem, np.: motd, issue itp., ale nie specyficzne dla komputera (fstab czy inittab).

Najważniejsze zmiany bêdą w katalogu rc.d. Najpierw powinieneś zmieniæ rc.inet1, tak aby odzwierciedlał twoją lokalną sytuacjê. Ja przekazujê parametry sieciowe do jądra podczas startu, dlatego wyrzuciłem prawie wszystko z tego pliku. Jedynymi poleceniami jakie tam zostawiłem, to ifconfig i route konfigurujące urządzenie loopback (localhost). Jeśli używasz RARP-a albo BOOTP, to bêdziesz musiał je stosowanie zrobiæ.

Po drugie powinieneś wyedytowaæ swój plik rc.S. Najpierw wyrzuæ stamtąd wszystko co dotyczy sprawdzania dysku (polecenia fsck) ponieważ bêdzie to robione przy starcie serwera. Potem powinieneś znaleźæ liniê, która montuje twoje katalogi; powinna wyglądaæ mniej wiêcej tak:

      mount -avt nonfs

Parametr -t nonfs jest dlatego, że normalne stacje robocze najpierw wykonują skrypt rc.S a potem rc.inet1, aby skonfigurowaæ Ethernet. Ponieważ to spowodowałoby, że żaden system NFS nie zamontowałby sie linia ta powinna zostaæ usuniêta. Zmieñ ją na:

     mount -av

Jeśli musisz uruchomiæ RARP/BOOTP, aby skonfigurowaæ swoją sieæ, zrób to w rc.S (albo wywołaj odpowiedni skrypt z rc.S) przed montowaniem i upewnij siê, ze twoje fizyczne katalogu bin i sbin zawierają potrzebne programy.

Po poleceniu mount -av bêdziesz miał działający system plików. Stwórz ogólny plik fstab, tak żebyś mógł go skopiowaæ dla każdego klienta. Powinien on wyglądaæ mniej wiêcej tak:

    server/nfs                                          default  1 1
    server:/bin                 /bin            nfs     default  1 1
    server:/usr                 /usr            nfs     default  1 1
    server:/sbin                /sbin           nfs     default  1 1
    server:/home                /home           nfs     default  1 1 
    server:/lib                 /lib            nfs     default  1 1
    server:/clients/etc         /server/etc     nfs     default  1 1
    server:/clients/var         /server/var     nfs     default  1 1
    none                        /proc           proc    default  1 1

Upewnij siê także, że plik /etc/exports na serwerze wygląda tak:

    /clients/hostname   hostname.domainname(rw,no_root_squash)
    /clients/etc        hostname.domainname(ro,no_root_squash)
    /clients/var        hostname.domainname(ro,no_root_squash)
    /usr                hostname.domainname(ro,no_root_squash)
    /sbin               hostname.domainname(ro,no_root_squash)
    /bin                hostname.domainname(ro,no_root_squash)
    /lib                hostname.domainname(ro,no_root_squash)
    /home               hostname.domainname(rw,no_root_squash)

We wszystkich liniach oprócz pierwszej powinieneś wstawiæ jakąś maskê, do której pasują wszystkie komputery bêdące klientami (np. pc*.twoja.domena). Sugerujê, żeby wiêkszośæ katalogów była tylko-do-odczytu, ale to zależy od ciebie. Parametr no_root_squash spowoduje, że użytkownicy "root" na kliencie bêdą także mieli przywileje "root-a" na serwerze. Sprawdź man exports. Jeśli chcesz, żeby użytkownicy na klientach mogli uruchamiaæ passwd , to sprawdź czy katalog etc jest zamontowany z prawem zapisu, chociaż osobiście tego nie polecam.

Zauważ jeszcze jedno dotyczące skryptu rc.S. Domyślnie w Slackware pliki /etc/issue i /etc/motd są tworzone od nowa po każdym resetwoaniu serwera. Jeśli pliki te są montowane bez zapisu, to funkcja ta MUSI zostaæ wyłączona a ja zalecałbym wyłączyæ ją na zapas.

I ostatnia sprawa. Jeśli chcesz mieæ tê samą bazê użytkowników na kliencie i na serwerze, to musisz wybraæ miêdzy:

  1. używaniem NIS-a (Yellow Pages, sprawdź NIS-HOWTO, a potem każdy klient bêdzie miał osobne pliki /etc/passwd i /etc/group jak je otrzyma od serwera.
  2. w wiêkszośæi wypadków, proste symboliczne dołączenie wystarczy. Dlatego bêdziesz musiał, albo dołączyæ na stałe /clients/etc/passwd do /etc/passwd, albo jeśli wolisz dołączenia symboliczne to dołączyæ /etc/passwd do /clients/etc/passwd (nie w drugą stronê, ponieważ klienci nie montują katalogu etc serwera). To samo dla /etc/group.

Tworzenie katalogu etc dla klienta.

Ogólnie, wiêkszośæ plików w katalogu etc klienta powinna byæ dołączona symbolicznie do plików z katalogu etc serwera. Ale niektóre z nich są różne dla każdej maszyny, a niektóre po prostu muszą siê tam znajdowaæ kiedy ładuje siê jądro. Oto minimalna zawartośæ katalogu etc:

    resolv.conf
    hosts
    inittab
    rc.d/rc.S
    fstab

Ponieważ te piêæ plików może byæ identyczne dla każdego klienta, możesz je skopiowaæ, albo dołączyæ na stałe. Chociaż zaleca siê żeby pliki rc.S i fstab były osobne dla każdego klienta. Bêdziesz także potrzebował osobnego pliku HOSTNAME dla każdego klienta. Osobiście uważam, że cały podkatalog rc.d powinien byæ osobny dla każdego klienta ponieważ konfiguracja i sprzêt mogą siê różniæ.

Dla każdego klienta dodaj do fstab odpowiednią liniê dla swapa:

    /dev/swap_prttn                     swap    swap    default  1 1

Reszta plików z etc klienta może byæ albo dołączona na stałe do plików /clients/etc/* albo podłączona symbolicznie do /serwer/etc (który jest punktem do montowaina dla /clients/etc).

Upewnij siê, że twój klient umie poprawnie rozwiązywaæ nazwy kanoniczne poprzez named albo etc/hosts. Nie jest złym pomysłem trzymanie IP serwera w pliku etc/hosts, zamiast liczyæ na rozwiązywanie nazw. Jeśli bêdziesz liczyæ tylko na to, to problem z named-em spowoduje, że twoi klienci nie bêdą mogli wystartowaæ.

3.4 Startowanie.

Teraz wszystko, co musisz zrobiæ to zrestartowaæ komputer, trzymaæ kciuki i mieæ nadziejê, że wszystko pójdzie gładko. :)

4. Tworzenie wiêkszej ilości klientów.

Jeśli przestrzegałeś moich instrukcji, to powinno to byæ proste:

    cd /clients/
    cp -a hostname1 hostname2

a potem upewnij siê, że sprawdziłeś to:

Powodzenia ...

4.1 Od tłumacza.

Tłumaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

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 w katalogu /pub/Linux/JTZ/.

Przetłumaczone przeze mnie dokumenty znajdują siê także na mojej stronie WWW. 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