ref: 921944ab16f8e5b10e88addde2c1219453fd3a6b
parent: 827f6218ef9eee4bbba168c9d7575b5d6b9c2dba
author: kvik <kvik@a-b.xyz>
date: Sun Aug 23 18:49:25 EDT 2020
cwfs: add cwfs tips page
--- /dev/null
+++ b/cwfs.md
@@ -1,0 +1,53 @@
+cwfs(4) tips
+============
+
+No-dump configuration
+---------------------
+
+A cheap VPS or an SD card lack the storage capacity for running a usable
+default `cwfs(4)` setup with a big WORM partition and daily dumps.
+The go-to solution is the `hjfs(4)` file system, which doesn't
+use a dedicated WORM partition and doesn't do daily dumps by default.
+However, it has several performance problems and is not as well tested.
+
+The `cwfs` file system can be configured in lots of ways beyond the
+default cache-worm + other configuration supported by the 9front
+installer.
+
+The desired configuration we're going to cover is a single `main`
+file server tree backed by a simple disk file system - the same type
+used by the `other` tree in the default setup.
+
+To do this we're going to partition the disk appropriately and override
+the `mountcwfs` stage of the 9front installer with a replacement
+[script](http://a-b.xyz/23/666a) that will configure `cwfs`
+appropriately. The rest of the installation and most of the
+subsequent system operation remain unaffected.
+
+Start by booting from the installation media. Configure networking
+with `ip/ipconfig(8)` and fetch the replacement `mountcwfs` script,
+or put the script on a flash drive:
+
+ webfs
+ ramfs
+ hget http://a-b.xyz/23/666a >/tmp/mountcwfs
+ chmod +x /tmp/mountcwfs
+
+Override the `mountcwfs` stage using `bind(1)`:
+
+ bind /tmp/mountcwfs /bin/inst/mountcwfs
+
+Run `inst/start` and complete the stages up to `preppart` as you would
+normally. At `preppart`, delete the default partitions and create one
+named `fsmain` with a desired size:
+
+ d other
+ d fscache
+ d fsworm
+ a fsmain 123456 .+100%
+ w
+ q
+
+Make sure to "ream" the new partition at the next step.
+
+Complete the rest of the installation, reboot. That is all.