Version v1.75.0

This commit is contained in:
Nick Craig-Wood
2026-07-31 16:56:33 +01:00
parent 3f8df416c8
commit 9ee9d0a0ca
76 changed files with 13809 additions and 4340 deletions
+60
View File
@@ -350,6 +350,63 @@ This may be due to newer [Apparmor](https://wiki.ubuntu.com/AppArmor) restrictio
which can be disabled with `sudo aa-disable /usr/bin/fusermount3` (you may need
to `sudo apt install apparmor-utils` beforehand).
## Mounting on OpenBSD
`rclone nfsmount` works on OpenBSD by spinning up the [serve nfs](/commands/rclone_serve_nfs/)
server and mounting it with the system `mount_nfs(8)`, the same approach used
for the NFS mount method on macOS. There is no FUSE-based mount option on
OpenBSD, so `nfsmount` is the only way to mount rclone remotes as a local
file system there.
### portmap registration
OpenBSD's kernel NFS client locates `mountd` through the system portmapper
rather than connecting to a fixed port, so rclone's in-process NFS server
needs to be registered with portmap before it can be mounted. Start the
`serve nfs` server on a fixed port, stop the system NFS services so they
don't conflict with it, then register that port with portmap for both the
`nfs` and `mountd` RPC programs (this is the recipe from
[hjicks in #8578](https://github.com/rclone/rclone/issues/8578#issuecomment-2799229652)):
```console
rclone serve nfs --addr localhost:<PORT> remote:path
doas rcctl stop nfsd portmap
doas pkill -9 mountd # mountd can't be stopped via rcctl(8)
doas rcctl -f start portmap
doas rpcinfo -s nfs 3 <PORT>
doas rpcinfo -s mountd 3 <PORT>
```
Replace `<PORT>` with the port passed to `--addr`. Port 2049 works too, but
needs either running rclone as root or adjusting `sysctl(8)` at
securelevel 0, so a non-privileged port is simpler for testing.
### Use `mount_nfs -T`, not `mount`
Mount the exported NFS share directly with `mount_nfs(8)` using the `-T`
flag to force TCP, rather than the generic `mount(8)` wrapper - OpenBSD's
`mount(8)` does not understand `-T` and rejects it with `unknown option -- T`:
```console
mount_nfs -T localhost:/ /path/to/local/mount
```
`rclone nfsmount` does this for you automatically on OpenBSD (it calls
`mount_nfs` directly with `-T` instead of going through `mount`), so this
is only needed if you are mounting the `serve nfs` export by hand.
### AUTH_UNIX and existing limitations
OpenBSD's (and the other BSDs') kernel NFS client requires the server to
offer the `AUTH_UNIX` authentication flavor during the MOUNT RPC handshake;
a server that only offers `AUTH_NULL` is rejected with
`mount_nfs: can't access /: Authentication error`. rclone's NFS server
advertises `AUTH_UNIX` for this reason, though it does not implement any
per-user access control on top of it - see
[issue #8578](https://github.com/rclone/rclone/issues/8578) for the
background on this and for the current state of OpenBSD support.
## Limitations
Without the use of `--vfs-cache-mode` this can only write files
@@ -1007,6 +1064,7 @@ rclone nfsmount remote:path /path/to/mountpoint [flags]
```
--addr string IPaddress:Port or :Port to bind server to
--allow-idmap Allow id-mapped mounts (Linux 6.12+, mount2 only)
--allow-non-empty Allow mounting over a non-empty directory (not supported on Windows)
--allow-other Allow access to other users (not supported on Windows)
--allow-root Allow access to root user (not supported on Windows)
@@ -1032,6 +1090,7 @@ rclone nfsmount remote:path /path/to/mountpoint [flags]
--nfs-cache-dir string The directory the NFS handle cache will use if set
--nfs-cache-handle-limit int max file handles cached simultaneously (min 5) (default 1000000)
--nfs-cache-type memory|disk|symlink Type of NFS handle cache to use (default memory)
--nfs-mount-path string Subpath of the remote to mount via NFS (must be an existing directory). (default "/")
--no-checksum Don't compare checksums on up/download
--no-modtime Don't read/write the modification time (can speed things up)
--no-seek Don't allow seeking in files
@@ -1082,6 +1141,7 @@ Flags for filtering directory listings
--exclude-if-present stringArray Exclude directories if filename is present
--files-from stringArray Read list of source-file names from file (use - to read from stdin)
--files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin)
--files-from0 stringArray Read list of source-file names from file using NUL as separator (use - to read from stdin)
-f, --filter stringArray Add a file filtering rule
--filter-from stringArray Read file filtering patterns from a file (use - to read from stdin)
--hash-filter string Partition filenames by hash k/n or randomly @/n