|
|
1.1 root 1: % $Id: maps.tex,v 5.2 90/06/23 22:21:51 jsp Rel $
2: %
3: % Copyright (c) 1989 Jan-Simon Pendry
4: % Copyright (c) 1989 Imperial College of Science, Technology & Medicine
5: % Copyright (c) 1989 The Regents of the University of California.
6: % All rights reserved.
7: %
8: % This code is derived from software contributed to Berkeley by
9: % Jan-Simon Pendry at Imperial College, London.
10: %
11: % Redistribution and use in source and binary forms are permitted provided
12: % that: (1) source distributions retain this entire copyright notice and
13: % comment, and (2) distributions including binaries display the following
14: % acknowledgement: ``This product includes software developed by the
15: % University of California, Berkeley and its contributors'' in the
16: % documentation or other materials provided with the distribution and in
17: % all advertising materials mentioning features or use of this software.
18: % Neither the name of the University nor the names of its contributors may
19: % be used to endorse or promote products derived from this software without
20: % specific prior written permission.
21: % THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
22: % WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
23: % MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
24: %
25: % @(#)maps.tex 5.1 (Berkeley) 7/19/90
26:
27:
28: \Chapter{Mount-maps}
29:
30: \Amd\ has no built-in knowledge of machines or filesystems.
31: External {\em mount-maps} are used to provide the required information.
32: Specifically, \amd\ needs to know when and under what conditions it should
33: mount filesystems.
34:
35: The map entry corresponding to the requested name contains
36: a list of possible locations from which to resolve the request.
37: Each location specifies filesystem type, information required by that
38: filesystem (for example the block special device in the case of \UFS), and
39: some information describing where to mount the filesystem (\see \Ref{mount location}).
40: A location may also contain {\em selectors} (\see \Ref{selectors}).
41:
42: \Section{Map Types}
43:
44: A mount-map can be implemented as a regular file, an ndbm database
45: a YP map \cite{sun:yp} or via
46: the {\em Hesiod} \cite{mit:hesiod} name
47: server.
48: In addition, the password ``file'' can be used as a source of
49: map information.
50: %\footnote{In future, gdbm databases will also be supported.}
51: A mount-map name is a sequence of characters.
52: When an automount point is created a handle on the mount-map
53: is obtained. If the the map name begins with the sequence
54: ``{\tt hesiod.}''\ then the {\em Hesiod} name server will be used.
55: If the map name is the string ``{\tt /etc/passwd}'' then the password
56: ``file'' will be used.
57: Otherwise the map name is referenced as a file,
58: then as an ndbm database by that name and then as a YP map.
59: As soon as a valid reference is found the map type is noted
60: for future use but any resources held are released, for example
61: any open file descriptors are closed.
62: The available map types are a configurable component of \amd\ and
63: can be displayed by running the command {\tt amd~-v}.
64:
65: By default, \amd\ does not cache any data retrieved from a mount map.
66: This is a policy decision based on the observation that most workstations
67: have more available CPU time than spare memory.
68: However, on a multi-user service or larger workstation the faster
69: response provided by a cache can be preferable. The \opt{cache}
70: option can be specified on automount points to alter the
71: caching behaviour (\see \Ref{auto-fs}).
72: Specifying {\tt cache:=mapdefault} selects a suitable default
73: cache mode depending on the map type. The individual defaults
74: are described below.
75:
76: \Subsection{File maps}
77: When \amd\ searches a file for a map entry it does a simple scan of the file
78: and supports both comments and continuation lines.
79:
80: Continuation lines are indicated by a backslash character (``{\verb+\+}'') as
81: the last character of a line in the file. The backslash, newline character
82: {\em and any leading white space on the following line} are discarded. A maximum
83: line length of 2047 characters is enforced after continuation lines are read
84: but before comments are stripped. Each line must end with
85: a newline character; that is newlines are terminators, not separators.
86: The following examples illustrate this:
87: \begin{verbatim}
88: key valA valB; \
89: valC
90: \end{verbatim}
91: specifies {\em three} locations, and is identical to
92: \begin{verbatim}
93: key valA valB; valC
94: \end{verbatim}
95: However,
96: \begin{verbatim}
97: key valA valB;\
98: valC
99: \end{verbatim}
100: specifies only {\em two} locations, and is identical to
101: \begin{verbatim}
102: key valA valB;valC
103: \end{verbatim}
104:
105: After a complete line has been read from the file, including continuations,
106: \amd\ determines whether there is a comment on the line.
107: A comment begins with a hash (``{\tt \#}'') character and continues to the
108: end of the line.
109: There is no way to escape or change the comment lead-in character.
110:
111: Note that continuation lines and comment support {\em only} apply to
112: file maps and ndbm maps built with the {\tt mk-amd-map} program.
113:
114: When caching is enabled, file maps have a default cache mode of {\tt all} (\see \Ref{afs:cache}).
115:
116: \Subsection{ndbm maps}\label{ndbm-maps}
117: An ndbm map may be used as a fast access form of a file map.
118: A program, {\tt mk-amd-map}, converts a normal map file into
119: an ndbm database. This program supports the same continuation and
120: comment conventions that are provided for file maps.
121: Note that ndbm format files {\em may not} be
122: sharable across machine architectures.
123: The notion of speed generally only applies to large maps;
124: a small map, less than a single disk block, is almost certainly
125: better implemented as a file map.
126:
127: ndbm maps do not support cache mode {\tt all} and, when
128: caching is enabled, have a default cache mode of {\tt inc} (\see \Ref{afs:cache}).
129:
130: \Subsection{NIS maps}
131: When using NIS (formerly YP), an \amd\ map is implemented directly by the
132: underlying NIS map.
133: Comments and continuation lines are {\em not} supported
134: in the automounter and must be stripped when constructing the NIS server's database.
135:
136: NIS maps do not support cache mode {\tt all} and,
137: when caching is enabled,
138: have a default cache mode of {\tt inc} (\see \Ref{afs:cache}).
139:
140: \Subsection{Hesiod}
141: When the map name begins with the string ``{\tt hesiod.}'' lookups
142: are made using the {\em Hesiod} name server. The string following
143: the dot is used as a name qualifier and is prepended with
144: the key being located. The entire string is then resolved in the
145: {\t automount} context. For example, if the map name is {\tt hesiod.homes}
146: and the key is {\tt jsp} then {\em Hesiod} is asked to resolve
147: {\tt jsp.homes.automount}.
148:
149: Hesiod maps do not support cache mode {\tt all} and, when
150: caching is enabled, have a default cache mode of {\tt inc} (\see \Ref{afs:cache}).
151:
152: \Subsection{Password}\label{map:passwd}
153: The password map support is unlike the four previous map types.
154: When the map name is the string {\tt /etc/passwd}
155: \amd\ can lookup a user name in the password file and re-arrange
156: the home directory field to produce a usable map entry.
157:
158: \Amd\ assumes the home directory has the format
159: {\tt /}{\em anydir}{\tt /}{\em dom$_1$}{\tt /../}{\em dom$_n$}{\tt /}{\em login}.
160: It breaks this string into a map entry where
161: \Var{rfs} has the value ``{\tt /}{\em anydir}{\tt /}{\em dom$_n$}'',
162: \Var{rhost} has the value ``{\em dom$_n$}{\tt .}{\em ...}{\tt .}{\em dom$_1$}'',
163: and \Var{sublink} has the value ``{\em login}''.
164:
165: Thus if the password file entry was
166: \begin{quote}
167: \tt /home/achilles/jsp
168: \end{quote}
169: the map
170: entry used by \amd\ would be
171: \begin{quote}
172: \tt rfs:=/home/achilles;rhost:=achilles;sublink:=jsp
173: \end{quote}
174: Similarly, if the password file entry was
175: \begin{quote}
176: \tt /home/cc/sugar/mjh
177: \end{quote}
178: the map entry used by \amd\ would be
179: \begin{quote}
180: \tt rfs:=/home/sugar;rhost:=sugar.cc;sublink:=jsp
181: \end{quote}
182:
183: %\Subsection{Gdbm}
184:
185: \Section{Key Lookup}
186:
187: The key is located in the map whose type was determined when the
188: automount point was first created.
189: In general the key is a pathname component.
190: In some circumstances this may be modified by variable expansion
191: (\see \Ref{var-expansion})
192: and prefixing.
193: If the automount point has a prefix, specified by the \opt{pref} option, then
194: that is prepended to the search key before the map is searched.
195:
196: If the key cannot be found then a {\em wildcard} match is attempted.
197: Currently this simply attempts to locate a special key ``{\tt *}''.
198: If the wildcard is not found then an error code is propagated back to the
199: kernel, otherwise \amd\ proceeds as if an exact match had been found.
200: The value field is then used to resolve the mount request (\see \Ref{filesystems}).
201:
202:
203: \Section{Location Format}\label{opts:values}
204:
205: The value field from the lookup provides the information required to mount a filesystem.
206: The information is parsed according to the syntax shown in figure \ref{figure:so-grammar}.
207: \begin{figure}[htb]
208: \begin{tabbing}
209: Indent \= Long Gram Rule \= \kill
210: \> {\em location-list}:\\
211: \> \> {\em location-selection}\\
212: \> \> {\em location-list}\ \verb*+ +\ {\tt ||}\ \verb*+ +\ {\em location-selection}\\
213: \> {\em location-selection}:\\
214: \> \> {\em location}\\
215: \> \> {\em location-selection}\ \verb*+ +\ {\em location}\\
216: \> {\em location}:\\
217: \> \> {\em location-info}\\
218: \> \> {\tt -}{\em location-info}\\
219: \> \> {\tt -}\\
220: \> {\em location-info}:\\
221: \> \> {\em sel-or-opt}\\
222: \> \> {\em location-info}{\tt ;}{\em sel-or-opt}\\
223: \> \> {\tt ;}\\
224: \> {\em sel-or-opt}:\\
225: \> \> {\em selection}\\
226: \> \> {\em opt-ass}\\
227: \> {\em selection}:\\
228: \> \> {\rm selector}{\tt ==}{\em value}\\
229: \> \> {\rm selector}{\tt !=}{\em value}\\
230: \> {\em opt-ass}:\\
231: \> \> {\rm option}{\tt :=}{\em value}\\
232: \end{tabbing}
233: \caption{\label{figure:so-grammar}Location syntax}
234: \end{figure}
235: Note that unquoted whitespace is not allowed in a location description.
236: White space is only allowed, and is mandatory, where shown with the symbol \verb*+ +.
237:
238: A {\em location-selection} is a list of possible volumes with which to
239: satisfy the request. {\em location-selection}s are separated by the {\tt ||}
240: operator. The effect of this operator is to prevent use of location-selections
241: to its right if any of the location-selections on its left were selected
242: (see \Ref{selectors}).
243:
244: The location-selection, and singleton {\em location-list},
245: {\tt type:=ufs;dev:=/dev/xd1g} would inform \amd\ to mount a
246: \UFS\ filesystem from the block special device {\tt /dev/xd1g}.
247:
248: The {\em sel-or-opt} component is either the name of an option required by a
249: specific filesystem, or it is the name of a built-in, predefined selector such
250: as the architecture type.
251: The value may be quoted with double quotes ``{\tt "}'',
252: for example {\tt type:="ufs";dev:="/dev/xd1g"}. These quotes are
253: stripped when the value is parsed and there is no way to get a double quote
254: into a value field. Double quotes are used to get white space into a value field,
255: which is needed for the program filesystem (\see \Ref{pfs}).
256:
257: \label{defaults}A location beginning with a dash ``{\tt -}'' is used
258: to specify default values for subsequent locations.
259: Any previously specified defaults in the location-list are discarded. The
260: default string can be empty in which case no defaults apply.
261: The location {\tt -fs:=/mnt;opts:=ro} would set the local mount point
262: to {\tt /mnt} and cause mounts to be read-only by default.
263: Defaults specified this way are appended to, and so
264: override, any global map defaults given
265: with {\tt /defaults}\label{/defaults}).
266: A {\tt /defaults} value {\em gdef} and a location list
267: \begin{quote}
268: ${\tt -}{\em def}_a\ $\verb*+ +$\ {\em loc}_{a_1}\ $\verb*+ +$\ {\em loc}_{a_2}\ $\verb*+ +$\ {\tt -}{\em def}_b\ $\verb*+ +$\ {\em loc}_{b_1}\ \ldots$
269: \end{quote}
270: is equivalent to
271: \begin{quote}
272: ${\tt -}{\em gdef}{\tt ;}{\em def}_a\ $\verb*+ +$\ {\em loc}_{a_1}\ $\verb*+ +$\ {\em loc}_{a_2}\ $\verb*+ +$\ {\tt -}{\em gdef}{\tt ;}{\em def}_b\ $\verb*+ +$\ {\em loc}_{b_1}\ \ldots$
273: \end{quote}
274:
275: \Subsection{Variable expansion}\label{var-expansion}
276:
277: To allow generic location specifications \amd\ does variable expansion
278: on each location and also on some of the option strings.
279: Any option or selector appearing in the form \Var{{\em var}}
280: is replaced by the current value of that option or selector.
281: For example, if the value of \Var{key} was {\tt bin}, \Var{autodir} was {\tt /a}
282: and \Var{fs} was \Var{autodir}{\tt /local/}\Var{key} then after
283: expansion \Var{fs} would have the value {\tt /a/local/bin}.
284: Any environment variable can be accessed in a similar way.
285:
286: Two pathname operators are available when expanding a variable.
287: If the variable name begins with ``{\tt /}'' then only the
288: last component of then pathname is substituted. For example,
289: if \Var{path} was {\tt /foo/bar} then \Var{/path} would be
290: expanded to {\tt bar}.
291: Similarly, if the variable name ends with ``{\tt /}'' then all but
292: the last component of the pathname is substituted.
293: In the previous example, \Var{path/} would be expanded to {\tt /foo}.
294:
295: Variable expansion is a two phase process. Before a location is parsed, all
296: references to selectors, \eg\ \Var{path}, are expanded. The location is then
297: parsed, selections are evaluated and option assignments recorded. If there
298: were no selections or they all succeeded the location is used and the values of
299: the following options are expanded in the order given:
300: \opt{sublink}, \opt{rfs}, \opt{fs}, \opt{opts}, \opt{mount} and \opt{unmount}.
301: Note that expansion of option values is done after {\em all} assignments have
302: been completed and not in a purely left to right order as is done by the shell.
303: This generally has the desired effect but care must be taken if one of the
304: options references another, in which case the ordering can become significant.
305:
306: There are two special cases concerning variable expansion. Firstly, before a map
307: is consulted, any selectors in the name received from the kernel are expanded.
308: For example, if the request from the kernel was for \Var{arch}{\tt .bin} and the
309: machine architecture was {\tt vax}, the value given to \Var{key} would be {\tt vax.bin}.
310: Secondly, the value of \Var{rhost} is expanded and normalized before the other options
311: are expanded. The normalization process strips any local sub-domain components.
312: For example, if \Var{domain} was {\tt Berkeley.EDU} and \Var{rhost} was initially
313: {\tt snow.Berkeley.EDU}, after the normalization it would simply be {\tt snow}.
314:
315: \Subsection{Selectors}\label{selectors}
316:
317: Selectors are used to control the use of a location.
318: It is possible to share a mount map between many machines in
319: such a way that filesystem location, architecture and operating
320: system differences are hidden from the users.
321: A selector of the form {\tt arch==sun3;os==sos4} would only apply
322: on Sun-3s running SunOS 4.$x$.
323:
324: Selectors are evaluated left to right. If a selector fails then that
325: location is ignored. Thus the selectors form a conjunction and the
326: locations form a disjunction.
327: If all the locations are ignored or otherwise fail then \amd\ uses
328: the {\em error} filesystem (\see \Ref{error-fs}). This is equivalent
329: to having a location {\tt type:=error} at the end of each mount-map
330: entry.
331:
332: The selectors currently implemented are:
333:
334: \begin{list}{}%
335: {\settowidth{\labelwidth}{{\tt autodir}}\setlength{\leftmargin}{1.2\labelwidth}}
336: \item[\tt arch\hfill]
337: the machine architecture which was automatically determined at compile time.
338: The architecture type can be displayed by running the command {\tt amd~-v}.
339: The currently supported architectures are listed in table \ref{table:arch}.
340: \begin{table}[htb]
341: \centering
342: \begin{tabular}{ll}
343: Name & Architecture \\ \hline
344: \tt alliant & Alliant FX/4 \\
345: \tt arm & Acorn ARM \\
346: \tt encore & Encore (reserved) \\
347: \tt fps500 & FPS Model 500 \\
348: \tt hp9000 & HP 9000/300 family \\
349: \tt hp9k8 & HP 9000/800 family (reserved) \\
350: \tt ibm032 & IBM RT \\
351: \tt ibm6000 & IBM RISC System/6000 \\
352: \tt macII & Apple Mac II \\
353: \tt mips & MIPS R2000 \\
354: \tt multimax & Encore Multimax \\
355: \tt orion105 & HLH Orion 1/05 \\
356: \tt powernode & Gould Powernode family \\
357: \tt sun3 & Sun-3 family \\
358: \tt sun4 & Sun-4 family \\
359: \tt tahoe & Tahoe family \\
360: \tt vax & DEC \sc Vax \\
361: \end{tabular}
362: \caption{\label{table:arch}Architectures supported by \amd}
363: \end{table}
364:
365: \item[\tt autodir\hfill]
366: the default directory under which to mount filesystems.
367: This may be changed by the ``-a'' command line option.
368: See the \opt{fs} option.
369:
370: \item[\tt byte\hfill]\label{byte-selector}
371: the machine's byte ordering. This is either {\tt little}, indicating
372: little-endian, or {\tt big}, indicating big-endian.
373: One possible use is to share {\tt rwho} databases (see \Ref{example:rwho}).
374: Another is to share ndbm databases,
375: however this use can be considered a courageous juggling act.
376:
377: \item[\tt cluster\hfill]
378: is provided as a hook for the name of the local cluster. This can
379: be used to decide which servers to use for copies of replicated filesystems.
380: \Var{cluster} defaults to the value of \Var{domain} unless a different
381: value is set with the ``-C'' command line option.
382:
383: \item[\tt domain\hfill]
384: the local domain name as specified by the ``-d'' command line option.
385: See {\tt host}.
386:
387: \item[\tt host\hfill]
388: the local hostname as determined by {\bf gethostname}(2).
389: If no domain name was specified on the command line
390: and the hostname contains a period ``{\tt .}'' then the string
391: before the period is used as the host name, and the string
392: after the period is assigned to \Var{domain}.
393: For example, if the hostname is {\tt styx.doc.ic.ac.uk} the {\tt host}
394: would be {\tt styx} and {\tt domain} would be {\tt doc.ic.ac.uk}.
395: {\tt hostd} would be {\tt styx.doc.ic.ac.uk}.
396:
397: \item[\tt hostd\hfill]
398: is \Var{host} and \Var{domain} concatenated with a ``{\tt .}'' inserted between them
399: if required.
400: If \Var{domain} is an empty string then \Var{host} and \Var{hostd} will
401: be identical.
402:
403: \item[\tt karch\hfill]
404: is provided as a hook for the kernel architecture. This is used
405: on SunOS 4, for example, to distinguish between different {\tt /usr/kvm} volumes.
406: \Var{karch} defaults to the value of \Var{arch} unless a different
407: value is set with the ``-k'' command line option.
408:
409: \item[\tt os\hfill]
410: the operating system.
411: Like the machine architecture, this is automatically determined at compile time.
412: The operating system name can be displayed by running the command {\tt amd~-v}.
413: The currently supported operating systems are listed in table \ref{table:os}.
414: \begin{table}[htb]
415: \centering
416: \begin{tabular}{ll}
417: Name & System \\ \hline
418: \tt acis43 & 4.3 BSD for IBM RT \\
419: \tt aix3 & AIX 3.1 \\
420: \tt aux & System V for Mac-II \\
421: \tt bsd44 & 4.4 BSD \\
422: \tt concentrix & Concentrix 5.0 \\
423: \tt fpx4 & Celerity FPX 4.1/2 \\
424: \tt hlh42 & HLH OTS 1.$x$ (4.2 BSD) \\
425: \tt hpux & HP-UX 6.$x$ \\
426: \tt riscix & Acorn RISC iX \\
427: \tt sos3 & SunOS 3.4 \& 3.5 \\
428: \tt sos4 & SunOS 4.$x$ \\
429: \tt umax43 & Umax 4.3 BSD \\
430: \tt u2\_2 & Ultrix 2.2 \\
431: \tt u3\_0 & Ultrix 3.0 \\
432: \tt utx32 & Gould UTX/32 Rel 2.$x$ \\
433: \tt xinu43 & mt Xinu MORE/bsd \\
434: \end{tabular}
435: \caption{\label{table:os}Operating systems supported by \amd}
436: \end{table}
437: \end{list}
438:
439: The following selectors are also provided. Unlike the other selectors,
440: they vary for each lookup.
441: Note that when the name from the kernel is expanded prior to a map
442: lookup, these selectors are all defined as empty strings.
443: \begin{list}{}%
444: {\settowidth{\labelwidth}{{\tt autodir}}\setlength{\leftmargin}{1.2\labelwidth}}
445: \item[\tt key\hfill]
446: the name being resolved.
447: For example, if {\tt /home} is an automount point, then accessing
448: {\tt /home/foo}\label{foo-path} would set \Var{key} to the string {\tt foo}.
449: The key is prefixed by the \opt{pref} option set in the parent mount point.
450: The default prefix is an empty string. If the prefix was {\tt blah/} then
451: \Var{key} would be set to {\tt blah/foo}.
452:
453: \item[\tt map\hfill]
454: the name of the mount map being used.
455:
456: \item[\tt path\hfill]
457: the full pathname of the name being resolved. For example {\tt /home/foo}
458: in the example above.
459:
460: \end{list}
461:
462: Selectors can be negated by using {\tt !=} instead of {\tt ==}.
463: For example to select a location
464: on all non-{\sc Vax} machines the selector {\tt arch!=vax} would be used.
465:
466: \Subsection{Options}\label{options}
467:
468: Options are parsed concurrently with selectors. The difference is that
469: when an option is seen the string following the ``{\tt :=}'' is recorded for
470: later use. As a minimum the \opt{type} option must be specified.
471: Each filesystem type has other options which must also be specified.
472: The filesystem specific options are detailed in \Ref{filesystems}.
473:
474: The following options apply to more than one filesystem type:
475: \begin{list}{}
476: {\settowidth{\labelwidth}{{\tt sublink}}\setlength{\leftmargin}{1.2\labelwidth}}
477: \item[\tt delay\hfill]
478: the delay, in seconds, before an attempt will be made to mount from the current location.
479: Auxilliary data, such as network address, file handles and so on are computed
480: regardless of this value.
481: A delay can be used to implement the notion of primary and secondary file servers.
482: The secondary servers would have a delay of a few seconds,
483: thus giving the primary servers a chance to respond first.
484:
485: \item[\tt fs\hfill]\label{mount location}
486: the local mount point.
487: The semantics of this option vary between filesystems.
488:
489: For \NFS\ and \UFS\ filesystems the value of \Var{fs} is used as the local
490: mount point. It is important that this string uniquely identifies the
491: filesystem being mounted. To satisfy this requirement, it should contain the
492: name of the host on which the filesystem is resident and the pathname
493: of the filesystem on the local or remote host.
494:
495: The reason for
496: requiring the hostname is clear if replicated filesystems are considered.
497: If a fileserver goes down and a replacement filesystem is mounted then the {\em local}
498: mount point {\em must} be different from that of the filesystem which
499: is hung.
500: Some encoding of the filesystem name is required if more than one filesystem
501: is to be mounted from any given host.
502:
503: If the hostname is first in the path then all mounts from a particular
504: host will be gathered below a single directory. If that server goes
505: down then the hung mount points are less likely to be accidentally referenced,
506: for example when {\bf getwd}(3) traverses the namespace to find the pathname
507: of the current directory.
508:
509: The {\tt fs} defaults to \Var{autodir}/\Var{rhost}\Var{rfs}.
510: In addition, {\tt rhost} defaults to the local host name (\Var{host}) and
511: {\tt rfs} defaults to the value of \Var{path}, which
512: is the full path of the requested file; {\tt /home/foo}
513: in the example above (\see \Ref{foo-path}).
514: \Var{autodir} defaults to {\tt /a} but may be changed with the ``-a''
515: command line option\footnote{Sun's automounter defaults to {\tt /tmp\_mnt}}.
516: Note that there is no ``{\tt /}'' between the \Var{rhost} and \Var{rfs} since
517: \Var{rfs} begins with a ``{\tt /}''.
518:
519: \item[\tt opts\hfill]
520: the options to pass to the mount system call.
521: A leading ``{\tt -}'' is silently ignored.
522: The mount options supported generally correspond to
523: those used by {\bf mount}(8) and are listed in table \ref{table:mount opts}.
524: Some additional pseudo-options are interpreted by \amd\ and
525: are listed in table \ref{table:pseudo-mount opts}.
526: Unless specifically overridden, each of the system default mount
527: options applies.
528: Any options not recognised are ignored.
529: If no options list is supplied the string {\tt rw,defaults} is used
530: and all the system default mount options apply.
531: \begin{table}[htb]
532: \centering
533: \begin{tabular}{lp{4in}}
534: Option & Semantics \\\hline
535: \tt grpid & Use BSD directory group-id semantics. \\
536: \tt intr & Allow keyboard interrupts on hard mounts. \\
537: \tt nodevs & Don't allow local special devices on this filesystem. \\
538: \tt nosuid & Don't allow set-uid or set-gid executables on this filesystem. \\
539: \tt quota & Enable quota checking on this mount. \\
540: \tt retrans=$n$ & The number of \NFS\ retransmits made before a user error is generated
541: by a {\tt soft} mounted filesystem, and before a
542: {\tt hard} mounted filesystem reports {\tt NFS server {\em yoyo}
543: not responding still trying}. \\
544: \tt ro & Mount this filesystem readonly. \\
545: \tt soft & Give up after {\em retrans} retransmissions. \\
546: \tt tcp & Use TCP/IP instead of UDP/IP \\
547: \tt timeo=$n$ & The \NFS\ timeout, in tenth-seconds, before a request is retransmitted. \\
548: \end{tabular}
549: \caption{Mount options passed to the mount system call\label{table:mount opts}}
550: \end{table}
551:
552: \begin{table}[htb]
553: \centering
554: \begin{tabular}{lp{4in}}
555: Option & Semantics \\\hline
556: \tt notimeout & Configures the mount so that its time-to-live will
557: never expire. This is also the default for some
558: filesystem types. \\
559: %
560: % Implementation broken:
561: \tt ping=$n$ & The interval, in seconds, between keep-alive pings. When four
562: consecutive pings have failed the mount point is
563: marked as hung. This interval defaults to 30 seconds.
564: If the ping interval is negative, no pings are sent and
565: the host is assumed to be always up. Pings are never sent
566: for a TCP mount. \\
567:
568: \tt retry=$n$ & The number of times to retry the mount system call. \\
569: \tt utimeout=$n$& The interval, in seconds, by which the mount's
570: time-to-live\label{opt:utimeout}
571: is extended after an unmount attempt has failed.
572: In fact the interval is extended before the unmount
573: is attempted to avoid thrashing. The default value
574: is 120 seconds (two minutes) or as set by the ``-w''
575: command line option. \\
576: \end{tabular}
577: \caption{Mount options interpreted by \amd\label{table:pseudo-mount opts}}
578: \end{table}
579:
580: \item[\tt sublink\hfill]
581: the subdirectory within the mounted filesystem to which the reference
582: should point.
583: This can be used to prevent duplicate mounts in cases where multiple
584: directories in the same mounted filesystem are used.
585:
586: \item[\tt type\hfill]
587: the filesystem type to be used. A full description of each
588: type is given in \Ref{filesystems}.
589:
590: \end{list}
591:
592: Superfluous option specifications are ignored and are not reported
593: as errors.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.