Given the "Subject" of this topic, I decided to reply.
Can we have an overlayfs based Puppy instead of an aufs based Puppy?
Yes,
I've been running such a beast for a couple of years now.
My current daily workhorse is XenialPup 7.5 from 'mio22u_up_xenialpup_7.5.sfs', i.e. using overlayfs for it's stack.
BUT,
there are significant differences between overlayfs and aufs, these mean some things have to change.
1. Once an overlayfs stack has been mounted, it's structure can't be changed.
Accordinng to the kernel documentation, the result is undetermined.
(This is the most annoying, because I seem to end up rebooting a lot, but maybe that's due to the stuff I do,
if you spend all your time running ordinay applications, maybe it wouldn't matter so much.)
'sfs_load' can't append an extra layer to the stack, or remove a layer from the stack.
'sfs-load' is reduced to simply managing the list of extra sfs's that get built into the stack at boot.
(remounting the stack with a differrent set of layers changes nothing.)
'snapmergepuppy' cannot work at all, so the current "odd" pupmodes can't work.
'init' can't add layers one by one, the stack has to be created in one go,
although you can have sub-stacks, so my current overlayfs puppy has a read-only stack containing only the sfs files,
the running stack has only 2 layers, the RW layer and the sfs stack.
So the 'init' script has to be significantly rewritten as a minimum.
2. An overlayfs RW layer requires 2 directories "on the same filesystem". The directory containing the layer, and a "work" directory.
An aufs RW layer requires only the directory containing the layer.
The current 'savefile' mechanism uses the mount-point of the savefile as the single directory to add to the stack.
There remains an issue as to where to create the "work" directory when using a savefile as an RW layer for an overlayfs stack.
I never found a solution that would reliably shutdown cleanly.
But of course there's more than 1 way to skin a cat.
For instance, in my overlayfs Puppy, I can run my pupmode=12 in a "save query" way, i.e. on shutdown it will ask if I want to save or not, and won't if I select "no".
When running this way, the 'init' script creates an archive of the RW layer directory if there is no archive;
If there is an archive it clobbers the RW directory, with the archive contents;
At shutdown, if I ask for a save the archive is deleted, if I ask for no save, the archive is not touched and all changes to the RW directory are clobbered at the next boot.
(From ny browsing of the forum, some folk run pupmode=13 so they can have "save query", but pupmode=13 going doesn't mean "save query" has to go.)
So, we should stick with aufs as long as we can.
But, the end of aufs, does not have to mean the end of Puppy, an overlayfs based Puppy is doable.
gyrog