Copyright © 1996 Jerry Kendall
28. decembar 1996.
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 altair.kcis.com, 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 antares.kcis.com 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.
Siguran sam da ima dosta stvari koje treba dodati ovom dokumentu. Molim vas, pošaljite mi sve komentare.
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 config.sys/autoexec.bat 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.
Prevedite 'net-boot' programe koji se nalaze u /usr/src/sys/i386/boot/netboot. Trebalo bi da pročitate komentare na početku Makefile 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, nb8390.com i nb3c509.com. 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.
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 nb8390.com. Ako imate karticu baziranu na 3Com 509 čipu, uzmite nb3C509.com boot program. Ako niste sigurni kakvu karticu imate, pokušajte sa jednim, ako prijavi “No adapter found”, pokušajte sa onim drugim. Ako ovo ne upali, moraćete sami da se snađete.
Podignite diskless sistem bez config.sys/autoexec.bat fajlova. Pokušajte da pokrenete boot program za vašu mrežnu karticu.
Moja mrežna 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 pokušava da nađe mašinu koja će služiti kao boot server. Prepišite addr liniju u gornjem listingu, trebaće vam taj broj kasnije. Resetujte diskless mašinu i podesite config.sys i autoexec.bat da rade ovaj posao automatski. Na primer pomoću menija. Ako koristite nb3c509.com umesto nb8390.com, listing će 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.
Proverite da li su tftp i bootps podešeni u /etc/inetd.conf fajlu. Evo mog podešavanja:
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 nešto u /etc/inetd.conf fajlu, pošaljite HUP signal inetd demonu. Da bi ovo učinili, nađite ID procesa inetd sa ps -ax | grep inetd | grep -v grep. Zatim mu pošaljite HUP signal sa kill -HUP <pid>. Ovo će naterati inetd da ponovo pročita svoj konfiguracioni fajl.
Da li ste zabeležili addr liniju iz ispisa boot loadera na mašini bez diska? Sada će vam biti potrebna.
Dodajte sledeće u /etc/bootptab (možda ćete 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 značenja ovih redova:
altair | ime sistema bez diska, bez imena domena. |
ht=ether | tip hardvera, u ovom slučaju 'ethernet'. |
ha=004001432666 | hardverska adresa (broj koji ste zabeležili). |
sm=255.255.255.0 | subnet maska. |
hn | govori serveru da treba klijentu da pošalje 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. |
Примедба: Vodite računa da upišete IP adrese ispravno, gornji primer je moja konfiguracija.
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.<ip>' gde je <ip> IP adresa diskless sistema. Konfiguracioni fajl za 'altair' je /tftpboot/cfg.199.246.76.2. Njegov sadržaj je:
rootfs 199.246.76.1:/DiskLess/rootfs/altair hostname altair.kcis.com
Red hostname altair.kcis.com govori računaru bez diska njegovo puno ime domena.
Red rootfs 199.246.76.1:/DiskLess/rootfs/altair govori računaru bez diska gde mu se nalazi root fajlsistem koji će mountovati preko NFSa.
Примедба: NFS root fajlsistem će biti mountovan kao read only.
Hijerarhija za sistem bez diska može biti re-mountovana da bi se dozvolilo pisanje po fajl sistemu, ukoliko je to potrebno.
Ja koristim moj stari 386DX-40 kao posvećeni 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 dobrodošli, 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>.