Skip to main content...

W0CHP.radio

No More Read-Only File-System in WPSD

…or, “R/O no mo, yo.” 😆

Most users are accustomed to the “other sftware” having a forced Read-Only file system by default. While this can be useful, it’s unnecessary in WPSD and in fact, is a pain in the ass sometimes.

Soon, when WPSD automatically updates itself at night, or when users invoke an update, the file-system will no longer be in Read-Only mode by default.

Rationale for enabling a persistent Read-Write file-system

The dashboard and underlying software only writes significant data to log files, which are used/parsed by the dashboard software to display meaningful data. However, these log files aren’t even written to/read from disk; they are actually stored to memory using tempfs.

Other than that, there is very little else for write activity, and most of it is also written to memory, vs. disk (see ASCII figure below).

And when a user needs to make configuration changes, setups, etc., the file system in Read-Only mode often creates issues where settings may not be saved properly. A huge pain in the ass!

Frankly, I feel a Read-Only file system in WPSD is a false sense of security, does not do much in prolonging SD card life1 since most data is in memory, and it honestly introduces needless complexity.

ASCII table of all all tempfs-enabled (memory) mountpoints in WPSD

tmpfs                   /run                    tmpfs   nodev,noatime,nosuid,mode=1777,size=32m         0       0
tmpfs                   /run/lock               tmpfs   nodev,noatime,nosuid,mode=1777,size=5m          0       0
tmpfs                   /sys/fs/cgroup          tmpfs   nodev,noatime,nosuid                            0       0
tmpfs                   /tmp                    tmpfs   nodev,noatime,nosuid,mode=1777,size=64m         0       0
tmpfs                   /var/log                tmpfs   nodev,noatime,nosuid,mode=0755,size=64m         0       0
tmpfs                   /var/lib/sudo           tmpfs   nodev,noatime,nosuid,mode=1777,size=16k         0       0
tmpfs                   /var/lib/dhcpcd         tmpfs   nodev,noatime,nosuid,mode=1777,size=32k         0       0
tmpfs                   /var/lib/logrotate      tmpfs   nodev,noatime,nosuid,mode=0755,size=16k         0       0
tmpfs                   /var/lib/nginx/body     tmpfs   nodev,noatime,nosuid,mode=1700,size=1m          0       0
tmpfs                   /var/lib/php/sessions   tmpfs   nodev,noatime,nosuid,mode=0777,size=64k         0       0
tmpfs                   /var/lib/samba/private  tmpfs   nodev,noatime,nosuid,mode=0755,size=4m          0       0
tmpfs                   /var/cache/samba        tmpfs   nodev,noatime,nosuid,mode=0755,size=1m          0       0
tmpfs                   /var/lib/vnstat         tmpfs   nodev,noatime,nosuid,mode=0755,size=64m         0       0

  1. Here’s an example of SD card longevity provided by my colleague, Tom. He’s been running read/write-heavy software on this instance for over 8 years without issue. Get a decent SD card and you’ll be just fine: http://www.threefools.org/weewx/status/index.html. I also run the same software as Tom, and my instance has been running non-stop on the same good-quality SD card since 2015. 

Document Version: fa4e031 -- Last Revision: 1/2/2024
Permanent Link: <https://w0chp.radio/documents/wpsd-ro-no-mo/>