Benjamin, Benjamin Zeller schrieb:
On Tuesday 31 January 2006 15:23, Gunreben, Peter (Peter) wrote:
Benjamin Zeller schrieb:
On Tuesday 31 January 2006 14:53, Gunreben, Peter (Peter) wrote:
Benjamin Zeller schrieb:
On Tuesday 31 January 2006 10:16, Gunreben, Peter (Peter) wrote: [...]
Der pxegrub kann sowohl den kernel, als auch die initrd über tftp nachladen.
Klar, das tut ja auch schon, nur brauche ich einen passenden Kernel und eine passende initrd, fuer die ich kein NFS o.ä. brauche, sondern die bereits genanntes zur Verfuegung stellt.
Hmmm, verstehe ich nicht ganz. Nimm doch einfach Installation- kernel und initrd (DVD:/boot/loader/..) und tausche linuxrc im initrd gegen dein Programm aus.
Grundsaetzlich wuerde ich das gerne tun, nur habe ich, wenn ich den Kernel und das Ding boote immernoch kein Root-Filesystem, oder sehe ich das falsch?
Yepp, die initrd ist dein root-filesystem.
OK, jetzt bin ich vollends verwirrt. Dann sollte doch aber auch nicht kommen "Can't mound root FS". Und was hat es mit linuxrc auf sich? Vielleicht kannst Du mir mal grundsaetzlich einen Ueberblick geben, wie ich da zu verfahren habe.
Hier der kleine Überblick: Der grub sollte auf jeden Fall den kernel und die initrd laden. Ich habe bisher nur nbgrub verwandt, das ja dem pxegrub sehr ähnlich ist, allerdings eben nicht vom DHCP-Server initiert wird. Genauer gesagt habe ich einen nbgrub auf einer Diskette und boote von der Diskette. Dort sieht das so aus: -------------- menu.lst ------------------ timeout 600 default 0 title test dhcp ifconfig --server <IP des TFTP-Servers> root (nd) kernel /<Verzeichnis im TFTP wo der kernel liegt>/kernel ramdisk_size=65536 initrd /<Verzeichnis im TFTP wo deine initrd liegt>/initrd boot -------------- menu.lst ------------------ Nun weiss ich nicht, was du wirklich machen willst. Hier ein kleines Beispiel: Wir ersetzen den init einfach durch die bourne shell. Als Grundlage kann man auch die normale initrd nehmen. cp /boot/initrd /tmp cd /tmp unpackInitrd initrd cd /tmp/work-initrd cp bin/sh init packInitrd Die modifizierte /tmp/initrd solltest du nun in den TFTP-Server legen. Wenn du alles richtig gemacht hast, wird beim booten der kernel und dann die initrd geladen. Am Ende wird noch das executable init gestartet, was ja nun eine bourne shell ist. Achtung: Die shell hat keinen Prompt und auch fast keine Kommandos. Um zu sehen, was sich im aktuellen Verzeichnis befindet, kannst du dir z.B. mit "echo *" behelfen. Das root-filesystem ist wie gesagt der Inhalt der initrd. Um noch mehr Kommandos zu bekommen, kannst du dir z.B eine busybox mit ins Gepäck (=initrd) nehmen. Viel Spass beim Ausprobieren. Gruss, Peter.