(同じ利用者による、間の14版が非表示)
13行目: 13行目:
  +----------------------+                          +----------------------+
  +----------------------+                          +----------------------+
<br>
<br>
また、NFSとSambaの違いを以下の通りである。<br>
NFSとSambaの違いは、以下の通りである。<br>
* NFS
* NFS
*: マルチプラットフォームでファイルシステムを共有する。
*: マルチプラットフォームでファイルシステムを共有する。
22行目: 22行目:


== NFSサーバのインストール ==
== NFSサーバのインストール ==
==== パッケージ管理システムからインストールする場合 ====
まず、全てのパッケージが最新であることを確認する。<br>
まず、全てのパッケージが最新であることを確認する。<br>
  # CentOS
  # RHEL
  sudo yum update
  sudo dnf update
   
   
  # SUSE
  # SUSE
34行目: 35行目:
<br>
<br>
NFSサーバをインストールするため、以下のコマンドを実行する。<br>
NFSサーバをインストールするため、以下のコマンドを実行する。<br>
  # CentOS
  # RHEL
  sudo yum install nfs-utils
  sudo dnf install nfs-utils
   
   
  # SUSE
  # SUSE
42行目: 43行目:
  # Raspberry Pi
  # Raspberry Pi
  sudo apt-get install nfs-kernel-server
  sudo apt-get install nfs-kernel-server
<br>
==== ソースコードからインストールする場合 ====
NFSのビルドに必要なライブラリをインストールする。<br>
# SUSE
sudo zypper install rpcgen libtirpc-devel libevent-devel libxml2-devel libmount-devel device-mapper-devel systemd-devel krb5-devel \
                    libgssglue-devel  # GSSAPIを有効にする場合
<br>
[https://mirrors.edge.kernel.org/pub/linux/utils/nfs-utils NFSの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf nfs-utils-<バージョン>.tar.xz
cd nfs-utils-<バージョン>
<br>
NFSをビルドおよびインストールする。<br>
./configure --prefix=<NFSのインストールディレクトリ>                                                        \
            --sysconfdir=<NFSの設定ディレクトリ  例. /etc または /<NFSのインストールディレクトリ>/etc等>            \
            --sbindir=<NFSのシステムバイナリディレクトリ  例. /usr/sbin または /<NFSのインストールディレクトリ>/sbin等> \
            --with-statedir=<NFSのステータスディレクトリ  例. /<NFSのインストールディレクトリ>/var等  デフォルトでもよい> \
            --with-systemd                                                                          \
            --disable-gss  # GSSAPIを無効にする場合は指定する
make -j $(nproc)
# /sbin/mount.nfsファイル、/sbin/nfsdcltrackファイル、/usr/lib/udev/rules.d/99-nfs.rulesファイルを作成する必要があるため、スーパーユーザ権限で実行する
sudo make install
<br>
特に重要なファイルとして、以下に示すものがインストールされる。<br>
* /sbin/mount.nfs
* /sbin/nfsdcltrack
*: <br>
* /usr/lib/systemd/system-generators/nfs-server-generator
* /usr/lib/systemd/system-generators/rpc-pipefs-generator
*: <br>
* /usr/lib/systemd/system/fsidd.service
* /usr/lib/systemd/system/XXX-NFS-var-rpc_pipefs.mount
* /usr/lib/systemd/system/nfs-blkmap.service
* /usr/lib/systemd/system/nfs-idmapd.service
* /usr/lib/systemd/system/nfs-mountd.service
* /usr/lib/systemd/system/nfs-server.service
* /usr/lib/systemd/system/nfsdcld.service
*: <br>
* /usr/lib/systemd/system/rpc-statd-notify.service
* /usr/lib/systemd/system/rpc-statd.service
* /usr/lib/systemd/system/rpc_pipefs.target
*: <br>
* /usr/lib/udev/rules.d/60-nfs.rules
* /usr/lib/udev/rules.d/99-nfs.rules
<br>
NFSのルールファイルを編集する。<br>
sudo vi /usr/lib/udev/rules.d/99-nfs.rules
<br>
# /usr/lib/udev/rules.d/99-nfs.rulesファイル
SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="/<NFSのインストールディレクトリ>/lib/nfsrahead %k", ATTR{read_ahead_kb}="%c"
<br><br>
== NFS-Ganeshaサーバのインストール ==
NFS-Ganeshaは、ほとんどのUNIX/Linux上でユーザーモードで動作するNFSv3、v4、v4.1ファイルサーバである。<br>
また、9p.2000Lプロトコルもサポートしている。<br>
<br>
詳細を知りたい場合は、[https://github.com/nfs-ganesha/nfs-ganesha/wiki NFS-GaneshaサーバのプロジェクトWiki]を参照すること。<br>
<br>
NFS-Ganeshaサーバのビルドに必要なライブラリをインストールする。<br>
sudo zypper install gcc gcc-c++ git cmake autoconf libtool bison flex \
                    libgssglue-devel openssl-devel libnsl-devel libacl-devel libntirpc-devel doxygen
<br>
[https://download.nfs-ganesha.org NFS-Ganeshaサーバの公式Webサイト]または[https://github.com/nfs-ganesha/nfs-ganesha Github]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf nfs-ganesha-<バージョン>.tar.gz
cd nfs-ganesha-<バージョン>
<br>
NFS-Ganeshaサーバをビルドおよびインストールする。<br>
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<NFS-Ganeshaサーバのインストールディレクトリ> ../src \
      -DUSE_GSS=Off  # GSSを無効にする場合
      -D_USE_9P=OFF  # 9pプロトコルを無効にする場合
make -j $(nproc)
make install
<br><br>
<br><br>


51行目: 129行目:
  # /etc/idmapd.confファイル
  # /etc/idmapd.confファイル
  # 5行目:自ドメイン名に変更
  # 5行目:自ドメイン名に変更
  # CentOS
  # RHEL
  Domain = centos.com
  Domain = rhel.com
   
   
  # SUSE
  # SUSE
116行目: 194行目:
== NFSサービスの自動起動 ==
== NFSサービスの自動起動 ==
Linuxの起動時に、NFSサービスを自動起動するために、以下のコマンドを実行する。<br>
Linuxの起動時に、NFSサービスを自動起動するために、以下のコマンドを実行する。<br>
  # CentOS
  # RHEL
  sudo systemctl start rpcbind nfs-server
  sudo systemctl start rpcbind nfs-server
  sudo systemctl enable rpcbind nfs-server
  sudo systemctl enable rpcbind nfs-server
132行目: 210行目:
Firewalldを有効にしている場合は、NFSサービスの許可が必要である。<br>
Firewalldを有効にしている場合は、NFSサービスの許可が必要である。<br>
  # NFS v4の許可
  # NFS v4の許可
  sudo firewall-cmd --add-service=nfs --permanent
  sudo firewall-cmd --permanent --add-service=nfs
# NFS v3も許可する場合
sudo firewall-cmd --permanent --add-service={nfs3,mountd,rpc-bind}
sudo firewall-cmd --reload
<br>
<u>KVM上でNFSサービスを有効にする場合は、ゾーンをlibvirtdに変更する必要がある。</u><br>
# NFS v4の許可
sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs
   
   
  # NFS v3も許可する場合
  # NFS v3も許可する場合
  sudo firewall-cmd --add-service={nfs3,mountd,rpc-bind} --permanent
  sudo firewall-cmd --permanent --zone=libvirt --add-service={nfs3,mountd,rpc-bind}
   
   
  sudo firewall-cmd --reload
  sudo firewall-cmd --reload
143行目: 230行目:
==== Linuxクライアント ====
==== Linuxクライアント ====
まず、NFSクライアントをインストールする。<br>
まず、NFSクライアントをインストールする。<br>
  # CentOS
  # RHEL
  sudo yum install nfs-utils
  sudo dnf install nfs-utils
   
   
  # SUSE
  # SUSE
163行目: 250行目:
===== 手動マウント =====
===== 手動マウント =====
NFSサーバの共有ディレクトリをマウントする。<br>
NFSサーバの共有ディレクトリをマウントする。<br>
もし、NFS v3でマウントする場合は、<code>-o vers=3</code>オプションを付加してマウントする。<br>
# NFS v4の場合
  sudo mount -t nfs <NFSサーバのIPアドレスまたはホスト名>:/home/ユーザ名/NFS <マウントするクライアントPCのディレクトリ>
  sudo mount -t nfs <NFSサーバのIPアドレスまたはホスト名>:/home/ユーザ名/NFS <マウントするクライアントPCのディレクトリ>
# NFS v3の場合
sudo mount -t nfs -o vers=3 <NFSサーバのIPアドレスまたはホスト名>:<NFSサーバの共有ディレクトリ> <マウントするクライアントPCのディレクトリ>
# 例: NFS v3でマウントする場合
# NFSサーバのIPアドレスが192.168.0.1
# NFSサーバの共有ディレクトリが/mnt/NFS
# NFSクライアントのマウントディレクトリが$HOME/NFS-Clientディレクトリ
sudo mount -t nfs -o vers=3 192.168.0.1:/mnt/NFS $HOME/NFS-Client
<br>
<br>
正常にマウントされているか確認するために、以下のコマンドを実行する。<br>
正常にマウントされているか確認するために、以下のコマンドを実行する。<br>
  df -hT
  df -hT
<br>
<br>
もし、NFS v3でマウントする場合は、<code>-o vers=3</code>オプションを付加してマウントする。<br>
 
sudo mount -t nfs -o vers=3 <NFSサーバのIPアドレスまたはホスト名>:/home/ユーザ名/NFS <マウントするクライアントPCのディレクトリ>
<br>
===== 自動マウント(Linuxの起動時) =====
===== 自動マウント(Linuxの起動時) =====
Linuxの起動時にNFS共有ディレクトリを自動マウントする場合は、/etc/fstabファイルに以下のように設定する。<br>
Linuxの起動時にNFS共有ディレクトリを自動マウントする場合は、/etc/fstabファイルに以下のように設定する。<br>
207行目: 304行目:


==== Windowsクライアント ====
==== Windowsクライアント ====
===== ネットワークドライブのマウント =====
WindowsからNFSの共有ディレクトリと通信するには、NFSクライアントを有効にする必要がある。<br>
WindowsからNFSの共有ディレクトリと通信するには、NFSクライアントを有効にする必要がある。<br>
初期設定では、この機能は無効になっている。<br>
初期設定では、この機能は無効になっている。<br>
<br>
<br>
これを有効にするには、コントロールパネルから[プログラム] - [プログラムと機能] - [Windowsの機能を有効または無効にする]を選択する。<br>
# NFSクライアント機能を有効にする。
[Windowsの機能]画面が表示されるので、機能一覧から[NFS用サービス]チェックボックスにチェックを入力して、[OK]ボタンを押下する。<br>
#* [設定]から行う場合
#*# [設定] - [システム] - [オプション機能]を選択する。
#*# 画面右上の[Windowsのその他の機能]を選択する。
#*# [Windowsの機能]画面が表示されるので、一覧から[NFS用サービス]を展開して[NFSクライアント]と[管理ツール]にチェックを入力する。
#*# [OK]ボタンを押下する。
#* Powershellから行う場合
#*# <code>Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart</code>
#: <br>
# インストール完了後、PCを再起動する。
#: <br>
# ネットワークドライブを割り当てる。
#* ファイルエクスプローラから行う場合
#*# ファイルエクスプローラを起動して、[ネットワークドライブの割り当て]を選択して、NFSの共有ディレクトリを設定する。<br>
#*# [ネットワークドライブ]画面が表示されるので、NFSサーバのIPアドレス(またはホスト名)とNFSの共有ディレクトリのパスを続けて入力する。<br>
#* Powershellから行う場合
#*# 一般ユーザ権限でPowershellを起動する。
#*#: <code>New-PSdrive -PSProvider FileSystem -Name <ネットワークドライブ名  例: M> -Root <NFSサーバのディレクトリパス  例: \\192.168.0.1\mnt\NFS></code>
#* コマンドプロンプトから行う場合
#*# 一般ユーザ権限でコマンドプロンプトを起動する。
#*#: <code>mount <NFSサーバのディレクトリパス  例: 192.168.0.1:/mnt/NFS> <ネットワークドライブ名  例: Z:\></code>
#: <br>
# 例えば、NFSサーバのIPアドレスが"192.168.0.1"、共有ディレクトリのパスが"/mnt/NFS"の場合、以下のように入力する。<br>
#: \\192.168.0.1\mnt\NFS
#: <br>
# 以上の設定を行うと、ファイルエクスプローラの[ネットワークロケーション]または[ネットワーク]に共有ディレクトリが表示される。<br>
<br>
<br>
ファイルエクスプローラを起動して、[ネットワークドライブの割り当て]を選択して、NFSの共有ディレクトリを設定する。<br>
===== ネットワークドライブの権限 =====
[ネットワークドライブ]画面が表示されるので、NFSサーバのIPアドレス(またはホスト名)とNFSの共有ディレクトリのパスを続けて入力する。<br>
NFSサーバ上にあるディレクトリおよびファイルにおいて、作成または書き込みを行う場合、以下に示すファイル群を作成する。<br>
これらのファイル群を作成するには、管理者権限が必要となることに注意する。<br>
<br>
<br>
例えば、NFSサーバのIPアドレスが"192.168.1.10"、共有ディレクトリのパスが"/home/ユーザ名/NFS"の場合、以下のように入力する。<br>
passwdファイルを作成する。<br>
  \\192.168.1.10\home\ユーザ名\NFS
このファイルには、Windows上のユーザ名とマッピングするLinux上のユーザのUIDとGIDを記述する。<br>
  # C:\Windows¥System32¥drivers¥etc\passwd
<Windows上のユーザ名>:x:<Linux上のUID>:<Linux上のGID>:::
例: win11:x:1000:
<br>
<br>
以上の設定を行うと、ファイルエクスプローラの[ネットワークロケーション]または[ネットワーク]に共有ディレクトリが表示される。<br>
Windows 10/11において、ユーザのグループ名を表示する。<br>
net user <ユーザ名>
<br>
groupファイルを作成する。<br>
このファイルには、groupファイルには、Windows上のユーザが所属するグループ名とマッピングするLinux上のユーザのGIDを記述する。<br>
# C:\Windows¥System32¥drivers¥etc\group
<Windows上のユーザのグループ名>:x:<GID>:
例: Administrators:x:100:
<br>
===== ネットワークドライブの切断 =====
NFSサーバから切断する時は、エクスプローラまたはコマンドプロンプトから切断する。<br>
<br>
* エクスプローラから切断する場合
*: NFSサーバに接続しているドライブを右クリックして、コンテキストメニューから[切断]を選択する。
*: <br>
* Powershellから切断する場合
*: 例: ZドライブとしてNFSサーバのディレクトリをマウントしている場合
*: <code>Remove-PSdrive -Name Z</code>
*: <br>
* コマンドプロンプトから切断する場合
*: コマンドプロンプト上にて、umountコマンドを実行する。
*: 例: ZドライブとしてNFSサーバのディレクトリをマウントしている場合
*: <code>umount Z:</code>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]]