为什么无法挂载“/etc/fstab.d/”中可读文件?

为什么无法挂载“/etc/fstab.d/”中可读文件?

我正在尝试设置一个自动安装的卷,并注意到我的服务器上现在有一个/etc/fstab.d/。我在目录中创建了一个新文件,其中包含以下内容:

# backupstore: large volume
/dev/mapper/bagend-backupstore  /mnt/backupstore        ext4    auto,relatime,users,sync        0       0

但是当我运行时,mount -a卷未安装。此外,当我运行mount /mnt/backupstore或时,/dev/mapper/bagend-backupstore我被告知系统无法在 fstab 中找到条目(并且抢先说明:是的,设备和挂载点是正确的 - 我可以轻松使用它来挂载它mount -t ext4 /dev/mapper/bagend-backupstore /mnt/backupstore

当我从中删除文件/etc/fstab.d/并将条目放入主/etc/fstab文件时,安装该卷没有任何问题。

那么,是否可以使用 mount 命令来检查条目/etc/fstab.d/?如果可以,我该怎么做才能实现这一点?

答案1

  • /bin/mount 无法阅读 /etc/fstab.d然而,只有图书馆(libmount)可以。
  • 这是一个已知的“愿望清单”错误util-linux,提供mount
  • 该功能已在最新版中添加util-linux2.21(发行说明说“使用 scandir* 的过滤器参数来拾取 /etc/fstab.d/*.fstab 文件”)
  • 由于 Debian Unstable (Sid) 也使用 2.20-x 版本util-linux,我怀疑直到 13.04 版我们才会在 Ubuntu 上看到 2.21
  • 如果你需要更快的版本,你可以从kernel.org 来源,但我建议你至少等到它进入 Debian(util-linux还提供许多其他关键系统实用程序/库)

答案2

在上游之后,该/etc/fstab.d支持已从 mount(8) 恢复讨论。只有 libmount 支持 mount 选项卡目录。fstab.d默认情况下不打算在 mount(8) 中支持它。

问题是,它/etc/fstab是许多地方(libc、systemd、UI 程序等)使用的事实标准,希望所有地方都能改为支持它是不现实的fstab.d

无论如何,你可以使用新的mount(8) 来自 util-linux >= 2.21 和一个--fstab <path>指定备用挂载表的新选项,此选项还支持目录。这意味着您必须明确指定目录 - mount(8) 默认不会读取它。请参阅mount(8) 手册页更多细节。

相关内容