Jak założyć główny system plików przez NFS.

Autor: Andreas Kostyrka, andreas@ag.or.at
v8, 8 Sierpnia 1997
Wersja polska: Bartosz Maruszewski B.Maruszewski@zsmeie.torun.pl
v1.1, 4 Listopada 1997


Dokument ten próbuje wyjaśnić jak ustawić bezdyskową stację roboczą, która montuje swój główny system plików poprzez NFS na Linux-ie. Dokument ten został napisany w standardzie ISO-8859-2. Najnowsza wersja oryginału jest dostępna na SUNSite Polska. Odnośnie nowszych wersji tłumaczenia zobacz sekcję Od tłumacza.

1. Prawa autorskie.

Prawa autorskie należą do Andreasa Kostyrki (e9207884@student.tu(-)wien.ac.at lub andreas@ag.or.at)

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 Andreasem Kostyrką pod adresem <andreas@ag.or.at> - autorem tego dokumentu, albo Gregiem Hankinsem - koordynatorem projektu Linux HOWTO pod adresem <gregh@sunsite.unc.edu>.

1.1 Współpracownicy.

2. Przegląd ogólny.

Ogólnie mówiąc są dwa następujące problemy dla stacji roboczych:

Bieżąca implementacja NFSROOT w jądrze Linux-a (dotyczy 1.3.7x) pozwala na następujące rozwiązania:

Przed rozpoczęciem ustawiania środowiska bezdyskowego, powinieneś zdecydować czy będziesz startował przez LILO, czy przez LOADLIN. Zaletą tego jest elastyczność, wadą natomiast prędkość. Startowanie przez LILO jest szybsze.

3. Ustawienia na serwerze.

3.1 Kompilacja jądra.

Dobrym pomysłem będzie wkompilowanie obsługi RARP w jądro. Musisz ją mieć jeśli będziesz startował bez parametrów. Z drugiej strony, nie pomoże ci to, jeśli serwer jest w innej podsieci niż klient.

Jądro na stację musi mieć następujące elemnty wkompilowane w jądro:

Jeśli stacja robocza będzie startowana bez parametrów, musisz także ustawić urządzenie głównego systemu plików na 0:255. Robi się to poprzez utworzenie urządzenia w katalogu /dev poleceniem


mknod /dev/nfsroot b 0 255

Po utworzeniu takiego urządzenia możesz ustawić urządzenie głównego systemu plików w jądrze poleceniem


rdev <jądro> /dev/nfsroot

3.2 Tworzenie głównego systemu plików.

Kopiowanie systemu plików.

UWAGA: instrukcja ta może działać u ciebie, ale wcale nie musi być sensowna w środowisku produkcyjnym. Lepszy sposób ustawienia głównego systemu plików na stacji znajduje się w NFS-Root-Client

Jak już zdecydowałeś, gdzie umieścisz główny system plików, stwórz go np. poleceniem


mkdir -p <katalog>
tar cClf / - | tar xpCf <katalog> -

Jeśli startujesz jądro bez LILO, wtedy katalogiem głównym musi być /tftpboot/<IP-adres>. Jeśli ci się to nie podoba, możesz go zmienić w pliku Makefile w żródłach jądra, poszukaj linii podobnej do tej:

NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\""

Jeśli to zmienisz musisz przekompilować jądro.

Zmiany w głównym systemie plików

Teraz wyrzuć niepotrzebne pliki i sprawdź skrypty w /etc/rc.d. Kilka ważnych wskazówek:

Exportowanie systemu plików.

Wyeksportuj główny katalog dla stacji roboczej. Szczegóły są w podręczniku systemowym (man exports). Najprzypuszczalniej po zmianach będziesz musiał zrestartować nfsd i mountd. W dystrybucji RedHat można to łatwo zrobić:


/etc/rc.d/init.d/nfs stop
/etc/rc.d/init.d/nfs start

Ustawienie RARP.

Ustaw gdzieś na sieci RARP. Jeśli startujesz stację bez parametru nfsroot, to serwer RARP musi być serwerem NFS. Aby to zrobić potrzebujesz jądra z obsługą RARP.

Robi się to poleceniem


/sbin/rarp -s <adr_ip> <adr_sprzętowy>

gdzie

adr_ip

jest adresem IP stacji roboczej a

adr_sprzętowy

jest adresem ethernet-owym karty sieciowej stacji roboczej.

Przykład: /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12

Możesz także użyć nazwy symbolicznej zamiast adresu IP, jeśli serwer może odszukać sobie adres IP. (/etc/hosts lub DNS).

Ustawianie BOOTP

Aby ustawić BOOTP musisz wyedytować plik /etc/bootptab. Przeczytaj strony podręcznika systemowego na temat bootpd oraz bootptab.

Odszukiwanie adresu sprzętowego.

Nie znam adresu sprzętowego !!! Jak mam go odszukać ?

4. Startowanie stacji roboczej.

4.1 Używanie "boot rom-u".

Ponieważ samemu jeszcze tego nie używałem mogę ci dać tylko nastepujące wskazówki (ukłony w stronę Christiana Leutloffa <leutloff@sundancer.tng.oche.de>):

4.2 Używanie dysku z surowym jądrem.

Jeśli wyeksportowałeś główny system plików z poprawną domyślną nazwą oraz twój serwer NFS jest także serwerem RARP (z czego wynika, że obie maszyny są w tej samej podsieci), wtedy możesz wystartować jądro przez proste "zrzucenie" go na dysk za pomocą polecenia cat. (Musisz ustawić urządzenie głównego systemu plików w jądrze na 0:255) Przy takich ustawieniach, katalog główny na serwerze jest w /tftpboot/adres-IP. (wartość ta może być zmieniona przy kompilacji jądra)

4.3 Używanie "bootloader-a" i RARP-a.

Przekaż do jądra podczas startu wszystkie potrzebne parametry oraz dodaj nfsroot=<serwer-IP>:</ścieżka/do/zamont.> gdzie serwer-IP jest adresem IP serwera NFS a /ścieżka/do/zamont. jest ścieżką do głównego katalogu.

Wskazówki:

4.4 Używanie "bootloader-a" bez RARP-a.

Dodatkowo oprócz parametru nfsroot użyj jeszcze parametru nfsaddrs=<st-IP>:<srw-IP>:<gw-IP>:<netm-IP>:<nazwa>. Jądro ustawi interfejs eth0 z podanymi parametrami:

st-IP

adres IP stacji roboczej

srw-IP

adres IP serwera NFS

gw-IP

wrota (gateway)

netm-IP

maska podsieci

nazwa

nazwa stacji

5. Znane problemy.

5.1 /sbin/init nie startuje.

Popularnym problemem jest fakt, że niektóre (przynajmniej) najnowsze dystrybucje mają program /sbin/init łączony dynamicznie. Musisz więc udostępnić odpowiednie biblioteki w katalogu /lib u klienta. Prostą rzeczą jaką można zrobić, to zamiana /sbin/init (u klienta) na statycznie łączony program typu ``Hello World''. W ten sposób można sprawdzić czy mamy do czynienia rzeczywiście z problemem z programem łączonym dynamicznie czy może z czymś prostszym.

5.2 Problemy z /dev.

Jeśli przy starcie pojawiają ci się jakieś pokręcone komunikaty o "tty", to powinieneś uruchomić skrypt MAKEDEV u klienta w katalogu /dev. Chodzą słuchy, że nie działa on na systemach serwerowych, które używają liczb 64-bitowych do numerowania urządzeń. Jeśli zdarzy ci się taki problem, to napisz do mnie proszę na jakim systemie ci się to stało. Potencjalnym rozwiązaniem powinno być utworzenie małego ramdysku z katalogiem /dev i każdorazowa reinstalacja plików urządzeń.

6. Inne tematy.

6.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.ippt.gov.pl/~ppogorze/Linux/JTZ/

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