Lots of chatter in the Linux world about Immutable distros.........
e.g. https://itsfoss.com/immutable-linux-distros/
Puppy Linux is by design mainly immutable but this topic is to provide advice on How-To make a fully immutable install of Puppy Linux. It assumes a modern Woof-CE built version of Puppy Linux (e.g. with bdrv support). This is a "DIY" guide - i.e. it involves a number of manual steps - it does not produce an "Immutable OS" only an "Immutable Installation" of Puppy.
The How-To will be expanded / edited from any comments received.
How-To make an Immutable installation of Puppy Linux
- make a normal frugal install of Puppy
- edit the boot stanza to include pmedia=ataflash (or usbflash)
- boot into the new Puppy and make any configuration changes you need: e.g. location, timezone, keyboard, wifi, firewall, sound levels etc.
- load any extra sfs you require, but rename the sfs to have version independent names - e.g. chromium.sfs, thunderbird.sfs so they can be replaced with later versions without breaking immutability.
- using System -> Event manager -> Save session - set the Save interval to 0 and tick "Ask at shutdown whether to save session"
- reboot and create a save folder
then from another install of Puppy, or the same install but booted with pfix=ram
- rename the save folder to bdrv_****
- using pcompress (right click on bdrv folder), create a bdrv_****.sfs
- create an empty save folder with the name noted at 1.
- reboot into your new immutable system
- do various activities
- reboot but "Do not save" session
- check that the empty save folder remains empty
if you need to make additional configuration changes (3.), reinstate the bdrv folder as the save folder, boot into the system, make the changes, reboot saving the changes, remake the bdrv.sfs with pcompress