The key to understanding how Puppy2 works is the initial boot script,
/initrd/sbin/init.

In a nutshell, everything you see in /initrd is the initial ramdisk,
which is actually /dev/ram0.

With Puppy, the initial ramdisk is not discarded after bootup.

The directories pup_rw, pup_ro1, etc are mounted on "/" when Puppy is running.
The number of them mounted is variable, at least pup_rw will be.
The usual situation is pup_rw, pup_ro1 and pup_ro2 are mounted on "/".

/initrd/pup_rw
This is the writable folder. Usually it is tmpfs (temporary filesystem) in ram.
However, a personal storage file (pup_save.3fs) or partition could be mounted
directly on here (in which case it won't be on /initrd/pup_ro1).

/initrd/pup_ro1
This is usually your saved files, and the contents of pup_rw get saved to here,
periodically or at end of session.
Note that this is mounted rw, although unionfs makes it behave as ro on "/".

/initrd/pup_ro2
These are all the Puppy files. Normally we don't write to this, we keep it pristine.

unionfs
Mounts the directories in this order:
 pup_rw
 pup_ro1
 pup_ro2
 pup_ro3
 pup_ro4
 pup_ro5

Where the higher directory has precedence. For example if files of the same name
exist in pup_rw and pup_ro1, the file in pup_rw is the one that is "seen".

------------------
