1) Local to the "init" script. Gets lost once "init" is finished.
2) Local to "rc.shutdown". Used to copy files from ram on first shutdown.
3) The one in place after "init" is finished, and remains active while puppy is running.
The first 2 quite definitely have no affect on the running puppy, and could be replaced with any code that puts the appropriate files in the appropriate place.
I had assumed that the 3rd one is used only by puppy utilities, and aufs had no need of it. So I removed it's creation from the "init" script.
The result, puppy still ran fine, but of course many puppy utilities that accessed "/initrd/pup_rw" failed.
To compensate, I also changed "init" to store the real path of the savefolder in "SAVE_LAYER" in PUPSTATE.
The latest "freememapplet_tray" that uses "SAVE_LAYER" worked once it had been recompiled with larger buffers to accommodate the much longer "SAVE_LAYER" string.
"snapmergepuppy" worked after a
Code: Select all
BASEMTP="`df-FULL --output=target "$BASE" | tail -1`"
"rc.shutdown" had the line
Code: Select all
if [ "$uniFS" == "aufs" -a "$SAVE_LAYER" == "/pup_rw" ]; then
Code: Select all
if [ "$uniFS" == "aufs" -a "`df-FULL --output=fstype /initrd/pup_rw | tail -1`" != "tmpfs" ]; then
I am not recommending that we pursue this to produce a real puppy. It just reinforces the idea that aufs only requires it's branches to be a directory in a Linux filesystem, nothing more.
gyro