PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : diskless client -nfs root wird nicht eingebunden



tenim
06.09.07, 20:11
hallo,

versuche jetzt schon seit montag, einen diskless rechner übers netzwerk zu booten. eine fedora 7 installation(image) auf einem entfernten rechner soll über nfs als root-partition dienen. kernel+initrd werden per tftp vom entfernten rechner auf den diskless-rechner übertragen. das alles macht eine boot-cd mit grub (stage2_eltorito mit netzwerksupport und fest vorgegebenen adressen).
sämtliche ip-adressen und pfade übergebe ich grub bzw. dem kernel per kommandozeilenparameter(klappt auch). brauche also kein dhcp.

also, folgendes klappt:
* kernel+initrd lädt der client über tftp und der kernel startet
* der kernel konfiguriert sein netzwerkinterface richtig (zumindest steht in der bootmeldung des kernels "eth: link up" und die angegebenen adressen stimmen.

was jetzt nicht mehr geht, ist das einbinden des root-fs über nfs. es kommt
die meldung


RAMDISK: Compressed image found at block 0
no filesystem could mount root, tried: ext3 ext2 iso9660 romfs fuseblk
kernel panic - not syncing: VFS: unable to mount root fs on unknown-block(0,255)


ich habe die anleitung "nfsroot.txt" in den kernel-dokus exakt befolgt, alle nötigen module sind fest in den kernel einkompiliert. mit wireshark(networkanalyzer) hab ich rausgekriegt, das er beim booten nicht ein nfs-anfragepaket übers netz schickt, er versucht es erst garnicht.

er hatte im initrd-image auch kein device /dev/nfs drin, das hab ich dann nachträglich angelegt, vorher kam er beim booten nichtmal so weit.

nfs-freigabe ist korrekt angelegt und funktioniert (habe die freigabe probeweise selbst gemountet).

hier noch meine menu.lst, über die alle parameterübergabe erfolgt:



ifconfig --address=192.168.1.2 --mask=255.255.255.0 --server=192.168.1.1

default=0
timeout=0
hiddenmenu

title fedora
root (nd)
kernel /vmlinuz root=/dev/nfs nfsroot=/daten/netzwerkboot/os_root,tcp ip=192.168.1.2:192.168.1.1:192.168.1.254:255.255.2 55.0:dvb:eth0: off vga=771
initrd /initrd_nfs.img


weiss jemand, warum er das nfs-share nicht mounten will? ich bin mit meinem latein am ende.

geronet
06.09.07, 20:47
Wenn der Kernel startet, stehn noch mal die Kommandozeilenparameter da, zeig die doch mal. Bin mir sicher du hast irgendwas im Kernel vergessen.

Hab früher mal mehrere Clients mit Kernel 2.2 auf Diskette mit nfsroot gebootet, die das gleiche Dateisystem wie der Host hatte, ausser spez. Verzeichnisse in /etc ;)

tenim
06.09.07, 21:20
ok, hab 2 screenshots gemacht, einen beim start und einem zum schluss
wenn es nicht mehr weitergeht.

die konfig ist leicht anders als vorhin, es ging damit aber auch nicht.

tenim
10.09.07, 12:32
habs jetzt hinbekommen, aber der aufwand war schon enorm.
die anleitung 'nfsroot.txt' der kernel-doku funktioniert so nicht (haben auch andere im netz geschrieben), bei manchen kerneln führt er das init-script in der initrd nichtmal aus(k.a. warum, im kernel war support für alles nötige kompiliert).
also hab ich das mounten manuell gemacht. dazu bash-interpreter, mount-befehl und die nötigen bibliotheken in das initrd-image kopiert(die kennt ja von haus aus nur den nash-interpreter) und mit einem eigenen script das nfs-rootfs gemountet und gestartet.

der diskless-rechner bootet problemlos meinen gnome-desktop und ich kann endlich videos mit vlc übers netz schauen.

quinte17
10.09.07, 13:48
ich hatte so ein setup auch mal vor langer zeit am laufen.
wichtig ist auch wie der nfs-server das root-system freigibt.

aber da es bei dir ja nun geht wünsche ich dir viel spaß damit :)

greetz

Stephanw
10.09.07, 16:23
Noch so ne Anmerkung:Wenn du eh ne initrd hast, kannst du ja auch in dieser bleiben, wenn der Kernel läuft (root=/dev/ram0). Von dort aus hätte ich dann in Ruhe versucht, den Nfs-Share zu mounten. Man kann ja auch noch ein paar nützliche Zusatztools mit in die initrd packen; in diesem Fall z.B. rpcinfo und showmount.

Gruß Stephan