<!--
     The FreeBSD Documentation Project

     $FreeBSD: doc/en_US.ISO_8859-1/articles/diskless-x/article.sgml,v 1.4 2001/04/17 15:53:37 nik Exp $
-->

<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [

<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
]>

<article lang="sr">
  <articleinfo>
    <title>Diskless X Server: "how to" vodič</title>
    
    <authorgroup>
      <author>
	<firstname> Jerry</firstname>
	<surname>Kendall</surname>
	<affiliation>
	  <address>
	    <email>jerry@kcis.com</email>
	  </address>
	</affiliation>
      </author></authorgroup>
    
    <pubdate>28. decembar 1996.</pubdate>
    
    <copyright>
      <year>1996</year>
      <holder>Jerry Kendall</holder>
    </copyright>
    
    <abstract>
      <para>Uz pomoć 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 korišćen da se naprave 2
	odvojena diskless sistema. Prvi je <hostid role="fqdn">
	altair.kcis.com</hostid>, X terminal bez diska koji radi na mom
	starom 386DX-40 računaru. Ima hard disk od 340 megabajta, ali 
	nisam želeo da ga menjam. Tako da se mašina bootuje sa <hostid
	  role="fqdn">antares.kcis.com</hostid> mašine, preko Etherneta.
	Drugi sistem je 486DX2-66. Napravio sam diskless FreeBSD instalaciju
	(kompletnu) koja ne koristi lokalni disk. U ovom slučaju server je 
	Sun 670MP pod SunOSom 4.1.3. Ista konfiguracija je korišćena za
	obe mašine.</para>
      
      <para>Siguran sam da ima dosta stvari koje treba dodati ovom dokumentu.
        Molim vas, pošaljite mi sve komentare.</para>
    </abstract>
  </articleinfo>
  
  <sect1>
    <title>Kreiranje boot diskete (na diskless sistemu)</title>
    
    <para>Pošto mrežni boot loaderi neće da rade sa nekim TSR MS-DOS
      programima, najbolje je napraviti posebnu boot disketu, ili,
      ako možete, napraviti MS-DOS meni koji će (pomoću
      <filename>config.sys</filename>/<filename>autoexec.bat</filename>
      datoteka) upitati koju konfiguraciju želimo da učitamo pri startu
      sistema. Ovo potonje je metod koji ja koristim i radi sjajno. 
      Evo mog MS-DOS (6.x) menija.</para>
    
    <example>
      <title><filename>config.sys</filename></title>

      <programlisting>[menu]
menuitem=normal, normal
menuitem=unix, unix
[normal]
....
normal config.sys stuff
...
[unix]</programlisting>
    </example>

    <example>
      <title><filename>autoexec.bat</filename></title>

      <programlisting>@ECHO OFF
goto %config%

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

:unix
cd \netboot
nb8390.com

:end</programlisting>
    </example>
  </sect1>
  
  <sect1>
    <title>Instalacija programa za boot preko mreže (na serveru)</title>
    
    <para>Prevedite 'net-boot' programe koji se nalaze u
      <filename>/usr/src/sys/i386/boot/netboot</filename>.  Trebalo bi da
      pročitate komentare na početku <filename>Makefile</filename> fajla.
      Podesite po potrebi. Napravite rezervnu kopiju originala za svaki
      slučaj. Kad se prevođenje završi, trebalo bi da imate 2 MS-DOS
      izvršna fajla, <filename>nb8390.com</filename> i <filename>nb3c509.com</filename>.
      Jedan od ova dva programa je ono što ćete pokrenuti na diskless mašini.
      Služiće da učita kernel sa boot servera. Sada stavite oba programa na
      MS-DOS boot disketu koju ste ranije napravili.</para>
  </sect1>
  
  <sect1>
    <title>Koji program pokrenuti? (na diskless mašini)</title>
    
    <para>Ako znate koji set čipova vaša Ethernet kartica koristi, ovaj
      korak je lak. Ako imate NS8390 set čipova, ili neki baziran na NS8390 
      čipu, uzmite <filename>nb8390.com</filename>. Ako imate karticu baziranu
      na 3Com 509 čipu, uzmite <filename>nb3C509.com</filename> boot program.
      Ako niste sigurni kakvu karticu imate, pokušajte sa jednim, ako prijavi
      <errorname>No adapter found</errorname>, pokušajte sa onim drugim. Ako
      ovo ne upali, moraćete sami da se snađete.</para>
  </sect1>

  <sect1>
    <title>Podizanje sistema preko mreže</title>
    
    <para>Podignite diskless sistem bez config.sys/autoexec.bat fajlova.
      Pokušajte da pokrenete boot program za vašu mrežnu karticu.</para>

    <para>Moja mrežna kartica radi u WD8013 16bitnom modu, pa ja koristim
      <filename>nb8390.com</filename>.</para>
    
    <screen><prompt>C:&gt;</prompt> <userinput>cd \netboot</userinput>
<prompt>C:&gt</prompt> <userinput>nb8390</userinput>

<prompt>Boot from Network (Y/N) ?</prompt>  <userinput>Y</userinput>

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...</screen>

    <para>U ovom trenutku, moj diskless sistem pokušava da nađe mašinu koja
      će služiti kao boot server. Prepišite <literal>addr</literal> liniju
      u gornjem listingu, trebaće vam taj broj kasnije. Resetujte diskless
      mašinu i podesite <filename>config.sys</filename> i
      <filename>autoexec.bat</filename> da rade ovaj posao automatski. Na primer
      pomoću menija. Ako koristite <command>nb3c509.com</command> umesto
      <command>nb8390.com</command>, listing će biti isti kao gornji. Ako ste 
      dobili poruku <errorname>No adapter found</errorname> kod 
      <literal>Searching for adapter...</literal> poruke, proverite da li ste
      dobro podesili opcije u <filename>Makefile</filename>-u.</para>
  </sect1>
  
  <sect1>
    <title>Omogućite sistemima da se podignu preko mreže (na serveru)</title>
    
    <para>Proverite da li su tftp i bootps podešeni u <filename>/etc/inetd.conf</filename>
      fajlu. Evo mog podešavanja:</para>
    
    <programlisting>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</programlisting>
    
    <para>Ako promenite nešto u <filename>/etc/inetd.conf</filename> fajlu,
      pošaljite <literal>HUP</literal> signal inetd demonu. Da bi ovo učinili,
      nađite ID procesa inetd sa <command>ps -ax | grep inetd | grep -v
	grep</command>.  Zatim mu pošaljite HUP signal sa
	<command>kill -HUP &lt;pid&gt;</command>.  Ovo će naterati inetd
	da ponovo pročita svoj konfiguracioni fajl.</para>

    <para>Da li ste zabeležili <literal>addr</literal> liniju iz ispisa
      boot loadera na mašini bez diska? Sada će vam biti potrebna.</para>

    <para>Dodajte sledeće u <literal>/etc/bootptab</literal> (možda ćete morati
      da kreirate fajl).</para>

    <programlisting>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:</programlisting>
    
    <para>Evo značenja ovih redova:</para>

    <informaltable frame="none">
      <tgroup cols="2">
	<tbody>
	  <row>
	    <entry><literal>altair</literal></entry>
	    <entry>ime sistema bez diska, bez imena domena.</entry>
	  </row>

	  <row>
	    <entry><literal>ht=ether</literal></entry>
	    <entry>tip hardvera, u ovom slučaju 'ethernet'.</entry>
	  </row>

	  <row>
	    <entry><literal>ha=004001432666</literal></entry>
	    <entry>hardverska adresa (broj koji ste zabeležili).</entry>
	  </row>

	  <row>
	    <entry><literal>sm=255.255.255.0</literal></entry>
	    <entry>subnet maska.</entry>
	  </row>

	  <row>
	    <entry><literal>hn</literal></entry>
	    <entry>govori serveru da treba klijentu da pošalje
	      njegov hostname.</entry>
	  </row>

	  <row>
	    <entry><literal>ds=199.246.76.1</literal></entry>
	    <entry>govori klijentu gde je domain server.</entry>
	  </row>

	  <row>
	    <entry><literal>ip=199.246.76.2</literal></entry>
	    <entry>govori klijentu koja mu je IP adresa.</entry>
	  </row>

	  <row>
	    <entry><literal>gw=199.246.76.1</literal></entry>
	    <entry>govori klijentu koji je podrazumevani gateway.</entry>
	  </row>

	  <row>
	    <entry><literal>vm=...</literal></entry>
	    <entry>samo ostavite ovo kako jeste.</entry>
	  </row>
	</tbody>
      </tgroup>
    </informaltable>

    <note>
      <para>Vodite računa da upišete IP adrese ispravno, gornji primer je
	moja konfiguracija.</para>
    </note>

    <para>Kreirajte direktorijum '/tftpboot' na serveru, koji će sadržati
      konfiguracione fajlove za sisteme bez diska koje će server opsluživati.
      Ovi fajlovi će nositi ime 'cfg.&lt;ip&gt;' gde je &lt;ip&gt; IP adresa 
      diskless sistema. Konfiguracioni fajl za 'altair' je 
      /tftpboot/cfg.199.246.76.2.  Njegov sadržaj je:</para>

    <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair
hostname altair.kcis.com</programlisting>

    <para>Red <literal>hostname altair.kcis.com</literal> govori računaru
      bez diska njegovo puno ime domena.</para>

    <para>Red <literal>rootfs
	199.246.76.1:/DiskLess/rootfs/altair</literal> govori računaru bez
	diska gde mu se nalazi root fajlsistem koji će mountovati preko NFSa.
    </para>

    <note>
      <para>NFS root fajlsistem će biti mountovan kao <emphasis>read
	  only</emphasis>.</para>
    </note>
    
    <para>Hijerarhija za sistem bez diska može biti re-mountovana
      da bi se dozvolilo pisanje po fajl sistemu, ukoliko je to potrebno.
    </para>
    
    <para>Ja koristim moj stari 386DX-40 kao posvećeni X terminal.</para>

    <para>Hijerarhija za 'altair' izgleda ovako:</para>

    <literallayout>/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run</literallayout>

    <para>Evo i liste samih fajlova:</para>

    <screen>-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</screen>
    
    <para>Ne zaboravite da pokrenete <command>MAKEDEV all</command> u
      <filename>dev</filename> direktorijumu.</para>

    <para>Moj <filename>/etc/rc</filename> za <hostid>altair</hostid>
      izgleda ovako:</para>

<programlisting>#!/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</programlisting>

    <para>Svi komentari su dobrodošli, kao i sva pitanja.</para>
  </sect1>
</article>

<!-- 
     Local Variables:
     mode: sgml
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     End:
-->
