Syspatch crash on a fresh OpenBSD install

2026-01-22

This is just a short note that arose from my experience using OpenBSD on a test machine.

Right after installing OpenBSD 7.8 (if doing this in a VM, remember to add a separate "USB Keyboard" device, since the installer doesn't support PS/2 keyboards), I tried to patch the system using the built-in script called syspatch. However, right after fetching new patches, it immediately crashed with a cryptic error message syspatch: Read-only filesystem, aborting.

It turns out that the patcher is confused by /usr not being on a separate filesystem (a setup that I prefer for non-production systems, where everything is put together to make things simpler), thereby blocking the patching process. An official patch was released to fix this problem, though you need to apply it manually (as far as I know, there is no way to bypass the checks without modifying the script).

The patch itself specifies that the following commands can be used to copy the patcher to a temporary location, change the settings to bypass the checks and run it from that temporary location. Afterwards it cleans up the modified version from root's homedir and recreates the device database.

sed -e 's/.checkfs/#checkfs/g' /usr/sbin/syspatch > /root/syspatch
ksh /root/syspatch
syspatch # re-run new syspatch command as instructed
rm /root/syspatch
dev_mkdb