NFS エクスポート用の USB サブディレクトリのマウント

NFS エクスポート用の USB サブディレクトリのマウント

Ubuntu 18.04.1 LTS

USBドライブからディレクトリをエクスポートする際に問題があります。同様の権限設定でエクスポートをたくさんしましたが、すべて大丈夫です。

エラーは次のとおりです。

mount --bind /mnt/usb2T/inbox /export/inbox
mount: /export/inbox: mount(2) system call failed: No such file or directory.

この問題に関連するディレクトリは次のとおりです。

USBドライブ:

ls -la /mnt/
drwxrwxr-x  7 root users 4096 Sep 14 14:29 usb2T

成功したインストールを次にエクスポートしました。

/mnt/usb2T /export/usb2T nfs bind 0 0

お客様が次のように正常にエクスポートしてインストールしました。

/export/usb2T 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)

しかし、usb2Tのサブディレクトリに対して同じアプローチを試みると、問題が発生します。

ls -la /mnt/usb2T/inbox | wc -l
96

だからそれは存在し、そこにファイルがあります。

/export/inbox ディレクトリも同様です。

ls -la /export
drwxrwxr-x  0 root users    0 Sep 14 14:29 inbox
drwxrwxr-x  7 root users 4096 Sep 14 14:29 usb2T

fstabで次の行を使用してバインドマウントを試してください。

/mnt/usb2T/inbox /export/inbox nfs bind 0 0

このエラーが発生するのはなぜですか?

答え1

Ubuntu 18.04.1 LTSは利用可能な限り新しいバージョンであり、systemdレガシーsystemdです。/etc/fstabmount -a

代わりに自動的に.mount-typeを生成します。システム単位ファイル各行/etc/fstabに対して、これらのユニットにいくつかの基本的な依存関係を追加し、起動時にデフォルトでできるだけ早くユニットを並列に実行します。

重要なことは、systemdあるインストールが完了した別のインストールに依存していることを明示的に指示しない限り、特定の順序が保証されないことです。行の順序は/etc/fstab以前のように意味がありませんmount -a

/mnt/usb2T2番目のバインドマウントは、すでにインストールされている場合にのみ成功します。この要件を知らせるには、その行を次に変更するsystemd必要があります。fstab

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires=/mnt/usb2T 0 0

または、systemd使用されているバージョンによっては、次のようになります。

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires-mounts-for=/mnt/usb2T 0 0

(技術的には、バインドマウントでは、対応する行のファイルシステムタイプではないはずですfstabが、バインドマウントはとにかくそれを無視すると思います。)nonenfs

関連情報