Benjamin, Benjamin Zeller schrieb:
On Wednesday 01 February 2006 22:06, David Haller wrote:
Hallo,
Am Wed, 01 Feb 2006, Benjamin Zeller schrieb:
config vom pxegrub:
prompt: 0 label linux kernel vmlinuz append ramdisk_size=65536 initrd=initrd [..] Eine initrd, die dazu fuehrt, dass ich am Ende in /bin/bash lande und bestimmte Kommandos habe (smbmount z.B.)
Sowas muss doch $irgendwie machbar sein?
init=/bin/bash
als weiteren Kernelparameter. Die bash ist aber dynamisch gelinkt, d.h. du muesstest u.a. die libc, libnss* u.v.a.m. mit in die initrd packen. Sinnvoller ist da die busybox oder die sash statisch gelinkt zu nehmen.
Ich bin jetzt folgendermaßen vorgegangen:
cp /boot/initrd . unPackInitrd initrd cd /tmp/work-initrd busybox-install . rm init mv linuxrc init packInitrd
Gebooted: Dann bin ich auf der Shell. Nur wie bekomme ich da jetzt selbst Sachen rein? wie smbmount etc. Ich hab ja nicht mal eine Netzwerkkarte :-(
Man, you made it! Jetzt hast du den Durchbruch! Congrats! In der busybox befinden sich ifconfig, ifup, etc. Damit bekommst du das Netzwerk hoch. Natürlich musst du vorher mit modprobe den Treiber für deine Netzwerkkarte laden (ist auch drin). Damit sollte das Netzwerk erledigt sein. Kommt nur noch smbmount. Das Executable findest du unter /usr/bin/smbmount und die benötigten libraries mit "ldd /usr/bin/smbmount". Also, das Executable mit allen libraries auch in die initrd. Und gleich noch ldconfig mit dazu (man ldconfig). Bevor du den smbmount benutzt, musst du ldconfig aufgerufen haben. Wie schon erwähnt, darf init auch ein script sein. Viel Erfolg! Gruss, Peter.