source: networking/netprogs/nfs-utils.xml@ 30f98dc

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 30f98dc was ef5c2e3, checked in by Douglas R. Reno <renodr@…>, 5 years ago

libnfsidmap: Make available to SysV (missed in elogind transition), and change external dependency in nfs-utils to internal as a result.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@22182 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 22.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY nfs-utils-download-http "&sourceforge-dl;/nfs/nfs-utils-&nfs-utils-version;.tar.xz">
8 <!ENTITY nfs-utils-download-ftp " ">
9 <!ENTITY nfs-utils-md5sum "ce1921b8f15db54c3a6c840795312242">
10 <!ENTITY nfs-utils-size "659 KB">
11 <!ENTITY nfs-utils-buildsize "16 MB">
12 <!ENTITY nfs-utils-time "0.2 SBU">
13]>
14
15<sect1 id="nfs-utils" xreflabel="nfs-utils-&nfs-utils-version;">
16 <?dbhtml filename="nfs-utils.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>NFS-Utils-&nfs-utils-version;</title>
24
25 <indexterm zone="nfs-utils">
26 <primary sortas="a-Nfs-utils">NFS Utilities</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to NFS Utilities</title>
31
32 <para>The <application>NFS Utilities</application> package contains the
33 userspace server and client tools necessary to use the kernel's NFS
34 abilities. NFS is a protocol that allows sharing file systems over the
35 network.</para>
36
37 &lfs90_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing='compact'>
41 <listitem>
42 <para>Download (HTTP): <ulink url="&nfs-utils-download-http;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download (FTP): <ulink url="&nfs-utils-download-ftp;"/></para>
46 </listitem>
47 <listitem>
48 <para>Download MD5 sum: &nfs-utils-md5sum;</para>
49 </listitem>
50 <listitem>
51 <para>Download size: &nfs-utils-size;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated disk space required: &nfs-utils-buildsize;</para>
55 </listitem>
56 <listitem>
57 <para>Estimated build time: &nfs-utils-time;</para>
58 </listitem>
59 </itemizedlist>
60
61 <bridgehead renderas="sect3">NFS Utilities Dependencies</bridgehead>
62
63 <bridgehead renderas="sect4">Required</bridgehead>
64 <para role="required">
65 <xref linkend="libtirpc"/>,
66 <xref linkend="rpcsvc-proto"/>
67 </para>
68
69 <bridgehead renderas="sect4">Optional</bridgehead>
70 <para role="optional">
71 <xref linkend="lvm2"/> (libdevmapper for NFSv4 support),
72 <xref linkend="libnfsidmap"/> (for NFSv4 support),
73 <xref linkend="libnsl"/> (for NIS client support),
74 <xref linkend="sqlite"/>,
75 <xref linkend="mitkrb"/> or
76 <ulink url="http://www.citi.umich.edu/projects/nfsv4/linux/">libgssapi</ulink>, and
77 <ulink url="http://www.citi.umich.edu/projects/nfsv4/linux/">librpcsecgss</ulink> (for GSS and RPC security support) and
78
79 <xref linkend="libcap-pam"/>
80 </para>
81
82 <bridgehead renderas="sect4">Required (runtime)</bridgehead>
83 <para role="required">
84 <xref role="runtime" linkend="rpcbind"/>
85 </para>
86
87<!-- NSS configuration isn't directly related to NFS, but left here in case
88 <bridgehead renderas="sect4">Optional (runtime for NIS clients)</bridgehead>
89 <para role="optional">
90 <ulink url="https://github.com/thkukuk/libnss_compat">libnss_compat</ulink>,
91 <ulink url="https://github.com/thkukuk/libnss_nis">libnss_nis</ulink>, and
92 <ulink url="https://github.com/thkukuk/libnss_nisplus">libnss_nisplus</ulink>
93 </para>
94-->
95
96 <para condition="html" role="usernotes">User Notes:
97 <ulink url="&blfs-wiki;/nfs-utils"/></para>
98
99 </sect2>
100
101 <sect2 role="kernel" id='nfs-utils-kernel'>
102 <title>Kernel Configuration</title>
103
104 <para>Enable the following options in the kernel configuration
105 (choose client and/or server support as appropriate) and recompile the
106 kernel if necessary:</para>
107
108<screen><literal>File systems ---&gt;
109 [*] Network File Systems ---&gt; [CONFIG_NETWORK_FILESYSTEMS]
110 &lt;*/M&gt; NFS client support [CONFIG_NFS_FS]
111 &lt;*/M&gt; NFS server support [CONFIG_NFSD]</literal></screen>
112
113 <para>Select the appropriate sub-options that appear when the above options
114 are selected.</para>
115
116 <note>
117 <para>
118 In BLFS we assume that nfs v3 will be used. If the
119 <emphasis>server</emphasis> offers nfs v4 (for linux, CONFIG_NFSD_V4)
120 then auto-negotiation for v3 will fail and you will need to add
121 <literal>nfsver=3</literal> to the mount options. This also applies
122 if that option is enabled in the <emphasis>client's</emphasis> kernel,
123 for example in a distro trying to mount from a BLFS v3 server.
124 </para>
125 <para>
126 Even if neither end of the connection supports nfs v4, adding
127 <literal>nfsver=3</literal> is still beneficial because it prevents an
128 error message "NFS: bad mount option value specified: minorversion=1"
129 being logged on every mount.
130 </para>
131 </note>
132
133 <indexterm zone="nfs-utils nfs-utils-kernel">
134 <primary sortas="d-nfs-utils">NFS Utilities</primary>
135 </indexterm>
136
137 </sect2>
138
139 <sect2 role="installation" id='nfs-utils-install'
140 xreflabel='NFS Utilities Installation'>
141 <title>Installation of NFS Utilities</title>
142
143 <para>Before you compile the program, ensure that the <systemitem
144 class="username">nobody</systemitem> user and <systemitem
145 class="groupname">nogroup</systemitem> group have been created as done in
146 the current LFS book. You can add them by running the following commands
147 as the <systemitem class="username">root</systemitem> user:</para>
148
149<screen role="nodump"><userinput>groupadd -g 99 nogroup &amp;&amp;
150useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup \
151 -s /bin/false -u 99 nobody</userinput></screen>
152
153 <note>
154 <para>The classic uid and gid values are 65534 which is also -2 when
155 interpreted as a signed 16-bit number. These values impact other files
156 on some filesystems that do not have support for sparse files. The
157 <systemitem class="username">nobody</systemitem> and <systemitem
158 class="groupname">nogroup</systemitem> values are relatively arbitrary.
159 The impact on a server is nil if the <filename>exports</filename> file
160 is configured correctly. If it is misconfigured, an
161 <command>ls -l</command> or <command>ps</command> listing will show a
162 uid or gid number of 65534 instead of a name. The client uses <systemitem
163 class="username">nobody</systemitem> only as the user running
164 <command>rpc.statd</command>.</para>
165 </note>
166
167 <para>Install <application>NFS Utilities</application> by running
168 the following commands:</para>
169
170<screen><userinput>./configure --prefix=/usr \
171 --sysconfdir=/etc \
172 --sbindir=/sbin \
173 --disable-nfsv4 \
174 --disable-gss &amp;&amp;
175make</userinput></screen>
176
177 <!-- Test breakage: see
178 http://lists.linuxfromscratch.org/pipermail/blfs-book/2017-December/071861.html -->
179 <para>This package does not come with a working test suite.</para>
180
181 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
182
183<!-- dev note: make statduser=$(whoami) DESTDIR=<DESTDIR> install -->
184
185<screen role='root'><userinput>make install &amp;&amp;
186mv -v /sbin/start-statd /usr/sbin &amp;&amp;
187chmod u+w,go+r /sbin/mount.nfs &amp;&amp;
188chown nobody.nogroup /var/lib/nfs</userinput></screen>
189
190 <!-- commented, in case the tests get fixed
191 <para>The tests for this package require that the package be installed and
192 configured as specified below. In addition, the daemon from <xref
193 linkend="rpcbind"/> needs to be running and the tests need to be run as the
194 <systemitem class="username">root</systemitem> user.</para>
195
196 <para>To test the results, issue, as root: <command>make check</command>.</para>-->
197
198 </sect2>
199
200 <sect2 role="commands">
201 <title>Command Explanations</title>
202<!--
203 <para><command>sed ... support/nsm/rpc.c</command>: This sed it required
204 to fix a build issue with glibc-2.26 and later.</para>
205-->
206 <para><parameter>--disable-nfsv4</parameter>: This allows the package to be
207 built when libnfsidmap has not been installed.</para>
208
209 <para><parameter>--disable-gss</parameter>: Disables support for
210 RPCSEC GSS (RPC Security).</para>
211
212 <para><command>chown nobody.nogroup /var/lib/nfs</command>: The
213 rpc.statd program uses the ownership of this directory to set
214 it's UID and GID. This command sets those to unprivileged entries.
215 </para>
216
217 </sect2>
218
219 <sect2 role="configuration">
220 <title>Configuring NFS Utilities</title>
221
222 <sect3 id='nfs-utils-server-config'>
223 <title>Server Configuration</title>
224
225 <para><filename>/etc/exports</filename> contains the exported directories
226 on NFS servers. Refer to the <filename>exports.5</filename> manual page
227 for the syntax of this file. Also refer to the "NFS HowTo" available at
228 <ulink url="http://nfs.sourceforge.net/nfs-howto/"/> for information on
229 how to configure the servers and clients in a secure manner. For example,
230 for sharing the <filename class="directory">/home</filename> directory
231 over the local network, the following line may be added:</para>
232
233<screen role="nodump"><userinput>cat &gt;&gt; /etc/exports &lt;&lt; EOF
234<replaceable>/home 192.168.0.0/24</replaceable>(rw,subtree_check,anonuid=99,anongid=99)
235EOF</userinput></screen>
236
237 <note><para>Be sure to replace the directory, network address. and prefix above
238 to match your network. The only space in the line above should be between
239 the directory and the network address.</para></note>
240
241 <indexterm zone="nfs-utils nfs-utils-server-config">
242 <primary sortas="e-etc-exportfs">/etc/exportfs</primary>
243 </indexterm>
244
245 <sect4 id="nfs-utils-server-init">
246 <title><phrase revision="sysv">Boot Script</phrase>
247 <phrase revision="systemd">Systemd Units</phrase></title>
248
249 <para>Install the
250 <phrase revision="sysv"><filename>/etc/rc.d/init.d/nfs-server</filename>
251 init script</phrase>
252 <phrase revision="systemd">NFSv4 server units</phrase>
253 included in the <xref linkend="bootscripts" revision="sysv"/>
254 <xref linkend="systemd-units" revision="systemd"/> package
255 to start the server at boot.</para>
256
257<screen role="root" revision="systemd"><userinput>make install-nfsv4-server</userinput></screen>
258
259 <para revision="systemd">
260 If you have disabled NFSv4 support, run the following command as the
261 <systemitem class="username">root</systemitem> user to omit the NFSv4
262 specific systemd units:
263 </para>
264
265<!-- both -->
266<screen role="root"><userinput>make install-nfs-server</userinput></screen>
267
268 <indexterm zone="nfs-utils nfs-utils-server-init" revision="sysv">
269 <primary sortas="f-nfs-server">nfs-server</primary>
270 </indexterm>
271
272 <para revision="sysv">Now create the
273 <filename>/etc/sysconfig/nfs-server</filename> configuration file:
274 </para>
275
276<screen role="root" revision="sysv"><userinput>cat &gt; /etc/sysconfig/nfs-server &lt;&lt; "EOF"
277<literal>PORT="2049"
278PROCESSES="8"
279KILLDELAY="10"</literal>
280EOF</userinput></screen>
281
282 <note revision="sysv">
283 <para>The above parameters may be optionally placed in
284 <filename>/etc/sysconfig/rc.site</filename>.
285 </para>
286 </note>
287
288 <indexterm zone="nfs-utils nfs-utils-server-init" revision="sysv">
289 <primary
290 sortas="e-etc-sysconfig-nfs-server">/etc/sysconfig/nfs-server</primary>
291 </indexterm>
292
293 <para revision="systemd">
294 You can edit the <filename>/etc/default/nfs-utils</filename>
295 file to change the startup options for NFS daemons. Defaults
296 should be fine for most use cases.
297 </para>
298
299 <indexterm zone="nfs-utils nfs-utils-server-init" revision="systemd">
300 <primary sortas="e-etc-default-nfs-utils">/etc/default/nfs-utils</primary>
301 </indexterm>
302
303
304
305 </sect4>
306
307 </sect3>
308
309 <sect3 id='nfs-utils-client-config'>
310 <title>Client Configuration</title>
311
312 <para><filename>/etc/fstab</filename> contains the directories that
313 are to be mounted on the client. Alternately the partitions can be
314 mounted by using the <command>mount</command> command with the proper
315 options. To mount the <filename class="directory">/home</filename>
316 and <filename class="directory">/usr</filename> partitions, add the
317 following to the <filename>/etc/fstab</filename>:</para>
318
319<screen role="nodump"><userinput><replaceable>&lt;server-name&gt;</replaceable>:/home /home nfs rw,_netdev 0 0
320<replaceable>&lt;server-name&gt;</replaceable>:/usr /usr nfs ro,_netdev 0 0</userinput></screen>
321
322 <para>The options which can be used are specified in <command>man 5 nfs</command>.
323 If both the client and server are running recent versions of linux, most of the
324 options will be negotiated (but see the Note above on nfsver=3). You can specify
325 either <literal>rw</literal> or
326 <literal>ro</literal>, <literal>_netdev</literal> if the filesystem is to be
327 automatically mounted at boot, or <literal>noauto</literal> (and perhaps
328 <literal>user</literal>) for other filesystems.</para>
329
330 <para>If the fileserver is not running a recent version of linux, you may need to
331 specifiy other options.</para>
332
333 <para>If you are using systemd, you may need to enable autofs v4 in your kernel,
334 and add the option <literal>comment=systemd.automount</literal>. Some machines
335 need this, because systemd tries to mount the external fs&apos;s before the network
336 is up, others do not need it. An alternative is for <systemitem
337 class="username">root</systemitem> to run <command>mount -a</command>.</para>
338
339 <indexterm zone="nfs-utils nfs-utils-client-config">
340 <primary sortas="e-etc-fstab">/etc/fstab</primary>
341 </indexterm>
342
343 <sect4 id="nfs-utils-client-init">
344 <title><phrase revision="sysv">Boot Script</phrase>
345 <phrase revision="systemd">Systemd Units</phrase></title>
346
347 <note>
348 <para>
349 The following <phrase revision="sysv">boot script is</phrase>
350 <phrase revision="systemd">systemd units are</phrase> not required
351 if the nfs-server <phrase revision="sysv">script is</phrase>
352 <phrase revision="systemd">units are</phrase> installed.
353 </para>
354 </note>
355
356 <para>Install the
357 <phrase revision="sysv">
358 <filename>/etc/rc.d/init.d/nfs-client</filename> init script</phrase>
359 <phrase revision="systemd">units</phrase> included in the
360 <xref linkend="bootscripts" revision="sysv"/>
361 <xref linkend="systemd-units" revision="systemd"/> package to start
362 the client services at boot.</para>
363
364<screen role="root"><userinput>make install-nfs-client</userinput></screen>
365
366 <indexterm zone="nfs-utils nfs-utils-client-config">
367 <primary sortas="f-nfs-client">nfs-client</primary>
368 </indexterm>
369
370 <para revision="sysv">To automatically mount <systemitem
371 class="filesystem">nfs</systemitem> filesystems, clients will also need
372 to install the <filename>netfs</filename> bootscript as described in
373 <xref linkend="postlfs-config-netfs"/>.</para>
374
375 <indexterm zone="nfs-utils nfs-utils-client-config" revision="sysv">
376 <primary sortas="f-netfs">netfs</primary>
377 </indexterm>
378
379 </sect4>
380
381 </sect3>
382
383 </sect2>
384
385 <sect2 role="content">
386 <title>Contents</title>
387 <segmentedlist>
388 <segtitle>Installed Programs</segtitle>
389 <segtitle>Installed Libraries</segtitle>
390 <segtitle>Installed Directories</segtitle>
391
392 <seglistitem>
393 <seg>exportfs, mountstats, mount.nfs, mount.nfs4 (link to mount.nfs),
394 nfsiostat, nfsstat, osd_login, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug,
395 showmount, sm-notify, start-statd, umount.nfs (link to mount.nfs),
396 and umount.nfs4 (link to mount.nfs)</seg>
397 <seg>None</seg>
398 <seg>/var/lib/nfs</seg>
399 </seglistitem>
400 </segmentedlist>
401
402 <variablelist>
403 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
404 <?dbfo list-presentation="list"?>
405 <?dbhtml list-presentation="table"?>
406
407 <varlistentry id="exportfs">
408 <term><command>exportfs</command></term>
409 <listitem>
410 <para>maintains a list of NFS exported file systems.</para>
411 <indexterm zone="nfs-utils exportfs">
412 <primary sortas="b-exportfs">exportfs</primary>
413 </indexterm>
414 </listitem>
415 </varlistentry>
416
417 <varlistentry id="mountstats">
418 <term><command>mountstats</command></term>
419 <listitem>
420 <para>displays NFS client per-mount statistics.</para>
421 <indexterm zone="nfs-utils mountstats">
422 <primary sortas="b-mountstats">mountstats</primary>
423 </indexterm>
424 </listitem>
425 </varlistentry>
426
427 <varlistentry id="mount.nfs">
428 <term><command>mount.nfs</command></term>
429 <listitem>
430 <para>is used to mount a network share using NFS</para>
431 <indexterm zone="nfs-utils mount.nfs">
432 <primary sortas="b-mount.nfs">mount.nfs</primary>
433 </indexterm>
434 </listitem>
435 </varlistentry>
436
437 <varlistentry id="mount.nfs4">
438 <term><command>mount.nfs4</command></term>
439 <listitem>
440 <para>is used to mount a network share using NFSv4</para>
441 <indexterm zone="nfs-utils mount.nfs4">
442 <primary sortas="b-mount.nfs4">mount.nfs4</primary>
443 </indexterm>
444 </listitem>
445 </varlistentry>
446
447 <varlistentry id="nfsiostat-nfs-utils">
448 <term><command>nfsiostat</command></term>
449 <listitem>
450 <para>reports input/output statistics for network filesystems.</para>
451 <indexterm zone="nfs-utils nfsiostat-nfs-utils">
452 <primary sortas="b-nfsiostat-nfs-utils">nfsiostat</primary>
453 </indexterm>
454 </listitem>
455 </varlistentry>
456
457 <varlistentry id="nfsstat">
458 <term><command>nfsstat</command></term>
459 <listitem>
460 <para>displays statistics kept about NFS client and server activity.</para>
461 <indexterm zone="nfs-utils nfsstat">
462 <primary sortas="b-nfsstat">nfsstat</primary>
463 </indexterm>
464 </listitem>
465 </varlistentry>
466
467 <varlistentry id="osd_login">
468 <term><command>osd_login</command></term>
469 <listitem>
470 <para>is a script that is a part of the autologin feature
471 mandated by the pnfs-objects standard.</para>
472 <indexterm zone="nfs-utils osd_login">
473 <primary sortas="b-osd_login">osd_login</primary>
474 </indexterm>
475 </listitem>
476 </varlistentry>
477
478
479 <varlistentry id="rpc.mountd">
480 <term><command>rpc.mountd</command></term>
481 <listitem>
482 <para>implements the NFS mount protocol on an NFS server.</para>
483 <indexterm zone="nfs-utils rpc.mountd">
484 <primary sortas="b-rpc.mountd">rpc.mountd</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
489 <varlistentry id="rpc.nfsd">
490 <term><command>rpc.nfsd</command></term>
491 <listitem>
492 <para>implements the user level part of the NFS
493 service on the server.</para>
494 <indexterm zone="nfs-utils rpc.nfsd">
495 <primary sortas="b-rpc.nfsd">rpc.nfsd</primary>
496 </indexterm>
497 </listitem>
498 </varlistentry>
499
500 <varlistentry id="rpc.statd">
501 <term><command>rpc.statd</command></term>
502 <listitem>
503 <para>is used by the NFS file locking service. Run on both sides,
504 client as well as server, when you want file locking enabled.</para>
505 <indexterm zone="nfs-utils rpc.statd">
506 <primary sortas="b-rpc.statd">rpc.statd</primary>
507 </indexterm>
508 </listitem>
509 </varlistentry>
510
511 <varlistentry id="rpcdebug">
512 <term><command>rpcdebug</command></term>
513 <listitem>
514 <para>sets or clears the kernel's NFS client and server debug
515 flags.</para>
516 <indexterm zone="nfs-utils rpcdebug">
517 <primary sortas="b-rpcdebug">rpcdebug</primary>
518 </indexterm>
519 </listitem>
520 </varlistentry>
521
522 <varlistentry id="showmount">
523 <term><command>showmount</command></term>
524 <listitem>
525 <para>displays mount information for an NFS server.</para>
526 <indexterm zone="nfs-utils showmount">
527 <primary sortas="b-showmount">showmount</primary>
528 </indexterm>
529 </listitem>
530 </varlistentry>
531
532 <varlistentry id="sm-notify">
533 <term><command>sm-notify</command></term>
534 <listitem>
535 <para>is used to send Network Status Monitor reboot messages.</para>
536 <indexterm zone="nfs-utils sm-notify">
537 <primary sortas="b-sm-notify">sm-notify</primary>
538 </indexterm>
539 </listitem>
540 </varlistentry>
541
542 <varlistentry id="start-statd">
543 <term><command>start-statd</command></term>
544 <listitem>
545 <para>is a script called by nfsmount when mounting a filesystem with
546 locking enabled, if statd does not appear to be running. It can be
547 customised with whatever flags are appropriate for the site.</para>
548 <indexterm zone="nfs-utils start-statd">
549 <primary sortas="b-start-statd">start-statd</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
553
554 <varlistentry id="umount.nfs">
555 <term><command>umount.nfs</command></term>
556 <listitem>
557 <para>is used to unmount a network share using NFS</para>
558 <indexterm zone="nfs-utils umount.nfs">
559 <primary sortas="b-umount.nfs">umount.nfs</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="umount.nfs4">
565 <term><command>umount.nfs4</command></term>
566 <listitem>
567 <para>is used to unmount a network share using NFSv4</para>
568 <indexterm zone="nfs-utils umount.nfs4">
569 <primary sortas="b-umount.nfs4">umount.nfs4</primary>
570 </indexterm>
571 </listitem>
572 </varlistentry>
573
574 </variablelist>
575
576 </sect2>
577
578</sect1>
Note: See TracBrowser for help on using the repository browser.