尝试挂载Samba共享时出现“尚未实现挂载cifs URL”

我有一台用于开发的服务器(Ubuntu 12.04)。在那台机器上,我有一个名为"projects"的共享文件夹。我尝试在我的Ubuntu 11.10上执行以下命令:
sudo mount -t smbfs smb://192.168.2.28/projects/myProject /mnt/myProject
但是遇到了错误:
Mounting cifs URL not implemented yet. Attempt to mount smb://192.168.2.28/projects/myProject.
我应该如何解决这个问题?我需要将这个文件夹挂载以便在NetBeans中使用它。

听起来像是Samba服务器(192.168.2.28)还没有设置,或者没有打开适当的端口以允许其连接。您能运行此命令以确保您看到了Samba连接所需的正确端口吗:sudo nmap 192.168.2.28 - ruffEdgz
@ruffEdgz 这个问题与服务器无关;这个错误消息在执行任何网络操作之前就会出现。请查看我的答案以获取详细信息。 - Eliah Kagan
好知道。我还没有在我的笔记本电脑上需要这样做,所以我得确保它在我的当前Samba服务器上能正常工作 ;) - ruffEdgz
4个回答

由于错误消息所说的CIFS URL(以smb://开头)不受支持,您必须使用“经典”语法来标识服务器和共享。此外,您不能将文件夹挂载为共享内部的文件夹 - 您应该挂载共享,然后访问其中的文件夹。如果需要,您可以在共享内部创建一个符号链接到文件夹。最后,当您以root身份(例如,使用sudo)运行smbmount、mount -t smbfs或类似的远程挂载命令时,您需要在服务器上指定用户名(除非它实际上是root,这是不太可能的,并且如果服务器运行类Unix系统,则不建议这样做)。
因此,首先,您将为共享创建一个文件夹(挂载点):
sudo mkdir /mnt/projects
(这是假设您想要在/mnt中创建它。现在更常见的做法是在/media中创建所有全局可访问的挂载点,而不是Ubuntu系统本身的一部分,但如果您喜欢,使用/mnt也是可以的。)
然后使用以下命令挂载共享文件夹:
sudo smbmount //192.168.2.28/projects /mnt/projects -o user=用户名用户名替换为您需要登录的Samba服务器上的用户名。系统会提示您输入密码。您也可以在命令行中指定密码(使用-o password=密码),但密码会以明文形式显示在终端中,并且会保存在命令历史记录中,所以最好不要这样做。
请注意,我使用了smbmount,但如果您更喜欢,也可以使用mount -t smbfsmount -t cifs(或mount.cifs)。
现在,smb://192.168.2.28/projects的内容可以在/mnt/projects中访问。如果您需要能够在/mnt/projects/myProject中访问smb://192.168.2.28/projects/myProject的内容,您可以创建一个符号链接:

sudo ln -s /mnt/projects/myProject /mnt/myProject

对于Ubuntu 12.10及更高版本的读者:您必须使用mount.cifsmount -t cifs(不再提供smbmountmount -t smbfs)。需要安装cifs-utils Install cifs-utils软件包。这些命令也适用于早期系统。


5在Ubuntu 13.04上,我首先需要安装cifs-utils:sudo aptitude install cifs-utils。之后,我可以使用以下语法挂载共享:sudo mount -t cifs //server/share /mnt/ - Gerald Schneider
@GeraldSchneider 谢谢,我已在回答中加上了提及。 - Eliah Kagan
在Kubuntu 13.04中使用VirtualBox(使用host-only适配器)与我一起挂载Windows 7(主机)文件夹。 - Mohamad Fakih

为了永久挂载您的SMB共享,按照以下步骤进行操作:
  1. 创建一个用于挂载共享的文件夹(例如 /mnt/windows):
  2. sudo mkdir [挂载点]
    
  3. 更改其权限:
  4. sudo chown [用户名]:[用户名] [挂载点]
    
  5. 创建一个包含你的凭据的文件(我使用 /home/[用户]/.smbcredentials):
  6. username=[域用户]
    password=[域密码]
    domain=[域]
    
  7. 将以下行添加到 /etc/fstab 文件中:
  8. //[SMB主机名]/[共享名称]/        [挂载点]  cifs        credentials=[凭据文件路径],rw,uid=[用户],user       0       0
    
  9. 运行以下命令(仅需执行一次,重新启动后将自动执行):
  10. sudo mount [挂载点]
    
经过测试,适用于Ubuntu 12.10。

对我来说最有效的方法是:echo //192.168.1.1/c$/ /mnt/c cifs credentials=/home/user/.smbcredentials,rw,uid=1001,gid=1001,user 0 0 | sudo tee -a /etc/fstab。然后,我运行以下命令进行挂载:sudo mount /mnt/c - Ross Smith II

虽然接受的答案是正确的,但现在你可以通过使用3个软件包来挂载Samba共享中的文件夹。
samba-client
samba-common
cifs-utils

这些是基于 CentOS 的软件仓库包(对不起,我不再使用 Ubuntu,因此无法确认),但我相信 Ubuntu 也有类似的东西。