Re: diskless booten

From: Hans Huebner <hans(at)artcom.de>
Date: Thu, 14 May 1998 21:06:50 +0200 (MEST)

Hallo Matthias,

In article <199805141649.SAA00355(at)moon.fgh.net> you write:
>Das Teil würde ich gerne über das Netz booten und für
>Kleinkram verwenden. [...]

>1. Meine /etc/exports sieht wie folgt aus:

> /rootfs/pizza -maproot=0:0 pizza.fgh.net
> /swapfs -maproot=0:0 pizza.fgh.net

Probier' mal

/rootfs/pizza /swapfs -maproot=0:0 pizza.fgh.net

Bei mir funktioniert das. Interessant in diesem Zusammenhang ist
auch die -r-Option von mountd, mit der man nur die Swapfiles fuer
einzelne Clients exportieren kann.

>2. meine /etc/bootptab sieht wie folgt aus:

>.default:\
>[...]

>pizza:ht=ether:ha=0000c01f848a:ip=192.168.153.3:tc=.default:

>die habe ich abgeschrieben da ich mit einigen Parametern nichts
>anfangen kann. Vielleicht kann mir jemand sagen was mit "ha"
>eingestellt wird.

Damit stellst Du die Ethernet-Adresse des Clients ein. Der
Bootvorgang verlaeuft in etwa so: Der bootende Client broadcasted
ein Paket ins Ethernet, welches vom bootp-Server angenommen und
mit einem (an die Ethernet-Adresse des Clients gerichtetes)
Konfigurationspaket beantwortet wird. Aus diesem Paket entnimmt
der Client seine eigene IP-Adresse sowie die sonstigen, zum Booten
erforderlichen Parameter. Daraufhin kopiert sich der Client per
tftp seinen kernel von dem in der bootptab eingestellten Server,
und startet FreeBSD (/kernel) mit magischen Parametern, aus denen
der Kernel entnehmen kann, wo sein root-Filesystem ist (nfs).

>Evtl. hat die obige Datei auch augenscheinliche Fehler?!

Sicher. Einige Blicke in die Manualpage ('man bootptab') sowie in
Altavista (+FreeBSD +diskless +booting) sollten weitere sachdienliche
Hinweise zutage foerdern.

>3. Welche Dateien müssen für den Client verfügbar gemacht werden damit
>er booten kann, und wie?

Am einfachsten ist es, dem Client ein eigenes root-Verzeichnis
(Kopie des Server-Rootverzeichnisses) zu erzeugen, und dieses dann
zu exportieren. Als /usr kannst Du getrost das /usr des Servers
mounten (eventuell read-only).

Es macht sich in diesem Fall natuerlich gut, wenn man seine Platte
in Partitionen fuer /, /var, und /usr aufgeteilt hat, und eventuelle
weitere Platten unter Top-Level-Directories mounted. Dadurch hat
man eine sehr einfache Moeglichkeit, sein System zu klonen. Es
geht natuerlich auch per Hand: Das root-Verzeichnis sollte Kopien
von qw(.* COPYRIGHT bin boot.* dev etc kernel lkm root sbin stand
tmp var) des Spendersystems enthalten. Weiterhin werden die
Verzeichnisse /usr und /proc (als leere Verzeichnisse) benoetigt,
auf sie wird /usr vom Server und /proc (procfs) gemounted.

Ein Sharing von /var und /tmp ist in jedem Fall *nicht* zu
empfehlen, da dort Dateien abgelegt werden, die nur auf genau einem
Host eine Bedeutung haben. Wenn besonders viel Platz sparen
moechtest, versuchst Du, auf dem Client nur /var und /tmp
aus privaten Verzeichnissen zu mounten. Das muss allerdings sehr
frueh waehrend des Bootvorgangs stattfinden, und erfordert speziell
angepasste /etc/rc*-Skripte, die sowohl fuer den Server- als auch
fuer den Diskless-Client-Boot funktionieren.

Einigen Platz kannst Du andersrum sparen, wenn Du die in den
Verzeichnissen /bin, /stand und /lkm befindlichen Dateien nicht
kopierst, sondern Hardlinks verwendest. Sowas kann aber schnell
unuebersichtlich werden, und ist bei den heutigen Plattenpreisen
nicht unbedingt empfehlenswert.

>4. Genügt es dann zum Abschluß netboot.com auf eine DOS Diskette zu
>kopieren, DOS zu booten und das Programm auszuführen oder müssen noch
>zusätzliche Einstellungen vorgenommen werden?

Prinzipiell ja, wobei ich das selbst noch nicht versucht habe.
Ich habe mal einige Diskless-Systeme konfiguriert, die mit netboot.com
aus dem EPROM von einer Sun booten. Funktioniert prima.

Es gibt im uebrigen einiges an Konfigurationsoptionen bei einer
Diskless-Konfiguration, und wenn man beispielsweise Wert auf
netzwerkweite Systemupdates bei den Clients legt, wird die Bastelei
schnell zur abendfuellenden Veranstaltung. Dafuer wird man jedoch
mit einem leisen System (fast) ohne bewegte Teile beglueckt.

Viel Glueck und Gruesse - Hans
Received on Thu 14 May 1998 - 21:06:55 CEST

search this site