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/fstab
mount -a
代わりに自動的に.mount
-typeを生成します。システム単位ファイル各行/etc/fstab
に対して、これらのユニットにいくつかの基本的な依存関係を追加し、起動時にデフォルトでできるだけ早くユニットを並列に実行します。
重要なことは、systemd
あるインストールが完了した別のインストールに依存していることを明示的に指示しない限り、特定の順序が保証されないことです。行の順序は/etc/fstab
以前のように意味がありませんmount -a
。
/mnt/usb2T
2番目のバインドマウントは、すでにインストールされている場合にのみ成功します。この要件を知らせるには、その行を次に変更する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
が、バインドマウントはとにかくそれを無視すると思います。)none
nfs