fstabはNFSリモートフォルダを自動的にマウントしません。

fstabはNFSリモートフォルダを自動的にマウントしません。

起動中にリモートディレクトリを自動マウントすることはできません。 Ubuntu 14.04 LTSでNFSプロトコルを使用しています。サーバーは192.168.1.1、クライアントはです。192.168.1.2

/etc/exportsサーバー側の設定は次のとおりです。

/home/export 192.168.1.2(ro,no_root_squash,sync)

\home\userクライアントディレクトリは暗号化されていますが、この資料に記載されているすべてのディレクトリは暗号化されていません。サーバーコンピュータは常にオンになっており、2台のコンピュータは互いにpingできます。さらに、両方のシステムでは、\homeディレクトリは独自のパーティションにマウントされます。

コマンドラインはうまく機能し、マウントポイントの背後にあるリモートコンテンツを見ることができます sudo mount 192.168.1.1:/home/export /home/import/server1


ネットワークドライブの/etc/fstabを正しく編集するには? 編集でネットワークドライブをマウントしたいです/etc/fstab。ただし、これらの行のいずれかを追加すると/etc/fstab

[1]192.168.1.1:/home/export /home/import/server1 nfs rsize=8192,wsize=8192,timeo=14 0 0

[2]192.168.1.1:/home/export /home/import/server1 nfs auto 0 0

[サム]192.168.1.1:/home/export /home/import/server1 nfs auto, rsize=8192,wsize=8192,timeo=14 0 0

[4]192.168.1.1:/home/export /home/import/server1 nfs defaults 0 0

sudo mount -aサーバー側のビューを取得するには、手動実行を開始する必要があります。私とその人たちの期待に反してこのU&L投稿しかも。

自動マウント機能を独自に機能させるにはどうすればよいですか?


インスピレーション/盗作公開:

[1]https://help.ubuntu.com/14.04/serverguide/network-file-system.html

[2]https://help.ubuntu.com/community/SettingUpNFSHowTo#Mounting_NFS_shares_in_encrypted_home_won.27t_work_on_boot

[3] = [1] + [2]

[4]ローカルデバイスパーティションのマウントオプションの模倣etc/fstab

答え1

mount -aオプションが有効な場合は、fstabに_netdevを追加する必要があります。

192.168.1.1:/home/export /home/import/server1 nfs defaults,_netdev 0 0

また、「chkconfig netfs on」を確認してください。

答え2

  1. 次の場所にファイルを作成します。 /etc/network/if-up.d/fstab

  2. これを追加してください:

    #!/bin/sh
    mount -a
    
  3. ファイルを実行可能にします。

    sudo chmod +x /etc/network/if-up.d/fstab
    

ネットワークスタックが起動して動作した後、起動時にシステムにコマンドを  mount -a 実行するように指示します。これがfstabのcifsマウントと似ている場合は、ブート時に共有がマウントされません。

この答えから:18.04では、起動時に/etc/fstabのnfs共有がロードされませんでした。 存在するUbuntuフォーラム

答え3

簡単に言うと:その後、再sudo apt install openvswitch-switch-dpdk起動して動作することを確認します。


Ubuntu 22.04で同じ問題が発生して解決しました。

リンクをたどってください(18.04では、起動時に/etc/fstabのnfs共有がロードされませんでした。)と共有回答~の@LiberiFatali、次のように言及された人を見つけました。

私にとって解決策はnetplan設定を編集することでした(/etc/netplan/50-cloud-init.yaml)ファイルを作成し、インターフェイスを次に設定します。optional: false

これはnetplanのデフォルト動作であるべきですが、試してみることにしました。構成を編集して実行すると、次のnetplan apply警告が表示されます。Cannot call Open vSwitch: ovsdb-server.service is not running.この投稿バグと言って警告は無視しても良いというのですが、警告が気に入らずに削除しようとしましたsudo apt install openvswitch-switch-dpdk。再起動後、nfsは魔法のようにマウントされました!また、パッケージをインストールするだけで、fstabサイレントインストールが機能することを確認するためにnetplan構成ファイルの変更を元に戻しました。

私はLinuxシステムの専門家ではなく、どのようにこれが起こるのかわかりませんが、同じ条件のシステムで試してみる価値があります。頑張ってください。

答え4

多くの答えが示すように、さまざまな理由があるかもしれません。ログファイルを調べる必要があるかもしれません。

私の場合(RHEL 7にあります)、これは依存関係サイクルが原因でした。 Systemd は fstab エントリを nfs-server サービスに依存するマウントデバイスに変換し、その逆も同様です。理由を完全に理解していませんが、私の場合は問題を解決する必要はありませんでした。

/var/log/messages で見つかった内容です。

systemd: Found dependency on home.mount/start
systemd: Found dependency on nfs-server.service/start
systemd: Breaking ordering cycle by deleting job home.mount/start
systemd: Job home.mount/start deleted to break ordering cycle starting with nfs-server.service/start

どちらを削除するかはランダムです。つまり、起動時にインストールが機能する場合もあり、機能しない場合もあります。

私が考える限り、nfsサーバーは最初からアクティブにしてはいけません。これによりソリューションが簡単になります。

systemctl disable nfs-server.service

nfs-serverが必要な場合は、依存関係のサイクルを別の方法で切断する必要があります。正確な答えはありませんが、一般的な概要は次のとおりです(もちろん、インストールデバイス名などに置き換えます)。

  • systemdによって生成されたサービスの詳細を確認し、それを制御できるマウントデバイスに切り替えます。

    systemctl cat home.mount >/etc/systemd/system/home.mount

  • /etc/fstabからエントリを削除します。 home.mountファイルがそれを置き換えます。

  • 循環依存関係を削除するには、必要に応じて home.mount ファイルを編集します。ここでは、問題が何であるかを深く調べていないので、助けることはできません。

これでマウントをテストできます。

systemctl daemon-reload
umount /home
mount -a

mount -aを使用することに加えて、次のコマンドを使用してディレクトリをマウントすることもできます。

systemctl start home.mount

インストールをテストしたら、システムを再起動して問題が解決するかどうかを確認してください。インストールは時々ランダムに実行される可能性があるため、/var/log/messagesをチェックして、循環依存関係がなくなったか、再起動が1回ではなく複数回実行されることを確認することをお勧めします。

関連情報