Cleanup manpage for mount_nfs4 (make it actually refer to nfs4 options).
Cleanup option parsing for mount_nfs4 program, and remove dead code. Approved by: re
This commit is contained in:
parent
70c1de7c02
commit
9f97168fe1
@ -32,15 +32,15 @@
|
||||
.\" @(#)mount_nfs.8 8.3 (Berkeley) 3/29/95
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 11, 2003
|
||||
.Dt MOUNT_NFS 8
|
||||
.Dd November 14, 2003
|
||||
.Dt MOUNT_NFS4 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm mount_nfs
|
||||
.Nd mount NFS file systems
|
||||
.Nm mount_nfs4
|
||||
.Nd mount NFSv4 file systems
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl 23NPTUbcdiLls
|
||||
.Op Fl NPTUbcdiLls
|
||||
.Op Fl D Ar deadthresh
|
||||
.Op Fl I Ar readdirsize
|
||||
.Op Fl R Ar retrycnt
|
||||
@ -57,30 +57,16 @@ The
|
||||
.Nm
|
||||
utility calls the
|
||||
.Xr mount 2
|
||||
system call to prepare and graft a remote NFS file system
|
||||
system call to prepare and graft a remote NFSv4 file system
|
||||
.Pq Ar rhost : Ns Ar path
|
||||
on to the file system tree at the point
|
||||
.Ar node .
|
||||
This command is normally executed by
|
||||
.Xr mount 8 .
|
||||
It implements the mount protocol as described in RFC 1094, Appendix A and
|
||||
.%T "NFS: Network File System Version 3 Protocol Specification" ,
|
||||
Appendix I.
|
||||
It implements the NFSv4 protocol as described in RFC 3530,
|
||||
.%T "NFS version 4 Protocol."
|
||||
.Pp
|
||||
By default,
|
||||
.Nm
|
||||
keeps retrying until the mount succeeds.
|
||||
This behaviour is intended for file systems listed in
|
||||
.Xr fstab 5
|
||||
that are critical to the boot process.
|
||||
For non-critical file systems, the
|
||||
.Fl b
|
||||
and
|
||||
.Fl R
|
||||
flags provide mechanisms to prevent the boot process from hanging
|
||||
if the server is unavailable.
|
||||
.Pp
|
||||
If the server becomes unresponsive while an NFS file system is
|
||||
If the server becomes unresponsive while an NFSv4 file system is
|
||||
mounted, any new or outstanding file operations on that file system
|
||||
will hang uninterruptibly until the server comes back.
|
||||
To modify this default behaviour, see the
|
||||
@ -91,12 +77,6 @@ flags.
|
||||
.Pp
|
||||
The options are:
|
||||
.Bl -tag -width indent
|
||||
.It Fl 2
|
||||
Use the NFS Version 2 protocol (the default is to try version 3 first
|
||||
then version 2).
|
||||
Note that NFS version 2 has a file size limit of 2 gigabytes.
|
||||
.It Fl 3
|
||||
Use the NFS Version 3 protocol.
|
||||
.It Fl D
|
||||
Set the
|
||||
.Dq "dead server threshold"
|
||||
@ -109,24 +89,6 @@ The value should normally
|
||||
be a multiple of
|
||||
.Dv DIRBLKSIZ
|
||||
that is <= the read size for the mount.
|
||||
.It Fl L
|
||||
Do
|
||||
.Em not
|
||||
forward
|
||||
.Xr fcntl 2
|
||||
locks over the wire.
|
||||
All locks will be local and not seen by the server
|
||||
and likewise not seen by other NFS clients.
|
||||
This removes the need to run the
|
||||
.Xr rpcbind 8
|
||||
service and the
|
||||
.Xr rpc.statd 8
|
||||
and
|
||||
.Xr rpc.lockd 8
|
||||
servers on the client.
|
||||
Note that this option will only be honored when performing the
|
||||
initial mount, it will be silently ignored if used while updating
|
||||
the mount options.
|
||||
.It Fl N
|
||||
Do
|
||||
.Em not
|
||||
@ -144,17 +106,11 @@ The default is a retry count of zero, which means to keep retrying
|
||||
forever.
|
||||
There is a 60 second delay between each attempt.
|
||||
.It Fl T
|
||||
Use TCP transport instead of UDP.
|
||||
This is recommended for servers that are not on the same LAN cable as
|
||||
the client.
|
||||
(NB: This is NOT supported by most
|
||||
.No non- Ns Bx
|
||||
servers.)
|
||||
Use TCP transport. This is the default.
|
||||
.It Fl U
|
||||
Force the mount protocol to use UDP transport, even for TCP NFS mounts.
|
||||
(Necessary for some old
|
||||
.Bx
|
||||
servers.)
|
||||
Force the mount protocol to use UDP transport.
|
||||
This is not supported by the version 4 protocol and is provided only for
|
||||
debugging purposes.
|
||||
.It Fl a
|
||||
Set the read-ahead count to the specified value.
|
||||
This may be in the range of 0 - 4, and determines how many blocks
|
||||
@ -167,41 +123,10 @@ trying the mount in the background.
|
||||
Useful for
|
||||
.Xr fstab 5 ,
|
||||
where the file system mount is not critical to multiuser operation.
|
||||
.It Fl c
|
||||
For UDP mount points, do not do a
|
||||
.Xr connect 2 .
|
||||
This must be used if the server does not reply to requests from the standard
|
||||
NFS port number 2049 or replies to requests using a different IP address
|
||||
(which can occur if the server is multi-homed).
|
||||
Setting the
|
||||
.Va vfs.nfs.nfs_ip_paranoia
|
||||
sysctl to 0 will make this option the default.
|
||||
.It Fl d
|
||||
Turn off the dynamic retransmit timeout estimator.
|
||||
This may be useful for UDP mounts that exhibit high retry rates,
|
||||
since it is possible that the dynamically estimated timeout interval is too
|
||||
short.
|
||||
.It Fl g
|
||||
Set the maximum size of the group list for the credentials to the
|
||||
specified value.
|
||||
This should be used for mounts on old servers that cannot handle a
|
||||
group list size of 16, as specified in RFC 1057.
|
||||
Try 8, if users in a lot of groups cannot get response from the mount
|
||||
point.
|
||||
.It Fl i
|
||||
Make the mount interruptible, which implies that file system calls that
|
||||
are delayed due to an unresponsive server will fail with EINTR when a
|
||||
termination signal is posted for the process.
|
||||
.It Fl l
|
||||
Used with NQNFS and NFSV3 to specify that the \fBReaddirPlus\fR RPC should
|
||||
be used.
|
||||
This option reduces RPC traffic for cases such as
|
||||
.Dq "ls -l" ,
|
||||
but tends to flood the attribute and name caches with prefetched entries.
|
||||
Try this option and see whether performance improves or degrades.
|
||||
Probably
|
||||
most useful for client to server network interconnects with a large bandwidth
|
||||
times delay product.
|
||||
.It Fl o
|
||||
Options are specified with a
|
||||
.Fl o
|
||||
@ -212,8 +137,9 @@ man page for possible options and their meanings.
|
||||
The following NFS specific options are also available:
|
||||
.Bl -tag -width indent
|
||||
.It Cm port Ns = Ns Aq Ar port_number
|
||||
Use specified port number for NFS requests.
|
||||
The default is to query the portmapper for the NFS port.
|
||||
Use specified port number for NFSv4 requests.
|
||||
The default is to use port 2049.
|
||||
Set this to 0 to query the portmapper for the NFSv4 port.
|
||||
.It Cm acregmin Ns = Ns Aq Ar seconds
|
||||
.It Cm acregmax Ns = Ns Aq Ar seconds
|
||||
.It Cm acdirmin Ns = Ns Aq Ar seconds
|
||||
@ -239,64 +165,6 @@ connections.
|
||||
Useful for hosts that have
|
||||
both an A record and an AAAA record for the same name.
|
||||
.El
|
||||
.Bl -tag -width ".Cm dumbtimer"
|
||||
.Ss Historic Fl o Ss Options
|
||||
Use of these options is deprecated, they are only mentioned here for
|
||||
compatibility with historic versions of
|
||||
.Nm .
|
||||
.It Cm bg
|
||||
Same as
|
||||
.Fl b .
|
||||
.It Cm conn
|
||||
Same as not specifying
|
||||
.Fl c .
|
||||
.It Cm dumbtimer
|
||||
Same as
|
||||
.Fl d .
|
||||
.It Cm intr
|
||||
Same as
|
||||
.Fl i .
|
||||
.It Cm lockd
|
||||
Same as not specifying
|
||||
.Fl L .
|
||||
.It Cm nfsv2
|
||||
Same as
|
||||
.Fl 2 .
|
||||
.It Cm nfsv3
|
||||
Same as
|
||||
.Fl 3 .
|
||||
.It Cm rdirplus
|
||||
Same as
|
||||
.Fl l .
|
||||
.It Cm mntudp
|
||||
Same as
|
||||
.Fl U .
|
||||
.It Cm resvport
|
||||
Same as
|
||||
.Fl P .
|
||||
.It Cm soft
|
||||
Same as
|
||||
.Fl s .
|
||||
.It Cm tcp
|
||||
Same as
|
||||
.Fl T .
|
||||
.El
|
||||
.It Fl r
|
||||
Set the read data size to the specified value.
|
||||
It should normally be a power of 2 greater than or equal to 1024.
|
||||
This should be used for UDP mounts when the
|
||||
.Dq "fragments dropped due to timeout"
|
||||
value is getting large while actively using a mount point.
|
||||
(Use
|
||||
.Xr netstat 1
|
||||
with the
|
||||
.Fl s
|
||||
option to see what the
|
||||
.Dq "fragments dropped due to timeout"
|
||||
value is.)
|
||||
See the
|
||||
.Fl w
|
||||
option as well.
|
||||
.It Fl s
|
||||
A soft mount, which implies that file system calls will fail
|
||||
after
|
||||
@ -315,19 +183,6 @@ value if there is a low retransmit rate but long response delay observed.
|
||||
option should be specified when using this option to manually
|
||||
tune the timeout
|
||||
interval.)
|
||||
.It Fl w
|
||||
Set the write data size to the specified value.
|
||||
Ditto the comments w.r.t. the
|
||||
.Fl r
|
||||
option, but using the
|
||||
.Dq "fragments dropped due to timeout"
|
||||
value on the server instead of the client.
|
||||
Note that both the
|
||||
.Fl r
|
||||
and
|
||||
.Fl w
|
||||
options should only be used as a last ditch effort at improving performance
|
||||
when mounting servers that do not support TCP mounts.
|
||||
.It Fl x
|
||||
Set the retransmit timeout count for soft mounts to the specified value.
|
||||
.El
|
||||
@ -335,17 +190,12 @@ Set the retransmit timeout count for soft mounts to the specified value.
|
||||
.Xr mount 2 ,
|
||||
.Xr unmount 2 ,
|
||||
.Xr fstab 5 ,
|
||||
.Xr idmapd 8 ,
|
||||
.Xr mount 8 ,
|
||||
.Xr mount_nfs 8 ,
|
||||
.Xr nfsd 8 ,
|
||||
.Xr nfsiod 8 ,
|
||||
.Xr showmount 8
|
||||
.Xr nfsiod 8
|
||||
.Sh BUGS
|
||||
Due to the way that Sun RPC is implemented on top of UDP (unreliable datagram)
|
||||
transport, tuning such mounts is really a black art that can only be expected
|
||||
to have limited success.
|
||||
For clients mounting servers that are not on the same
|
||||
LAN cable or that tend to be overloaded,
|
||||
TCP transport is strongly recommended,
|
||||
but unfortunately this is restricted to mostly
|
||||
.Bx 4.4
|
||||
servers.
|
||||
This version of the NFSv4 client, while functional, is a long way
|
||||
from compliance with RFC 3530. It lacks lock state, reboot recovery,
|
||||
delegation, gss, and many other mandatory items from the RFC.
|
||||
|
@ -290,14 +290,8 @@ main(argc, argv)
|
||||
nfsargs = nfsdefargs;
|
||||
nfsargsp = &nfsargs;
|
||||
while ((c = getopt(argc, argv,
|
||||
"23a:bcdD:g:I:iLl:No:PR:r:sTt:w:x:U")) != -1)
|
||||
"a:bcdD:I:iNo:PR:sTt:x:U")) != -1)
|
||||
switch (c) {
|
||||
case '2':
|
||||
mountmode = V2;
|
||||
break;
|
||||
case '3':
|
||||
mountmode = V3;
|
||||
break;
|
||||
case 'a':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num < 0)
|
||||
@ -308,9 +302,6 @@ main(argc, argv)
|
||||
case 'b':
|
||||
opflags |= BGRND;
|
||||
break;
|
||||
case 'c':
|
||||
nfsargsp->flags |= NFSMNT_NOCONN;
|
||||
break;
|
||||
case 'D':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
@ -318,19 +309,6 @@ main(argc, argv)
|
||||
nfsargsp->deadthresh = num;
|
||||
nfsargsp->flags |= NFSMNT_DEADTHRESH;
|
||||
break;
|
||||
case 'd':
|
||||
nfsargsp->flags |= NFSMNT_DUMBTIMR;
|
||||
break;
|
||||
#if 0 /* XXXX */
|
||||
case 'g':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
errx(1, "illegal -g value -- %s", optarg);
|
||||
set_rpc_maxgrouplist(num);
|
||||
nfsargsp->maxgrouplist = num;
|
||||
nfsargsp->flags |= NFSMNT_MAXGRPS;
|
||||
break;
|
||||
#endif
|
||||
case 'I':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
@ -341,12 +319,6 @@ main(argc, argv)
|
||||
case 'i':
|
||||
nfsargsp->flags |= NFSMNT_INT;
|
||||
break;
|
||||
case 'L':
|
||||
nfsargsp->flags |= NFSMNT_NOLOCKD;
|
||||
break;
|
||||
case 'l':
|
||||
nfsargsp->flags |= NFSMNT_RDIRPLUS;
|
||||
break;
|
||||
case 'N':
|
||||
nfsargsp->flags &= ~NFSMNT_RESVPORT;
|
||||
break;
|
||||
@ -422,13 +394,6 @@ main(argc, argv)
|
||||
errx(1, "illegal -R value -- %s", optarg);
|
||||
retrycnt = num;
|
||||
break;
|
||||
case 'r':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
errx(1, "illegal -r value -- %s", optarg);
|
||||
nfsargsp->rsize = num;
|
||||
nfsargsp->flags |= NFSMNT_RSIZE;
|
||||
break;
|
||||
case 's':
|
||||
nfsargsp->flags |= NFSMNT_SOFT;
|
||||
break;
|
||||
@ -443,13 +408,6 @@ main(argc, argv)
|
||||
nfsargsp->timeo = num;
|
||||
nfsargsp->flags |= NFSMNT_TIMEO;
|
||||
break;
|
||||
case 'w':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
errx(1, "illegal -w value -- %s", optarg);
|
||||
nfsargsp->wsize = num;
|
||||
nfsargsp->flags |= NFSMNT_WSIZE;
|
||||
break;
|
||||
case 'x':
|
||||
num = strtol(optarg, &p, 10);
|
||||
if (*p || num <= 0)
|
||||
@ -667,47 +625,6 @@ nfs_tryproto(struct nfs_args *nfsargsp, struct addrinfo *ai, char *hostp,
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* Check that the server (nfsd) responds on the port we have chosen. */
|
||||
clp = clnt_tli_create(RPC_ANYFD, nconf, &nfs_nb, RPCPROG_NFS, nfsvers,
|
||||
0, 0);
|
||||
if (clp == NULL) {
|
||||
snprintf(errbuf, sizeof errbuf, "[%s] %s:%s: %s", netid,
|
||||
hostp, spec, clnt_spcreateerror("nfsd: RPCPROG_NFS"));
|
||||
return (returncode(rpc_createerr.cf_stat,
|
||||
&rpc_createerr.cf_error));
|
||||
}
|
||||
if (nfsargsp->sotype == SOCK_DGRAM &&
|
||||
!(nfsargsp->flags & NFSMNT_NOCONN)) {
|
||||
/*
|
||||
* Use connect(), to match what the kernel does. This
|
||||
* catches cases where the server responds from the
|
||||
* wrong source address.
|
||||
*/
|
||||
doconnect = 1;
|
||||
if (!clnt_control(clp, CLSET_CONNECT, (char *)&doconnect)) {
|
||||
clnt_destroy(clp);
|
||||
snprintf(errbuf, sizeof errbuf,
|
||||
"[%s] %s:%s: CLSET_CONNECT failed", netid, hostp,
|
||||
spec);
|
||||
return (TRYRET_LOCALERR);
|
||||
}
|
||||
}
|
||||
|
||||
try.tv_sec = 10;
|
||||
try.tv_usec = 0;
|
||||
stat = clnt_call(clp, NFSPROC_NULL, (xdrproc_t)xdr_void, NULL,
|
||||
(xdrproc_t)xdr_void, NULL, try);
|
||||
if (stat != RPC_SUCCESS) {
|
||||
clnt_geterr(clp, &rpcerr);
|
||||
snprintf(errbuf, sizeof errbuf, "[%s] %s:%s: %s", netid,
|
||||
hostp, spec, clnt_sperror(clp, "NFSPROC_NULL"));
|
||||
clnt_destroy(clp);
|
||||
return (returncode(stat, &rpcerr));
|
||||
}
|
||||
clnt_destroy(clp);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Store the filehandle and server address in nfsargsp, making
|
||||
* sure to copy any locally allocated structures.
|
||||
@ -865,9 +782,9 @@ void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "%s\n%s\n%s\n%s\n",
|
||||
"usage: mount_nfs [-23KNPTUbcdilqs] [-D deadthresh] [-I readdirsize]",
|
||||
"usage: mount_nfs [-KNPTUbiqs] [-D deadthresh] [-I readdirsize]",
|
||||
" [-R retrycnt] [-a maxreadahead]",
|
||||
" [-g maxgroups] [-m realm] [-o options] [-r readsize]",
|
||||
" [-t timeout] [-w writesize] [-x retrans] rhost:path node");
|
||||
" [-m realm] [-o options]",
|
||||
" [-t timeout] [-x retrans] rhost:path node");
|
||||
exit(1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user