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
仅当已安装时,第二个绑定安装才能成功。要将此要求告知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
,但我认为无论如何绑定安装都会忽略这一点。)