FW
Re: mount -o rw / doesn't work
Use mount -u /
FWIW,
mount -u <mountpoint> for zfs does not work at this time on FreeBSD 14 (untested yet on 15 or later, but I don't expect any different behavior). Lots of updates have been pulled in for ZFS since 2014, of course, but it doesn't work now. Just posting the current situation in case someone reads this [admittedly older] post and comes away with the incorrect expectation.
Current version of FreeBSD 14:
Code:
> zfs -V
zfs-2.2.9-FreeBSD_g079ba86d7
zfs-kmod-2.2.9-FreeBSD_g079ba86d7
This 'temporary mount point properties' issue has been an inconsistency in zfs (as implemented in FreeBSD or other operating systems) for some time (read various upstream github issues for OpenZFS), and it CAN sometimes differ depending on whether you use 'mount' or 'zfs mount' and which version of zfs.
Importantly, the tools (mount or zfs mount) are silently accepting the temporary readonly mount option without letting the user know it is failing to apply the option. Whether the temporary properties issue is eventually fixed or not, the requested operation by the user should not be silently ignored - at least, it should provide some feedback: warning message, error message, error code. Best would be an error code and a refusal to change any options if one of the options fails, but there could be a case for different behavior than that. Silently ignoring is not an acceptable option, but that is what we currently have.
See "Temporary Mount Point Properties" in zfsprops(8). It is documented that 'readonly' is one of the temporary properties that can be set (on or off), but it seems that currently it is not behaving as documented. Whether you temporarily want to set readonly from off to on or on to off, it silently does neither (whether trying to use 'mount' or 'zfs mount' with the desired temporary ro/rw option).
This failure to be able to set "Temporary Mount Point Properties" (only tested by me for 'readonly' property at this time) is true even if
mountpoint=legacy which hands the mounting off to
mount(8) instead of
zfs mount. It looks to be that FreeBSD (14 at least) does not work with "Temporary Mount Point Properties" - I have found no way to get FreeBSD to set zfs properties with a "temporary" state at all (they do work on Rocky Linux 9, for one other OS).