Latest:
viewtopic.php?p=31076#p31076
----------original post------------
Yes, a "drv" can be any letter other than 'p', that's notionally the "puppy_...sfs" file.
An adrv, bdrv, mdrv, xdrv,.....
This 'init' takes a slightly different approach to handling the "?drv_...sfs" files.
It processes each file completely one at a time, from begining with just an identifying letter, to the ".sfs" files mount-point being in the stack.
So there is no prescribed set of "?drv_...sfs" files, just 2 lists of characters, the APPEND_DRVS list and the PREPEND_DRVS list.
To simulate the current 'init' would require APPEND_DRVS='f z' and PREPEND_DRVS='y a', which is the default.
Note that the PREPEND_DRVS list is in reverse order, because they each get inserted as branch 1, thus "pushing down" any inserted before this one.
But there is more:
To make it easy for folk to manipulate which "?drv_...sfs" files are processed by 'init', and their order,
the APPEND_DRVS and PREPEND_DRVS can be defined in a 'BOOT_SPECS' file in the installation directory,
which gets read after the "puppy_...sfs" file has been processed, and thus established the location of the install directory.
Don't worry, this is not a complete re-write of 'init', the bulk of the current code is still used, it just has a new way of starting.
I have uploaded 'drvs+tmp.tar.gz' to https://www.mediafire.com/folder/hkwe9y ... /init-wait.
Download and extract the tar file to produce 'BOOT_SPECS', 'initrd.gz', and 'ydrv_upuphh+d_21.04.sfs'.
'BOOT_SPECS':
An example text file that can be edited, and placed in the installation directory.
'initrd.gz':
Replaces the current 'initrd.gz' file in the installation directory.
A "UPupHH+D" 'initrd.gz' file, containing the patched 'init' script.
(It might work in other recently "woofed" Puppies if the '/DISTRO_SPECS' file is replace with the one for the target Puppy.)
Or the 'init' script in another Puppies 'initrd.gz' could be replaced by the 'init' script in this one.
'ydrv_upuphh+d_21.04.sfs':
Contains only scripts so it should work in other Puppies by simply renaming it, and placing it in the installation directory.
It contains a patched 'sfs_load' that can recognise what is a ".sfs" file loaded by 'init' and so to be ignored, in the new environment.
And 'lsaufs', a utility for listing the contents of the stack in order.
It also contains a patched 'rc.sysinit',
because the 'init' script also contains a patch to mount a tmpfs directly as '/tmp', instead of creating a symbolic link to '/initrd/mnt/tmpfs/tmp'.
This 'rc.sysinit' recognises this, and adjusts the size of the '/tmp' tmpfs, rather than '/initrd/mnt/tmpfs/tmp' that contains the ".sfs" files.
With this change it would be Ok for ".pet" files to contain files in '/tmp'.
Besides, it makes the path of a ".AppImage" file to it's temporary mount-point, significantly shorter.