Jump to content

NFS-Boot


Silent-Tears

Empfohlene Beiträge

Hallo KW-Fans,

 

da ich aktuell relativ viel mit booten über Netz zu tun habe stellte sich mir die Frage, ob man dies mit der Dbox2 auch anstellen könnte. Würde evtl. die Notwendigkeit von rescueplugins und ähnlichen Dingen minimieren, genauso wie es das ständige Neuflashen unnötig machen würde. Denn einfach die Files auf dem Server austauschen und gut ist.

 

Klar, das booten dauert wahrscheinlich länger, aber was solls?

 

Weiterhin - um Platz zu bekommen in dem Image: Wie wäre es, vielleicht noch - ähnlich den HDDTools - Teile des Images aufs NFS auszulagern und stattdessen mit Links zu arbeiten?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was Du vor hast, geht. Stichwort YADD.

 

Ein Image brauchst Du dazu übrigens überhaupt nicht auf der Box, das liegt komplett auf dem NFS-Server, und da kannste reinstopfen, was Du lustig bist, kann nicht platzen. Es sei denn, Du überfüllst die Serverplatte. ;)

 

Booten dauert auch nicht länger, als wenn die Box aus dem Flash startet.

 

Was Du für YADDs benötigst: einen TFTP-/BootP Server, einen NFS-Server, einen zur Kernelversion des Images passenden speziellen kernel_yadd (der normale Kernel aus einem Flashimage geht nicht!) und ein passendes uboot_yadd (geht auch nicht das vom Flashimage).

 

Da ich hier unter Windows werkele: als TFTP-/BootP Server eignet sich der Bootmanager, als NFS-Server läuft Microsoft SFU, der NFS-Server des Bootmanagers bleibt ausgeschaltet. Funktioniert einwandfrei, ich praktiziere das zum Bleistift, wenn ich für meine Senderlisten zum Scannen ein Enigma-Image brauche.

 

Man kann auch ein Flashimage zum YADD umfunktionieren, selbst das ist machbar. Allerdings gibt's dabei ein paar Dinge zu beachten, sonst wird beim Booten des umfunktionierten Images via Netzwerk der Inhalt des Flashspeichers auf der Box ruiniert. Sprich ein auf der Box befindliches Image ginge dann in die Binsen und müßte neu geflasht werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

YADD... Und was ist da mit meinem heissgeliebten KW-Image? Ok, da muss ich dann beim content wohl selber Hand anlegen und die Sachen entsprechend drin unterbringen, oder?

 

Meine Vorstellung war so: Irgendein Image auf der Box. Allerdings booten via TFTP/bootp das KW-Image. Denn ich mag das Teil.

 

TFTP/bootp/NFS & Co sind vorhanden, ausserhalb von Windows. Somit: Wie funktioniert das mit dem "Umfunktionieren" des Images?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da frag ich mich - ok,. eigentlich eher SnowHead - ob er was am Kernel gepatcht hat. Denn dann wirds schwierig.

 

Meine Frage so am Rande: Lohnt sich der Aufriß nur aus "akademischer" Sicht, oder aber ist es was einigermassne sinnvolles? Ich wollte damit z.B. das arme Flash meiner Box entlasten, denn prinzipiell wird wohl mindestens einmal am Tag dort was drin geschrieben. Nicht ugt auf Dauer, denke ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man kann einen Timer einrichten, der die Box einmal taeglich herunterfaehrt... ;)

Darum ging es bei meinem Einwnad nicht. Denn Hoch- und runterfahren beeinflussst wenig, was imFlash der Box landet. Meine Box verhält sich absolut stabil, keine Abstürze, kein garncihts. Es geht mir dabei nur um dieDateien, die sich ständig ändern. Auch mehrfach täglich. Dazu aber mehr im anderen Bereich....

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@Silent-Tears

 

Am Kernel habe ich nichts gedreht. Die Tests beim Imagebauen mache ich

übrigens immer auf einer YADD ehe ich ein Image daraus mache.

Sinn macht eine YADD nur beim Testen und wenn man mehrere Boxen hat.

Dann kann man den Updateaufwand klein halten da alle aus dem gleichen

System booten. Nur für die Configs muß man separate Verzeichnisse ein-

richten, da sonst alle auf einer Box vorgenommenen Einstellungen entweder

andere Boxen beeinflussen oder von denen beim Runterfahren wieder über-

schrieben werden.

 

Hier übrigens eine Top-Anleitung für Images und YADDs.

Link zu diesem Kommentar
Auf anderen Seiten teilen

TFTP/bootp/NFS & Co sind vorhanden, ausserhalb von Windows. Somit: Wie funktioniert das mit dem "Umfunktionieren" des Images?

Zuerst die Frage: unter welchem System soll das Booten ablaufen? Windows is es ja nicht, wie Du schreibst.

 

Auf jeden Fall mußt Du aus der /etc/fstab die Mountzeile mit der /var Partition auskommentieren oder löschen. Sonst versucht das Yadd, den /var Bereich aus dem Flash zu mounten, was schief geht (Partitionsaufteilung vorgegeben durch das uboot) und zu unzähligen JFFS2-Errors führt, die auch versucht werden zu reparieren, das Image auf der Box ist anschließend Schrott, weil kaputtrepariert.

Oder Du bräuchtest ein exakt wie im Flashimage konfiguriertes uboot, allerdings mit Yadd-Support. Dann kannste aber auch gleich aus dem Flash booten, weil gewinnen tuste dabei nix.

 

 

Btw: das KW-Image läßt sich bei mir unter W2K3 Server nicht mehr als Yadd booten. Gibt Probleme, während des Bootvorgangs (rcS am Abarbeiten)

Stale NFS file handle

das an fast immer der gleichen Stelle (immer in dem Bereich, wo die Tunertreiber geladen werden), allerdings mit unterschiedlichen Auswirkungen.

 

Unter W2K Prof. lief das früher allerdings problemlos, weiß ich vom September-2006-Beta (auch das originale von Worschter), das da anstandslos bootete, jetzt unter 2K3 nicht mehr.

Das Merkwürdige dabei: aus dem CVS selber compilierte Yadds booten anstandslos und laufen fehlerfrei (bis auf den Murks, den ich selber einbaue :D). ;)

 

Hat da eventuell jemand eine Idee dazu?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zuerst die Frage: unter welchem System soll das Booten ablaufen? Windows is es ja nicht, wie Du schreibst.

Das booten kann über bsd, natives Linux 32bit/64bit, mipsel-Lionux auf meiner Fritz! oder der anderen Fritz! geschehen, da muss ich noch sehen, welches Gerät sich da als "am zuverlässigsten" hervortut. Ich plädiere allerdings für die Mipsel-Architektur, denn die Fritz! läuft eh ständig. DnsMasq und NFS-SErver laufen dort bereits einwandfrei, somitwäre das meine erste Anlaufstelle. tftp/bootp/dhcp funktioniert allerdings auf alle Fälle schon auf meinem kleinen notebook, seines Zeichens Linux mit x86-Architektur.

 

Du schreibs,t ich soll das mounten von /var auskommentieren. Wäre es da nicoht sinnvoller, /var über NFS zu mounten?

 

Die Frage bei deinem Problem ist eigentlich vor allem: Macht nur das aktuelle Image das PRoblem? Bzw. Kannst du das aktuelle Image unter alten Systemen über Netz booten?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du schreibs,t ich soll das mounten von /var auskommentieren. Wäre es da nicoht sinnvoller, /var über NFS zu mounten?

Machbar ist das sicherlich, so lange sich keine Startdateien in /var befinden, das ist nämlich der Knackpunkt. Beim Keywelt-Image hättest Du da zum Bleistift ganz schlechte Karten und müßtest die Startscripte aus /var/etc/... ins Root verpflanzen und dabei auch noch etliches editieren.

 

Zumindest müßtest Du dafür sorgen, daß in der /etc/init.d/rcS vor dem

# Mount file systems in /etc/fstab
mount -a

der ganze Netzwerkkrempel initialisiert ist und auch NFS zur Verfügung steht. Dann könntest Du vermutlich per Anpassung der fstab den kompletten /var Bereich auslagern, /root aber auf der Box lassen. Ich weiß nicht, ob es das ganze Brimborium wert ist. :o

 

Die Frage bei deinem Problem ist eigentlich vor allem:  Macht nur das aktuelle Image das PRoblem? Bzw. Kannst du das aktuelle Image unter alten Systemen über Netz booten?

So sieht's aus:

- Keywelt-Images ab April 2006 laufen nicht. Ältere weiß ich nicht, finde meine Backup-CD der Yadds nicht mehr. *grummel*

- ruDbox2_neutrino_dream_v2 läuft, wenn man die rcS zwei, drei mal per Console in den Hintern tritt und die start auch manuell aufruft.

- älteres NG Enigma geht auch, Methode die gleiche wie beim ruDbox2

Wenn diese Images einmal durchgebootet haben, laufen sie, nix mehr mit dem Stale NFS file handle. ;)

Meine aus dem CVS selbst compilierten Yadds laufen einwandfrei. Da gibt es keinerlei Probleme. Seltsames Zeugs. :D

 

Die Images, die jetzt nicht mehr zu booten gehen, starteten bis vor einem reichlichen halben Jahr absolut zuverlässig unter Windows 2000 mit SFU. Ein Test auf meinem zweiten PC, der zu dieser Zeit schon unter 2003 Server lief, brachte die Images damals auch schon nicht zum Booten. Also ist das wohl ein Problem im Zusammenspiel von Windows 2003 Server, SFU und den aus Images konvertierten Yadds. Denn die CVS-Yadds laufen ja. Irgendwo muß da "Murks" in den konvertierten Yadds ablaufen. ;)

 

Der NFS-Server des Bootmanagers läßt sich nicht zur Funktion überreden, ein Yadd zu booten, der macht gleich gar nichts. Beim Flashen gibt es aber keine Probleme, dort tut der Bootmanager-NFS genau, was er soll. Und SFU-NFS-Server läuft parallel dazu, die behindern sich also nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich mache da auch schon Tagen,Stunden, Nächte dran rum und zwar unter Suse 10.3, schon alle möglichen uboote ppcbote und dboxflasher ausprobiert mit dem konnte ich das flash löschen ;)

werde demnächst mal wieder rangehen.

 

Was ich als letztes las war sollte das im log stehen ist eine falsche DHCP Server Version installiert

also die 255.255.255.f

Kann das sein

 

Kernel command line: console=ttyS0 root=/dev/nfs rw nfsroot=192.168.178.21:u-boot/yaddroot/ ip=192.168.178.27:192.168.178.21::255.255.255.f

 

__________________________________________________

 

Hier noch das komplette log

 

qwei-w:~ # minicom

Welcome to minicom 2.2

 

OPTIONS: I18n

Compiled on Sep 22 2007, 00:14:00.

Port /dev/ttyS0

 

Press CTRL-A Z for help on special keys

 

 

debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS

debug: BMon V1.0 mID 02

debug: feID 00 enxID 03

debug: fpID 52 dsID 01-1 XXXXXXXXXXXXXXXX

debug: HWrev 01 FPrev 0.30

debug: B/Ex/Fl(MB) 32/00/08

dbox2:root> debug:

BOOTP/TFTP bootstrap loader (v0.3)

debug:

debug: Transmitting BOOTP request via broadcast

debug: Unknown RFC1048-tag debug: 11 debug: 11 debug: 2f debug: 79 debug: 61 debug: 64 debug: 64 debug: 72 debug: 6f debug: 6f debug: 74 d

debug: Unknown RFC1048-tag debug: f debug: b debug: 65 debug: 78 debug: 61 debug: 6d debug: 70 debug: 6c debug: 65 debug: 2e debug: 6f deb

debug: Got BOOTP reply from Server IP 192.168.178.21, My IP 192.168.178.27

debug: Sending TFTP-request for file u-boot

will verify ELF image, start= 0x800000, size= 140520

verify sig: 262

boot net: boot file has no valid signature

Branching to 0x40000

 

 

U-Boot 1.2.0 (Tuxbox) (Dec 17 2007 - 15:07:24)

 

CPU: PPC823ZTnnB2 at 65.900 MHz: 2 kB I-Cache 1 kB D-Cache

Board: DBOX2, Philips, BMon V1.0

Watchdog enabled

I2C: ready

DRAM: 32 MB

FLASH: 8 MB

FB: ready

LCD: ready

In: serial

Out: serial

Err: serial

Net: SCC ETHERNET

BOOTP broadcast 1

Using SCC ETHERNET device

TFTP from server 192.168.178.21; our IP address is 192.168.178.27

Filename 'u-boot'.

Load address: 0x100000

Loading: Using SCC ETHERNET device

TFTP from server 192.168.178.21; our IP address is 192.168.178.27

Filename 'logo-lcd'.

Load address: 0x100000

Loading: ##

done

Bytes transferred = 7680 (1e00 hex)

BOOTP broadcast 1

Using SCC ETHERNET device

TFTP from server 192.168.178.21; our IP address is 192.168.178.27

Filename 'u-boot'.

Load address: 0x100000

Loading: Using SCC ETHERNET device

TFTP from server 192.168.178.21; our IP address is 192.168.178.27

Filename 'logo-fb'.

Load address: 0x100000

Loading: ##############

done

Bytes transferred = 70956 (1152c hex)

 

Options:

1: Console on null

2: Console on ttyS0

3: Console on framebuffer

Select option (1-3), other keys to stop autoboot: 0

Using SCC ETHERNET device

TFTP from server 192.168.178.21; our IP address is 192.168.178.27

Filename 'kernel-yadd'.

Load address: 0x100000

Loading: #################################################################

#################################################################

###############################

done

Bytes transferred = 823855 (c922f hex)

............................................................... done

Un-Protected 63 sectors

## Booting image at 00100000 ...

Image Name: dbox2

Image Type: PowerPC Linux Kernel Image (gzip compressed)

Data Size: 823791 Bytes = 804.5 kB

Load Address: 00000000

Entry Point: 00000000

Verifying Checksum ... OK

Uncompressing Kernel Image ... OK

Linux version 2.4.35.3-dbox2 (homar@dboxupdate.info) (gcc version 3.4.4) #63 Mo 17. Dez 15:08:12 CET 2007

On node 0 totalpages: 8192

zone(0): 8192 pages.

zone(1): 0 pages.

zone(2): 0 pages.

Kernel command line: console=ttyS0 root=/dev/nfs rw nfsroot=192.168.178.21:u-boot/yaddroot/ ip=192.168.178.27:192.168.178.21::255.255.255.f

Decrementer Frequency = 247125000/60

m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)

m8xx_wdt: keep-alive trigger installed (PITC: 0x2580)

Console: colour dummy device 80x25

Calibrating delay loop... 65.53 BogoMIPS

Memory: 30456k available (1404k kernel code, 440k data, 68k init, 0k highmem)

Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)

Inode cache hash table entries: 2048 (order: 2, 16384 bytes)

Mount cache hash table entries: 512 (order: 0, 4096 bytes)

Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)

Page-cache hash table entries: 8192 (order: 3, 32768 bytes)

POSIX conformance testing by UNIFIX

Linux NET4.0 for Linux 2.4

Based upon Swansea University Computer Society NET3.039

Initializing RT netlink socket

Starting kswapd

devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

JFFS2 version 2.2. (NAND) © 2001-2003 Red Hat, Inc.

squashfs: version 3.0 (2006/03/15) Phillip Lougher

i2c-core.o: i2c core module version 2.6.1 (20010830)

i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)

CPM UART driver version 0.04

ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2

pty: 256 Unix98 ptys configured

eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:2c:48:d8

loop: loaded (max 8 devices)

D-Box 2 flash driver (size->0x800000 mem->0x10000000)

D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank

Intel/Sharp Extended Query Table at 0x0035

cfi_cmdset_0001: Erase suspend on write enabled

Creating 6 MTD partitions on "D-Box 2 flash memory":

0x00000000-0x00020000 : "BR bootloader"

0x00020000-0x00040000 : "FLFS (U-Boot)"

0x00040000-0x006a0000 : "root (Cramfs)"

0x006a0000-0x00800000 : "var (JFFS2)"

0x00020000-0x00800000 : "Flash without bootloader"

0x00000000-0x00800000 : "Complete Flash"

Linux video capture interface: v1.00

mice: PS/2 mouse device common for all mice

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 2048 bind 4096)

IP-Config: Complete:

device=eth0, addr=192.168.178.27, mask=255.255.255.0, gw=255.255.255.255,

host=192.168.178.27, domain=, nis-domain=(none),

bootserver=192.168.178.21, rootserver=192.168.178.21, rootpath=

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

Looking up port of RPC 100003/2 on 192.168.178.21

Looking up port of RPC 100005/1 on 192.168.178.21

Root-NFS: Server returned error -13 while mounting u-boot/yaddroot/

VFS: Unable to mount root fs via NFS, trying floppy.

VFS: Cannot open root device "nfs" or 02:00

Please append a correct "root=" boot option

Kernel panic: VFS: Unable to mount root fs on 02:00

<0>Rebooting in 180 seconds..

CTRL-A Z for help | 9600 8N1 | NOR | Minicom 2.2 | VT102 | Offline

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi.

 

Root-NFS: Server returned error -13 while mounting u-boot/yaddroot/

VFS: Unable to mount root fs via NFS, trying floppy.

VFS: Cannot open root device "nfs" or 02:00

Please append a correct "root=" boot option

 

Der Kernel kann das rootfs über nfs nicht mounten.

Das "u-boot/yaddroot/" sollte eine absolute Pfadangabe zum dbox-rootfs auf deinem Linux Rechner sein, also mit "/" anfangen.

Außerdem mußt Du in der /etc/exports auf dem Rechner die entsprechende Freigabe eintragen.

 

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi newcode

ich bekomme das nicht hin hatte vorher /yaddboot und/ tftpboot in absoluten Pfad jetzt bin ich mal nach dieser Anleitung vorgegangeen und habe meine Pfade dementsprechend angepasst.

Das Ergebnis ist immer noch das selbe.

 

http://tuxbox-forum.dreambox-fan.de/forum/...use+bottmanager

 

Ich poste mal meine Einstellungen vielleicht seht ihr ja was wo ich nicht sehe.

 

Datei /etc/xinetd.d/tftp sieht so aus

 

edit ; das XX in der hradware Adresse wurde geändert und die Formatierung verhautes auch ein bisschen beim einfügen in den Post

 

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /home/dbox/dbox2/tftpboot

disable = no

}

 

Datei /etc/dhcpd.conf so

 

}

subnet 192.168.178.0 netmask 255.255.255.0 {

default-lease-time 14400;

max-lease-time 172800;

}

host dbox {

option root-path "/home/dbox/dbox2/yaddroot";

next-server 192.168.178.21;

hardware ethernet 00:50:XX:XX:XX:XX;

allow bootp;

fixed-address 192.168.178.27;

if exists vendor-class-identifier {

filename "kernel-yadd";

}

else {

filename "u-boot";

}

}

}

Datei /etc/exports so

 

/home/dbox/dbox2 *(rw,no_root_squash)

 

Datei /etc/ethers so

 

# Ethernet-address IP-number

00:50:XX:XX:XX:XX 192.168.178.27

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi.

 

Ich kann das leider nicht probieren, da ich bootpd benutze.

 

Aber ich kann Dir sagen, daß der Eintrag

option root-path "/home/dbox/dbox2/yaddroot";

falsch ist. Das "/yaddroot" wird vom u-boot automatisch angehängt und darf deshalb nicht in der Pfadangabe stehen.

Außerdem solltest Du das NFS mal testen indem Du 192.168.178.21:/home/dbox/dbox2 mal "händisch" mountest.

 

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi newcode,

soweit so gut, habe jetzt wieder ungemottelt und die Dateien in / absolute Ordner gelegt dhcp abgeschaltet und boottpd verwendet.

 

Es wird NFS gemountet ;) aber ihrgend etwas stimmt noch nicht mit den Berechtigungen siehe log.

 

Linux video capture interface: v1.00

mice: PS/2 mouse device common for all mice

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 2048 bind 4096)

IP-Config: Complete:

device=eth0, addr=192.168.178.27, mask=255.255.255.0, gw=255.255.255.255,

host=192.168.178.27, domain=, nis-domain=(none),

bootserver=192.168.178.21, rootserver=192.168.178.21, rootpath=

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

Looking up port of RPC 100003/2 on 192.168.178.21

Looking up port of RPC 100005/1 on 192.168.178.21

VFS: Mounted root (nfs filesystem).

Mounted devfs on /dev

Freeing unused kernel memory: 68k init

init started: BusyBox v1.7.2 (2007-10-03 15:21:04 CEST)

Cannot run '/etc/init.d/rcS': Permission denied

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...