                   Diskless X Server: "how to" vodic

  Jerry Kendall

       <jerry@kcis.com>
     

   Copyright (c) 1996 Jerry Kendall

   28. decembar 1996.

   Uz pomoc nekih prijatelja sa FreeBSD-hackers liste, napravio sam
   diskless X terminal. Pravljenje X terminala je prvo zahtevalo da
   se napravi sistem bez diska sa minimalnim skupom alata koji se
   mountuje preko NFSa. Isti postupak je koriscen da se naprave 2
   odvojena diskless sistema. Prvi je altair.kcis.com, X terminal bez
   diska koji radi na mom starom 386DX-40 racunaru. Ima hard disk od
   340 megabajta, ali nisam zeleo da ga menjam. Tako da se masina
   bootuje sa antares.kcis.com masine, preko Etherneta. Drugi sistem
   je 486DX2-66. Napravio sam diskless FreeBSD instalaciju
   (kompletnu) koja ne koristi lokalni disk. U ovom slucaju server je
   Sun 670MP pod SunOSom 4.1.3. Ista konfiguracija je koriscena za
   obe masine.

   Siguran sam da ima dosta stvari koje treba dodati ovom dokumentu.
   Molim vas, posaljite mi sve komentare.

     --------------------------------------------------------------

1. Kreiranje boot diskete (na diskless sistemu)

   Posto mrezni boot loaderi nece da rade sa nekim TSR MS-DOS
   programima, najbolje je napraviti posebnu boot disketu, ili, ako
   mozete, napraviti MS-DOS meni koji ce (pomocu
   config.sys/autoexec.bat datoteka) upitati koju konfiguraciju
   zelimo da ucitamo pri startu sistema. Ovo potonje je metod koji ja
   koristim i radi sjajno. Evo mog MS-DOS (6.x) menija.

   Primer 1. config.sys

 [menu]
 menuitem=normal, normal
 menuitem=unix, unix
 [normal]
 ....
 normal config.sys stuff
 ...
 [unix]

   Primer 2. autoexec.bat

 @ECHO OFF
 goto %config%

 :normal
 ...
 normal autoexec.bat stuff
 ...
 goto end

 :unix
 cd \netboot
 nb8390.com

 :end

     --------------------------------------------------------------

2. Instalacija programa za boot preko mreze (na serveru)

   Prevedite 'net-boot' programe koji se nalaze u
   /usr/src/sys/i386/boot/netboot. Trebalo bi da procitate komentare
   na pocetku Makefile fajla. Podesite po potrebi. Napravite rezervnu
   kopiju originala za svaki slucaj. Kad se prevod/enje zavrsi,
   trebalo bi da imate 2 MS-DOS izvrsna fajla, nb8390.com i
   nb3c509.com. Jedan od ova dva programa je ono sto cete pokrenuti
   na diskless masini. Sluzice da ucita kernel sa boot servera. Sada
   stavite oba programa na MS-DOS boot disketu koju ste ranije
   napravili.

     --------------------------------------------------------------

3. Koji program pokrenuti? (na diskless masini)

   Ako znate koji set cipova vasa Ethernet kartica koristi, ovaj
   korak je lak. Ako imate NS8390 set cipova, ili neki baziran na
   NS8390 cipu, uzmite nb8390.com. Ako imate karticu baziranu na 3Com
   509 cipu, uzmite nb3C509.com boot program. Ako niste sigurni kakvu
   karticu imate, pokusajte sa jednim, ako prijavi "No adapter
   found", pokusajte sa onim drugim. Ako ovo ne upali, moracete sami
   da se snad/ete.

     --------------------------------------------------------------

4. Podizanje sistema preko mreze

   Podignite diskless sistem bez config.sys/autoexec.bat fajlova.
   Pokusajte da pokrenete boot program za vasu mreznu karticu.

   Moja mrezna kartica radi u WD8013 16bitnom modu, pa ja koristim
   nb8390.com.

 C:> cd \netboot
 C:> nb8390

 Boot from Network (Y/N) ?  Y

 BOOTP/TFTP/NFS bootstrap loader     ESC for menu

 Searching for adapter..
 WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66

 Searching for server...

   U ovom trenutku, moj diskless sistem pokusava da nad/e masinu koja
   ce sluziti kao boot server. Prepisite addr liniju u gornjem
   listingu, trebace vam taj broj kasnije. Resetujte diskless masinu
   i podesite config.sys i autoexec.bat da rade ovaj posao
   automatski. Na primer pomocu menija. Ako koristite nb3c509.com
   umesto nb8390.com, listing ce biti isti kao gornji. Ako ste dobili
   poruku "No adapter found" kod Searching for adapter... poruke,
   proverite da li ste dobro podesili opcije u Makefile-u.

     --------------------------------------------------------------

5. Omogucite sistemima da se podignu preko mreze (na serveru)

   Proverite da li su tftp i bootps podeseni u /etc/inetd.conf fajlu.
   Evo mog podesavanja:

 tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd      tftpd /tftpboot
 #
 # Additions by who ever you are
 bootps  dgram  udp  wait  root  /usr/libexec/bootpd bootpd /etc/bootptab

   Ako promenite nesto u /etc/inetd.conf fajlu, posaljite HUP signal
   inetd demonu. Da bi ovo ucinili, nad/ite ID procesa inetd sa ps
   -ax | grep inetd | grep -v grep. Zatim mu posaljite HUP signal sa
   kill -HUP <pid>. Ovo ce naterati inetd da ponovo procita svoj
   konfiguracioni fajl.

   Da li ste zabelezili addr liniju iz ispisa boot loadera na masini
   bez diska? Sada ce vam biti potrebna.

   Dodajte sledece u /etc/bootptab (mozda cete morati da kreirate
   fajl).

 altair:\
         :ht=ether:\
         :ha=004001432666:\
         :sm=255.255.255.0:\
         :hn:\
         :ds=199.246.76.1:\
         :ip=199.246.76.2:\
         :gw=199.246.76.1:\
         :vm=rfc1048:

   Evo znacenja ovih redova:

   altair           ime sistema bez diska, bez imena domena.          
   ht=ether         tip hardvera, u ovom slucaju 'ethernet'.          
   ha=004001432666  hardverska adresa (broj koji ste zabelezili).     
   sm=255.255.255.0 subnet maska.                                     
   hn               govori serveru da treba klijentu da posalje       
                    njegov hostname.                                  
   ds=199.246.76.1  govori klijentu gde je domain server.             
   ip=199.246.76.2  govori klijentu koja mu je IP adresa.             
   gw=199.246.76.1  govori klijentu koji je podrazumevani gateway.    
   vm=...           samo ostavite ovo kako jeste.                     

     Primedba: Vodite racuna da upisete IP adrese ispravno, gornji
     primer je moja konfiguracija.

   Kreirajte direktorijum '/tftpboot' na serveru, koji ce sadrzati
   konfiguracione fajlove za sisteme bez diska koje ce server
   opsluzivati. Ovi fajlovi ce nositi ime 'cfg.<ip>' gde je <ip> IP
   adresa diskless sistema. Konfiguracioni fajl za 'altair' je
   /tftpboot/cfg.199.246.76.2. Njegov sadrzaj je:

 rootfs 199.246.76.1:/DiskLess/rootfs/altair
 hostname altair.kcis.com

   Red hostname altair.kcis.com govori racunaru bez diska njegovo
   puno ime domena.

   Red rootfs 199.246.76.1:/DiskLess/rootfs/altair govori racunaru
   bez diska gde mu se nalazi root fajlsistem koji ce mountovati
   preko NFSa.

     Primedba: NFS root fajlsistem ce biti mountovan kao read only.

   Hijerarhija za sistem bez diska moze biti re-mountovana da bi se
   dozvolilo pisanje po fajl sistemu, ukoliko je to potrebno.

   Ja koristim moj stari 386DX-40 kao posveceni X terminal.

   Hijerarhija za 'altair' izgleda ovako:

   /
   /bin
   /etc
   /tmp
   /sbin
   /dev
   /dev/fd
   /usr
   /var
   /var/run

   Evo i liste samih fajlova:

 -r-xr-xr-x  1 root  wheel  779984 Dec 11 23:44 ./kernel
 -r-xr-xr-x  1 root    bin  299008 Dec 12 00:22 ./bin/sh
 -rw-r--r--  1 root  wheel     499 Dec 15 15:54 ./etc/rc
 -rw-r--r--  1 root  wheel    1411 Dec 11 23:19 ./etc/ttys
 -rw-r--r--  1 root  wheel     157 Dec 15 15:42 ./etc/hosts
 -rw-r--r--  1 root    bin    1569 Dec 15 15:26 ./etc/XF86Config.altair
 -r-x------  1 bin     bin  151552 Jun 10  1995 ./sbin/init
 -r-xr-xr-x  1 bin     bin  176128 Jun 10  1995 ./sbin/ifconfig
 -r-xr-xr-x  1 bin     bin  110592 Jun 10  1995 ./sbin/mount_nfs
 -r-xr-xr-x  1 bin     bin  135168 Jun 10  1995 ./sbin/reboot
 -r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
 -r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
 -r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV

   Ne zaboravite da pokrenete MAKEDEV all u dev direktorijumu.

   Moj /etc/rc za altair izgleda ovako:

 #!/bin/sh
 #
 PATH=/bin:/
 export PATH
 #
 # configure the localhost
 /sbin/ifconfig lo0 127.0.0.1
 #
 # configure the ethernet card
 /sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
 #
 # mount the root filesystem via NFS
 /sbin/mount antares:/DiskLess/rootfs/altair /
 #
 # mount the /usr filesystem via NFS
 /sbin/mount antares:/DiskLess/usr /usr
 #
 /usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair >/dev/null 2>&1
 #
 # Reboot after X exits
 /sbin/reboot
 #
 # We blew up....
 exit 1

   Svi komentari su dobrodosli, kao i sva pitanja.

     --------------------------------------------------------------

           This, and other documents, can be downloaded from
                   ftp.FreeBSD.org/pub/FreeBSD/doc/.

 For questions about FreeBSD, read the documentation before contacting
                        <questions@FreeBSD.org>.
   For questions about this documentation, e-mail <doc@FreeBSD.org>.
