nfs-handler mounts a directory exported over NFSv3 by a Linux machine
or a NAS (TrueNAS, Synology, OpenMediaVault...) as an ordinary Amiga
volume: Workbench icon, device and volume name, accented filenames,
clean dismount.
Mount SYS:Storage/DOSDrivers/NFS0
List NFS0:
FbxDismount NFS0:
The NFSv3-over-TCP client layer comes from AmiNFSv3 by creep-ltx
(MIT). The AmigaDOS side is handled by filesysbox.library (the same
framework as smb2fs), which takes care of the DOS list, Workbench
disk-change events, dismounting, UTF-8 name conversion, ExamineAll,
notifications and 64-bit file sizes.
FEATURES
- NFSv3 over TCP against a stock Linux nfsd, TrueNAS, Synology
- Read and write; UNSTABLE writes with COMMIT at close and write
verifier checking (a server restart mid-file fails the close
instead of losing data silently)
- Pipelined transfers (DEPTH=1..8) with safe fallback
- Filenames converted between the server's UTF-8 and the Amiga
charset; case-insensitive lookups, accented letters included
- Timestamps in local time via locale.library
- Files beyond 4 GB
- Clean dismount with FbxDismount, remount on next access
REQUIREMENTS
- AmigaOS 3.0+
- filesysbox.library 54.3 or newer in LIBS:
- bsdsocket.library V4 (Roadshow, AmiTCP, Miami, Emu68 lwIP,
WinUAE bsdsocket emulation)
- an NFSv3 server exporting with "insecure" (TrueNAS: "Allow
non-root mount"): Amiga stacks do not use privileged ports
INSTALLATION
Run the Install script: it checks filesysbox.library, asks for your
CPU (68000/010, 68020/030, 68040, 68060, 68080 Apollo), copies the
matching binary to L:nfs-handler.
By hand:
Copy bin/nfs-handler.020 L:nfs-handler (or .000/.040/.060/.080)
Copy NFS0 SYS:Storage/DOSDrivers/
Edit the Startup line of NFS0:
Startup = "192.168.1.2 /mnt/pool/share VOLUME=Share UID=1000 GID=1000"
Template:
HOST/A,EXPORT,VOLUME/K,UID/K/N,GID/K/N,RSIZE/K/N,WSIZE/K/N,DEPTH/K/N,TZ/K,READONLY/S
HOST is a dotted-quad address; "host:/export" as one word (AmiNFSv3 /
NFS-GUI style) is accepted too, so an existing DOSDriver works
unchanged - set its StackSize to 65536. UID/GID default to 1000/1000.
RSIZE/WSIZE are the transfer chunks (4096..131072), DEPTH the number
of requests in flight for large transfers (default 1). TZ (hours east
of UTC) is normally unnecessary. READONLY mounts read-only.
Dismount with FbxDismount NFS0: (part of filesysbox).
SERVER
Linux /etc/exports:
/srv/amiga 192.168.1.0/24(rw,insecure,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
TrueNAS: enable NFSv3 under Services > NFS and tick "Allow non-root
mount" on the share. Open TCP 111, 2049 and the mountd port on any
host firewall.
HISTORY
1.0 First release. Binaries for 68000, 68020, 68040, 68060 and
68080 (Apollo); Installer script;
|