

Code: Select all
default qnds
prompt 0
display message.txt
label qnds
kernel vmlinuz
append initrd=/initramfs ramdisk=8192 root=/dev/ram0 vga=791 splash=silent devfs=nomount

Code: Select all
( cd /tmp/contents
find . -print | cpio --quiet -o -H newc > /tmp/initramfs
gzip -9 -c /tmp/initramfs > "isolinux directory"/initramfs
)
Code: Select all
sbin/
init -- my init executable
init -- symlinked to /sbin/init
linuxrc -- symlinked to /sbin/init
initramfs -- symlinked to /sbin/init
... a lot of other stuff of course like required libs and so on...
Code: Select all
du -s /tmp/contentsCode: Select all
dd if=/dev/zero of=/tmp/initrd bs=1k count=64Code: Select all
mkfs.ext2 -b 1024 -F -v /tmp/initrdCode: Select all
modprobe loopCode: Select all
mount /tmp/initrd /mnt/initrd -t ext2 -o loopCode: Select all
df /dev/loop0Code: Select all
cp -Rp /tmp/contents/* /mnt/initrd/Code: Select all
umount /mnt/initrd
gzip /tmp/initrd
mv /tmp/initrd.gz /bootThat is, I didn't include a library which was required by the init code, hence the kernel couldn't find an init (or rather execute it). After putting the library file in the initrd image it all worked and I was happy with that. But after reading your last post it struck me, why not try the initramfs approach again, now that the required library is in place. So I cpio:ed the same files (and added a symlink from /init -> /sbin/init since this is required in an initramfs image) and now the initramfs image works as well.The problem was that I missed a library needed by my proprietary init. So the init binary (/sbin/init) was there but not the required lib.