[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: NFS Root - Diskless Clients



hallo christoph,

ich habe mir auch diskless clients gebaut, habe allerdings den kernel
(vorher 2.4.irgendwas, inzwischen 2.6.4) selbst kompiliert, da nfs root
unterstützung defaultmäßig nicht enabled war.
ob es inzwischen vorhanden ist, kannst du in der config vom kernel sehen,
die mitgeliefert wird, in /boot/config-2.4.18-xxx (zumindest denke ich daß
das die ausgangsconfig ist, da sie im kernel-image-xxx package enthalten ist
...)
ich bin jetzt nicht sicher, ob nicht noch etwas anders (bootp etc.) enabled
werden muß?

hier findest du eine zusammenfassung, von der konfiguration, die ich bei mir
gemacht habe, vielleicht hilft dir das weiter
http://stef.enemy.org:50080/projects/debianclients.txt

-----Original Message-----
From: Christoph Klein [mailto:smxag@yahoo.de]
Sent: Sunday, April 25, 2004 12:42 PM
To: debian-user-german@lists.debian.org
Subject: NFS Root - Diskless Clients


hi leute

ich habe ein ziemlich nerviges problem mit meinen
diskless clients.
der bootvorgang läuft über pxe (intels pro 100/s
karten), es wird über pxelinux der kernel geladen.
eigentlich sollte der dann das root file system per
nfs einbinden, was jedoch nicht funktioniert - das
ganze endet mit folgender fehlermeldung:

VFS: Cannot open root device "nfs" or 00:ff
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 00:ff

als kernel verwende ich den 2.4.18-bf also bf24 bei
clientimage und server.
möglichkeiten warum es nicht funktioniert wären, dass
dieser kernel kein nfs-client verhalten unterstützt,
was ich aber nicht herausfinden kann; steht ja
nirgends *g* oder ?
eine weitere möglichkeit ist der fehlende
netzwerkkarten-treiber - informationen ob der kernel
das eepro100 - modul fest einkompiliert hat habe ich
bisher auch nirgends gefunden - also einfach so mal
probiert über pxelinux das modul einzuladen:
"default" -datei (pxelinux konfiguration):
============
prompt 1
timeout 1000

label linux
kernel rootfs/vmlinuz
append init=/sbin/init ip=dhcp root=/dev/nfs
nfsroot=192.168.0.1:/usr/local/tftpboot/rootfs
vga=0x318 insmod=eepro100
============
es stellte sich dann die frage woher denn der kernel
das modul bekommt, habe es also mal ins tftp-root
(/usr/local/tftpboot/) kopiert - funktionierte aber
nicht.
habe daraufhin etwas über "initrd" gelesen und es dann
auch ausprobiert, bin auf das programm "mkinitrd"
gekommen, jedoch hat das auch etwas unsinn getrieben:
im verzeichnis 
/usr/local/tftpboot/rootfs/
habe ich über debootstrap und basedebs.tar eine
komplett neue installation angelegt; via chroot dann
auf dem server "geladen" und mit base-config alles
konfiguriert.
nun habe ich mkinitrd ausprobiert - im chroot-system
bringt es:

/usr/sbin/mkinitrd: /192.168.0.1:: Unknown root device
                    Please refer to the manual page.

habe /dev/nfs in der chroot-umgebung (also dem
client-linux) mit

mknod /dev/nfs b 0 255 

aber bereits erstellt.
=> das mkinitrd kommt nicht mit dem nfs-root klar.
habe es dann in der original-serverumgebung (also ohne
chroot) installiert und ausprobiert, jedoch kommen
dann die scsi-treiber für den server usw. auch mit in
das image - dem mkinitrd scheint egal zu sein, was ich
in die /etc/mkinitrd/modules für module eintrage - die
werden immer _zusätzlich_ zu den modulen mit ins image
kopiert wie die, die der server verwendet, was wenig
bringt, da es ja ein initrd für die clients werden
soll - habe es deswegen auch mit mkinitrd gelassen. 
gibt es denn noch eine möglichkeit kernelmodule
während des bootvorgangs einzubinden ohne dass bereits
ein rootfs gemountet ist ?
unklar ist mir auch wie das mit initrd funktionieren
kann, denn das würde ja als rootfs gemountet werden -
wird das dann wieder ausgehängt, damit das "wirkliche"
rootfs über NFS gemountet werden kann ??? weil 2 mal
gleichzeitig ein "/" zu mounten geht glaube ich nicht
...
das alles setzt natürlich vorraus, dass es an der
netzwerkkarte also deren modul liegt. hätte es aber
schon gerne dynamisch als modul eingebunden, also
nicht fest einkompiliert, da ich anonsten den kernel
für die verschiedenen netzwerkkarten an den
verschiedenen clients jeweils neu kompilieren müsste -
auf dem server mit einer pentium 1 cpu wäre das etwas
nerven-und zeitraubend - mal davon abgesehen, dass
kernel selbst kompilieren bei mir sowieso noch nie
richtig funktioniert hat - aber das is ein anderes
thema *g*
zusammenfassend:
der rootfs-mount fehler kann entweder an der fehlenden
netzwerkkartenunterstützung seitens des kernels liegen
(kann den client NICHT anpingen), wenn ja, welche
möglichkeiten gibt es das betreffende modul möglichst
ohne (oder auch mit mkinitrd, wenn es nur irgendwie
mal funktioniert) mkinitrd einzubinden oder es liegt
an der fehlenden nfs-unterstützung des bf24-kernels
und ob diese auch als modul mit eventuell weiteren
möglichkeiten eingebunden werden kann - oder beides
schon einkompiliert ist und nur "einfach so" nicht
funktioniert *g* also sich die frage stellt, wo man
die einkompilierten "module" unter Umständen
nachschauen kann.
hoffe, dass mir da jemand helfen kann - schon mal
vielen dank im vorraus :-)

mfg christoph


	

	
		
Mit schönen Grüßen von Yahoo! Mail - http://mail.yahoo.de


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an
debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org
(engl)



Reply to: