Beyond Linux® From Scratch (systemd Edition) - Version 12.1 | ||
---|---|---|
Chapter 15. Networking Programs | ||
이전 | 위로 / 처음으로 | 다음 |
Net-tools-2.10 | ntp-4.2.8p17 |
NFS 유틸리티 패키지에는 커널의 NFS 기능을 사용하는 데 필요한 사용자 공간 서버 및 클라이언트 도구가 포함되어 있습니다. NFS는 네트워크를 통해 파일 시스템을 공유할 수 있는 프로토콜입니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
커널 구성에서 다음 옵션을 활성화하고(클라이언트 및/또는 서버 지원을 적절히 선택) 필요한 경우 커널을 다시 컴파일합니다.
File systems --->
[*] Network File Systems ---> [NETWORK_FILESYSTEMS]
<*/M> NFS client support [NFS_FS]
<*/M> NFS server support [NFSD]
위 옵션을 선택하면 표시되는 적절한 하위 옵션을 선택합니다.
참고
BLFS에서는 nfs v3가 사용된다고 가정합니다. 서버가 nfs v4(Linux의 경우 CONFIG_NFSD_V4)를 제공하는 경우 v3에 대한 자동 협상이 실패하므로 마운트 옵션에 nfsver=3
을 추가해야 합니다. 이는 클라이언트 커널에서 해당 옵션이 활성화되어 있는 경우에도 적용됩니다(예: BLFS v3 서버에서 마운트하려는 배포판).
연결하려는 양쪽 모두 nfs v4를 지원하지 않더라도 nfsver=3
을 추가하면 모든 마운트에서 “NFS: 잘못된 마운트 옵션 값 지정: minorversion=1” 오류 메시지가 기록되는 것을 방지할 수 있으므로 여전히 유용합니다.
다음과 같이 NFS 유틸리티를 설치합니다.
./configure --prefix=/usr \
--sysconfdir=/etc \
--sbindir=/usr/sbin \
--disable-nfsv4 \
--disable-gss \
LIBS="-lsqlite3 -levent_core" &&
make
이제 root
사용자로
make install &&
chmod u+w,go+r /usr/sbin/mount.nfs &&
chown nobody:nogroup /var/lib/nfs
이 패키지를 테스트하려면 패키지가 설치되어 있어야 합니다. 또한 rpc.statd 데몬이 실행되고 있지 않아야 하며 root
사용자로 테스트를 실행해야 합니다.
결과를 테스트하려면 root
사용자로 실행합니다.
make check
chown nobody:nogroup /var/lib/nfs: rpc.statd
: 프로그램은 이 디렉터리의 소유권을 사용하여 UID와 GID를 설정합니다. 이 명령은 이들을 권한이 없는 항목으로 설정합니다.
/etc/exports
에는 NFS 서버에서 내보내는 디렉터리가 포함되어 있습니다. 이 파일의 구문은 exports.5
man 페이지를 참조하세요. 또한 서버와 클라이언트를 안전하게 구성하는 방법에 대한 정보는 NFS Howto 에서 제공되는 'NFS HowTo'를 참조하세요. 예를 들어 로컬 네트워크를 통해 /home 디렉터리를 공유하려면 다음 줄을 추가할 수 있습니다.
cat >> /etc/exports << EOF
/home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99)
EOF
참고
위의 디렉토리, 네트워크 주소. 및 접두사를 네트워크와 일치하도록 바꾸어야 합니다. 위 줄에서 디렉터리와 네트워크 주소 사이에 공백만 있어야 합니다.
부팅 시 서버를 시작하려면 blfs-systemd-units-20240205 패키지에 포함된 NFSv4 서버 유닛을 설치합니다.
make install-nfsv4-server
NFSv4 지원을 사용하지 않도록 설정한 경우, 루트 사용자로 다음 명령을 실행하여 NFSv4 관련 systemd 유닛을 생략합니다:
make install-nfs-server
etc/default/nfs-utils
파일을 편집하여 NFS 데몬의 시작 옵션을 변경할 수 있습니다. 기본값은 대부분의 사용 사례에 적합합니다.
/etc/fstab
에는 클라이언트에서 마운트할 디렉터리가 포함되어 있습니다. 또는 적절한 옵션과 함께 마운트 명령을 사용하여 파티션을 마운트할 수 있습니다. /home
및 /usr
파티션을 마운트하려면 /etc/fstab
에 다음을 추가합니다:
<server-name>:/home /home nfs rw,_netdev 0 0
<server-name>:/usr /usr nfs ro,_netdev 0 0
사용할 수 있는 옵션은 man 5 nfs
에 지정되어 있습니다. 클라이언트와 서버가 모두 최신 버전의 리눅스를 실행하는 경우, 대부분의 옵션이 협상됩니다(단, nfsver=3에 대한 위의 참고 사항 참조). 부팅 시 파일시스템이 자동으로 마운트되도록 하려면 rw
또는 ro
, _netdev
를 지정하고, 다른 파일시스템의 경우 noauto
(및 user
)를 지정할 수 있습니다.
파일서버가 최신 버전의 Linux를 실행하지 않는 경우 다른 옵션을 지정해야 할 수도 있습니다.
커널에서 autofs v4를 활성화하고 comment=systemd.automount
옵션을 추가해야 할 수도 있습니다. 일부 시스템에서는 시스템드가 네트워크가 가동되기 전에 외부 파일시스템을 마운트하려고 시도하기 때문에 이 옵션이 필요할 수 있습니다. 다른 방법은 시스템이 시작된 후 루트 사용자로 mount -a
를 실행하는 것입니다.
참고
nfs-서버 유닛이 설치된 경우 다음 systemd 유닛은 필요하지 않습니다.
부팅 시 클라이언트 서비스를 시작하려면 blfs-systemd-units-20240205 패키지에 포함된 유닛을 설치합니다.
make install-nfs-client