Re: How to find where an SFS is loaded?
/initrd/pup_rw=rw
/initrd/pup_ro1=ro+wh
/initrd/pup_ro2=ro
/initrd/pup_z=ro
/initrd/pup_ro4=ro
/initrd/pup_ro5=ro
shows that the sfs seems to be mounted and also mounted as a layer in the aufs file system.
I think the list of layers corresponds to the order in which the layers are mounted.
That is, /initrd/pup_rw is the top layer, and is writable, and whatever is in the top layer has priority over the other layers.
ro4 and ro5 are at the bottom of the layers. The upper layers have priority over the bottom layers.
So, if there is a file /usr/bin/palemoon in ro5 and if there is a file /usr/bin/palemoon in ro2,
then you will see the palemoon file in ro2, and the file in ro5 will be invisible.
Which sounds like what you are experiencing.
AFAIK, Puppy mounts SFS files below all the other Puppy sfs file systems.
So you can not over write a file that is already in the Puppy file system with an sfs (unless you copy it to an upper layer that is writable.)
The easiest solution to your problem is to use a different sfs, like a Palemoon Portable sfs that has the files in a different location in the file system. Or you can install it, using a .pet as oppossed to an sfs.
There are advantages and disadvantages to mounting sfs file systems at the bottom of the stack of layers (branches).
The disadvantage is you can not update a file that is already in the Puppy file system.
The advantage is, you can not accidentally over write a system library file with an incompatible one that could cause Puppy to immediately crash, or maybe become very unstable. That is, it is much safer to add sfs file systems to the bottom layers of the stack.