MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
サーバ - NFSのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
サーバ - NFS
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == NFSプロトコルは、1983年にSun Microsystemsによって最初に開発された。<br> これは、クライアントPCがネットワーク経由でファイルにアクセスできるようにするための方法として設計された。<br> <br> NFS(Network File System)を使用することにより、<br> NFSサーバのディスクパーティションをクライアント端末のHDD /SSDのようにマウントすることができるようになる。<br> <br> ここでは、以下のような環境を例に、NFSサーバを構築する。<br> +----------------------+ | +----------------------+ | [ NFS Server ] |192.168.1.10 | 192.168.1.11| [ NFS Client ] | | www.suse.com +-------------+-------------+ client.suse.com | | | | | +----------------------+ +----------------------+ <br> NFSとSambaの違いは、以下の通りである。<br> * NFS *: マルチプラットフォームでファイルシステムを共有する。 *: 冗長処理が少ないので高速で動作する。 * Samba *: CIFS(Windows固有のプロトコル)を使用して、Windows / Unixプラットフォーム間でファイルシステムを共有する。 <br><br> == NFSサーバのインストール == ==== パッケージ管理システムからインストールする場合 ==== まず、全てのパッケージが最新であることを確認する。<br> # RHEL sudo dnf update # SUSE sudo zypper update # Raspberry Pi sudo apt-get update sudo apt-get upgrade <br> NFSサーバをインストールするため、以下のコマンドを実行する。<br> # RHEL sudo dnf install nfs-utils # SUSE sudo zypper install nfs-kernel-server # Raspberry Pi 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> == NFSサーバの設定 == NFSサーバのドメイン名を設定するため、以下のコマンドを実行する。<br> <u>ドメインを使用しない場合は、以下の設定を行わない。</u><br> sudo vi /etc/idmapd.conf <br> # /etc/idmapd.confファイル # 5行目:自ドメイン名に変更 # RHEL Domain = rhel.com # SUSE Domain = suse.com # Raspberry Pi Domain = raspberrypi.com <br> /etc/exportsファイルの設定を行う。<br> /etc/exportsファイルは、どのクライアント端末に、どのディレクトリを、どのような権限でアクセス許可するかを設定するファイルである。<br> 例えば、以下の設定では、/home/ユーザ名/NFSディレクトリを共有ディレクトリとして、読み書き可能としている。<br> sudo vi /etc/exports <br> # /etc/exportsファイル # マウント設定を記述 /home/ユーザ名/NFS 192.168.1.0/24(rw,async,no_root_squash) <br> exportsの主なオプションを下表に示す。<br> <center> {| class="wikitable" |- ! オプション !! 説明 |- | rw || 読み込みと書き込みの両方を許可する |- | ro || 読み込みを許可する |- | sync || 同期書き込みを有効にする(デフォルト) |- | async || 非同期書き込みを有効にする |- | secure || 1024番ポートより小さいポートからのリクエストのみ受け付ける (デフォルト) |- | insecure || 1024番ポート以降のポートからのリクエストも受け付ける |- | wdelay || 別の書き込み要求が実行中 / 発生予定の場合、書き込みを遅延させる(デフォルト) |- | no_wdelay || wdelayを無効にする。<br>asyncと合わせて設定する |- | subtree_check || サブツリーのチェックを行う。(デフォルト)<br>一般的な指針として、多くは読み込みのみでファイル名の変更があまり行われないようなディレクトリをエクスポートする場合は、<br>サブツリーチェックが有効の方が良い。 |- | no_subtree_check || サブツリーのチェックを無効にする。<br>一般的な指針として、ホームディレクトリのような細かなファイルが多く、変更も多いディレクトリをエクスポートする場合は、<br>サブツリーのチェックを無効にした方が良い。 |- | root_squash || root UID / GIDをanonymous UID / GIDにマッピングする。<br>エクスポートされたディレクトリに対して、root権限ではアクセスできないようにする。 |- | no_root_squash || rootをanonymous UID / GIDにマッピングしない。<br>エクスポートされたディレクトリに対して、root権限でアクセスできるようにする。 |- | all_squash || 全てのUID / GIDをanonymous UID / GIDにマッピングする。 |- | no_all_squash || 全てのUID / GIDをanonymous UID / GIDにマッピングしない。(デフォルト) |- | anonuid=UID || 指定のUIDをanonymous UIDにマッピングする。 |- | anongid=GID || 指定のGIDをanonymous GIDにマッピングする。 |} </center> <br> /etc/exportsファイルの設定の変更を反映させる。<br> exportfs -ra <br><br> == NFSサービスの自動起動 == Linuxの起動時に、NFSサービスを自動起動するために、以下のコマンドを実行する。<br> # RHEL sudo systemctl start rpcbind nfs-server sudo systemctl enable rpcbind nfs-server # SUSE sudo systemctl start nfs-server sudo systemctl enable nfs-server # Raspberry Pi sudo systemctl start nfs-server sudo systemctl enable nfs-server <br><br> == ファイアーウォールの設定 == Firewalldを有効にしている場合は、NFSサービスの許可が必要である。<br> # NFS v4の許可 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も許可する場合 sudo firewall-cmd --permanent --zone=libvirt --add-service={nfs3,mountd,rpc-bind} sudo firewall-cmd --reload <br><br> == NFSの共有ディレクトリへの接続 == ==== Linuxクライアント ==== まず、NFSクライアントをインストールする。<br> # RHEL sudo dnf install nfs-utils # SUSE sudo zypper install nfs-client # Raspberry Pi sudo apt-get install nfs-common <br> 次に、ドメインの設定を行う。<br> <u>ドメインが存在しない場合は、この設定を行わない。</u><br> sudo vi /etc/idmapd.conf <br> # /etc/idmapd.confファイル # 自ドメイン名に変更 Domain = <ドメイン名> <br> ===== 手動マウント ===== NFSサーバの共有ディレクトリをマウントする。<br> もし、NFS v3でマウントする場合は、<code>-o vers=3</code>オプションを付加してマウントする。<br> # NFS v4の場合 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> df -hT <br> ===== 自動マウント(Linuxの起動時) ===== Linuxの起動時にNFS共有ディレクトリを自動マウントする場合は、/etc/fstabファイルに以下のように設定する。<br> sudo vi /etc/fstab # /etc/fstabファイル(最下行に追記) <NFSサーバのIPアドレスまたはホスト名>:/home/ユーザ名/NFS <マウントするクライアントPCのディレクトリ> nfs defaults 0 0 <br> ===== 自動マウント(マウントポイントのアクセス時) ===== マウントポイントのアクセス時に、動的にNFS共有ディレクトリにマウントする場合は、以下のように設定する。<br> 以下の例では、/mnt/NFSディレクトリに動的マウントするように設定している。<br> sudo mkdir /mnt/NFS <br> sudo zypper install autofs <br> sudo vi /etc/auto.master # /etc/auto.masterファイル(最下行に追記) /- /etc/auto.mount <br> sudo vi /etc/auto.mount # /etc/auto.mountファイル # [マウントポイント] [オプション] [ロケーション] /mnt/NFS -fstype=nfs,rw <NFSサーバのIPアドレスまたはホスト名>:/home/ユーザ名/NFS <br> AutoFSを自動起動設定にする。<br> sudo systemctl start autofs sudo systemctl enable autofs <br> 正常に機能しているか確認するため、マウントポイントへ移動して以下のコマンドを実行する。<br> cd /mnt/NFS ls -ahlF cat /proc/mounts | grep mntdir <br> ==== Windowsクライアント ==== ===== ネットワークドライブのマウント ===== WindowsからNFSの共有ディレクトリと通信するには、NFSクライアントを有効にする必要がある。<br> 初期設定では、この機能は無効になっている。<br> <br> # NFSクライアント機能を有効にする。 #* [設定]から行う場合 #*# [設定] - [システム] - [オプション機能]を選択する。 #*# 画面右上の[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> ===== ネットワークドライブの権限 ===== NFSサーバ上にあるディレクトリおよびファイルにおいて、作成または書き込みを行う場合、以下に示すファイル群を作成する。<br> これらのファイル群を作成するには、管理者権限が必要となることに注意する。<br> <br> passwdファイルを作成する。<br> このファイルには、Windows上のユーザ名とマッピングするLinux上のユーザのUIDとGIDを記述する。<br> # C:\Windows¥System32¥drivers¥etc\passwd <Windows上のユーザ名>:x:<Linux上のUID>:<Linux上のGID>::: 例: win11:x:1000: <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> {{#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__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]
サーバ - NFS
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse