Also with using the psubdir Variable (psubdir=boot/puppy), puppy is not booting, because it can't find the file pup_217.sfs.
The Problem is the function loadpupsfsfunc() in /initrd/sbin/init. It tries to get /pup_217.sfs instead of /boot/puppy/pup_217.sfs:
Code: Select all
SIZEPUPSFSK=`du ${1}/$NAMEPUPSFS | cut -f 1`
...
cp -f ${sfsmntpt}/$NAMEPUPSFS /mnt/tmpfs/
...
losetup /dev/loop0 ${sfsmntpt}/$NAMEPUPSFS
A working solution is to extract the subdir from the variable "$PUPSFS", so that pup_217.sfs is found:
Code: Select all
sfssubdir="`echo -n "$PUPSFS" | cut -f 3 -d ','`"
sfssubdir=${sfssubdir%/*} #extract dirname
sfssubdir=${sfssubdir#/} #strip trailing slash
...
SIZEPUPSFSK=`du ${sfsmntpt}/${sfssubdir}/$NAMEPUPSFS | cut -f 1`
...
cp -f ${sfsmntpt}/${sfssubdir}/$NAMEPUPSFS /mnt/tmpfs/
...
losetup /dev/loop0 ${sfsmntpt}/${sfssubdir}/$NAMEPUPSFS