A better way to do this would be to use the overlay filesystem which will use some of your RAM to hold temporary files written to the partition. When rebooting the system will start over from when you enabled the overlay filesystem.
Linux 101 stuff. Questions are encouraged, noobs are welcome!
Linux introductions, tips and tutorials. Questions are encouraged. Any distro, any platform! Explicitly noob-friendly.
Looks good! I'll give it a try. Thanks!!
idk about Pi OS, but usually it will break, because all sorts of services need to write stuff in /var/ , /tmp/ or other places and they can't if it's mounted read-only. You could maybe get away with mounting tmpfs ramdisks in those places, but it will be complicated if the services expect something already there, e.g. database files.
There are parts of the filesystem that will still need to be written - most of /var
, /proc
, etc. The good news is that those are well known, and save for some exceptions could be tmpfs mounts.
Also, most modern filesystems have journaling and are resilient to sudden powerdown events, especially if you're not writing a lot.
It probably depends on what software you're running and what it does. I don't 100% know how to do this, but this is what I'd aim for:
Everything on the physical drive is read-only. On startup, it creates a RAMFS and copies any files that change as part of the software you're running there and points to that for all temporary files, etc.
That way the whole physical device is read only and anything that needs to change does so in memory only.
Just try and find out! There's a bunch of parts in your File-System hierarchy that the kernel emulates (and therefore sets permission bits itself). My guess? It might work to some extent (maybe even useful enough) bit could inflict unforeseen challenges.
Have fun!