我在一台名为 aaron 的机器上有一个 Samba 共享,名为 A。该共享内有一个名为 Audio-CD_WAVs 的 smylink,它指向机器本地目录。当 Windows 机器访问此共享时,Samba 会跟踪链接并将目标导出到 Windows,因此 Windows 看不到符号链接。
现在,我后来在另一台 Linux 机器 dathan 上将 Audio-CD_WAVs 安装在名为 CD-mount 的普通目录中。我使用 smbfs 进行此安装。我期望它安装链接的目标,但安装点本身 CD-mount 却变成了指向 aaron 上的目录的符号链接。我现在遇到的问题是,我无法卸载它,卸载命令跟踪符号链接并抱怨它不存在。那么我该如何卸载它(不重新启动机器,这会打扰很多人)?
安装前:
drwxrwxrwx CD 安装
$ 安装 CD 安装盘
后:
lrwxrwxrwx CD 安装 -> /some/nonexistant/directory12
$ umount CD 挂载
umount:directory12:未找到
$ mount |tail -n 1
//aaron.us.grn/A/Audio-CD_WAVs 在 /mnt/CD-mount 类型 cifs (ro,mand)
我认为这种行为的解释是,当 samba 看到 Linux 客户端时,它会启用“unix 扩展”选项,其中包括对符号链接的支持。不过,我是在安装了符号链接后才发现这一点的。
答案1
我尝试了 -f 和 -l,但都不起作用:
$ umount -f CD 挂载
umount2:没有该文件或目录
umount:directory12:未找到
$ umount -l CD 挂载
umount:directory12:未找到
答案2
你是对的,Samba 确实解释了符号链接并将其呈现为目录;smbfs 则不是。
Samba 中的选项是“follow symlinks = yes”,并在共享定义中定义。您可以使用“follow symlinks = no”关闭此行为。
不知为何,我怀疑符号链接是否已挂载。如果文件系统确实已卸载,则只需删除符号链接即可。
你可以尝试使用以下方法强行下马:
mount -f /mount-path
或者
mount -l /mount-path