Mac OS X 自动挂载未正确挂载 fstab 条目

Mac OS X 自动挂载未正确挂载 fstab 条目

我正在尝试在 Mac OS X 上自动安装 Windows SMB 共享。

我尝试做的第一件事是只将条目放入/etc/fstab

$ dgrant$ cat /etc/fstab
//darrengrant@d-grant/share    /pc/share    smbfs    nodev,nosuid

使用 可以正常工作mount -a

但我希望每次打开计算机时都能安装驱动器。但当我重新启动计算机时,驱动器没有安装。我检查控制台,看到以下内容:

3/24/11 2:09:32 PM  com.apple.launchd[1]    *** launchd[1] has started up. ***
3/24/11 2:09:48 PM  com.apple.autofsd[50]   automount: Mount for //darrengrant@d-grant/share has no path for the directory to mount

我可以简单地使用 来在命令行上重现此错误消息sudo automount。我认为launchd调用automountd,它将所有内容都挂载在 中/etc/fstab。该文件/etc/auto_master包含对 fstab 的一两个引用,因此这似乎是合理的。

我在实际源代码中发现了“没有要挂载的目录路径”错误automountd,似乎原因是fstab机器名称和挂载目录名称之间的行中缺少冒号。我通过添加冒号来消除错误,如下fstab所示:

//darrengrant@mypc:/share   /pc/share   smbfs    nodev,nosuid

但重新启动后,automount无法正常工作,并出现一组完全不同的错误:

$ sudo automount -v
automount: /net updated
automount: /home updated
    [ pauses here for a couple of seconds ]
automount: /pc/share updated
automount: no unmounts              # looks good so far  ...

$ mount
....
map -static on /pc/share (autofs, automounted, nobrowse) # OK, a little different..

$ ls /pc/share
ls: share: Host is down     # fail.

这真的没什么意义……为什么 fstab 不需要冒号而 automount 需要?“主机已关闭”部分到底是什么意思?也许是网络和本地驱动器之间有些混淆?

答案1

这里有一点令人困惑。 mount读取/etc/fstab,并用于系统启动时应挂载的东西。

automount读作/etc/auto_master,并且只在目录使用时挂载东西,而不是在使用之前。它通常用于 NFS 主目录之类的东西,只有当用户真正需要它们时才应该挂载它们。您也可以这样做,但不是/etc/fstab在哪里做。

如果您只想在机器启动时安装 smb 共享,那么您所需要的就是 /etc/fstab 中已有的内容,同时还需要注意一些陷阱。

  1. 使用该soft选项 - 否则,如果您没有联网,安装将挂起并阻止您的系统正确启动
  2. 看起来您是在没有凭据的情况下进行连接的。如果您确实需要在 fstab 条目中使用凭据,请小心,因为 /etc/fstab 通常可由系统上的任何人读取,因此您用于 smb 系统的用户名和密码将会暴露。可以通过编辑 ~/Library/Preferences/nsmb.conf

答案2

malcolmpdx。您说的在理论上是正确的,对于所有以前的 OS-X 版本,在实践中也是如此。不幸的是,Catalina 似乎已停止处理 fstab。我希望得到原因解释,或者更好的解决方案。

我已经管理各种不同风格的 unix 机器 30 多年了,这种变化至少可以说令人失望。就我而言,我试图在启动时安装一堆 NFS 共享,因为我需要它们被后台任务访问 - 对于来自 Sun 世界的任何人来说,这是一种非常常见的配置。

我们将非常感谢您的任何指导。

相关内容