append pmedia=ideflash root=boot/legacyos2 lang=en pkeys=de
Looks definitely not right .
This 'root=' tells the kernel which partition to mount after finally booting to look for /sbin/init which would run /etc/rc.d/rc.sysinit , which would do all the stuff to mount /proc and /sys and load the drivers - in Puppy .
The script in the initrd.gz gets changed quite often , and may or may not work with that "root=boot/legacyos2" parameter ; also the kernel .
In puppy the "root=" parameter is used mostly for full installations nowerdays , the root=/dev/ram0 is a very old parameter , which i dont know much about , except that it exists .
It is possible to gunzip the initrd.gz and "mkdir initrd.d && cd ./initrd.d && cat ../initrd | cpio -i -d > ./initrd.d" to read the main file "init" inside there .
The puppymain-forum@murga-linux has examples in the "Howto Section" , and there is a pet called "editinit" out there .
If you put the puppy initrd.gz inside the /legacy_os folder and not the initrd.gz of the legacy_os , the puppy-initrd.gz looks for puppy-dotSFS and puppy-dot2fs|dot3fs|4fs files on the disk|usb . It would not look for legacy_os files .
You could create your own init and initrd file to look for legacy_os files , or just leave the initrd line out , because i think you installed full and legacy_os might not use an init-ial-r-am-d-isk at all to support the boot process with additional modules.
Further I have to say that i don't know anything about legacy_os at all , just had read a few about OS/2 .