如何在 Linux 下挂载 windows/samba windows 共享?

Ale*_*lex 36 linux samba windows mount

在 Linux (Ubuntu 12.04) 下,我想挂载一个//winshared在网络上命名的 Windows 共享/Windows 分区。我不知道 IP 或其他任何东西。

在一个 Ubuntu 系统上,我可以挂载一个目录

mount  //winshared/mypath /mnt/win
Run Code Online (Sandbox Code Playgroud)

而在另一个 Ubuntu 系统上,完全相同的命令只是给出

mount error: could not resolve address for winshared: Unknown error
Run Code Online (Sandbox Code Playgroud)

两个系统上的网络设置似乎相同,我安装了smbfssamba(后者有错误)。我需要安装其他东西吗?我需要配置一些东西吗?如何找出两个系统之间的关键差异以在两个系统上获得相同的挂载工作?

附加信息:

  1. 当我smbclient用来连接到 Windows 分区/共享/任何东西时,它在第一个系统上工作,但在另一个系统上不起作用。错误是:

    Connection to winshared failed (Error NT_STATUS_BAD_NETWORK_NAME)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 按照本教程,我安装了smbfscifs-utils,但是mount上面的命令仍然给出相同的错误,教程中没有描述。

  3. 我也有/etc/fstab阅读的条目

    //winshared/mypath /mnt/win cifs uid=alexander,credentials=/etc/samba/wincred 0 0
    
    Run Code Online (Sandbox Code Playgroud)

    使用与/etc/samba/wincred系统上的同一文件相同的文件,挂载工作。两个文件的 md5sum 是相同的。因此,可以排除关于凭据的错误。

小智 22

您有名称解析器问题(您可以通过例如从 Ubuntu 主机 ping 主机 winshared 来检查)或未加载 smbfs 模块。

您可能必须先使用 安装 smbfs apt-get -y install smbfs,然后使用 插入模块modprobe smbfs,但之后您应该可以使用mount -t smbs.

你要找的是mount -t smbfs -o username=<your_username>,password=<your_password> //server/share /mountpoint.

  • 死灵或未来的旅行者。新系统上缺少 smbfs。请改用 sudo apt-get install cifs-utils。如果是这样,那么“modprobe smbfs”也将不起作用。所以这个答案不适用于新系统。 (4认同)
  • 在 Ubunut 18.04 上,我跳过了安装 smbfs 而只是使用了 `-t cifs`。此外,如果您以交互方式运行,您可以省略密码参数,因为 mount 会要求您输入密码。 (4认同)

Jim*_*ell 7

我使用的是运行 Debian 4.9的BeagleBone Black,由于存储容量有限,我需要挂载一个托管在 Windows 10 桌面上的远程文件夹。(我知道从系统设计的角度来看,这可能不是最好的,但业务需求通常几乎没有空间。)因此,不得不即兴发挥,我想出了一个安装的远程文件夹。

在尝试挂载 Windows 10 共享文件夹时遇到了很多很多问题,这是我的解决方案,希望其他人可以从我的经验中受益。

Windows 10“远程”主机

  1. Windows 功能中启用 SMB1.0/CIFS 文件共享支持(详细信息)。
  2. 启动 Windows NetLogon服务。
  3. 在要共享的文件夹上启用共享

Debian Linux 客户端

  1. 安装支持包:smbclientcif-utils

    sudo apt-get install smbclient
    sudo apt-get install cifs-utils
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建目标目录以挂载远程共享:

    sudo mkdir -p /mnt/my_mount_dir
    
    Run Code Online (Sandbox Code Playgroud)
  3. 挂载远程文件夹:

    sudo mount -t cifs -o "domain=MYDOMAIN,username=MyUserName,password=myPas$werd,sec=ntlm" //(your windows host ip)/(your remote share name) /mnt/my_mount_dir
    
    Run Code Online (Sandbox Code Playgroud)

    更新:将我的 Debian 本地安装更新到 6.3 版后,我的mount命令中断了,需要我添加vers指定 SMB1的选项:

    sudo mount -t cifs -o "domain=MYDOMAIN,username=MyUserName,password=myPas$werd,sec=ntlm,vers=1.0" //(your windows host ip)/(your remote share name) /mnt/my_mount_dir
    
    Run Code Online (Sandbox Code Playgroud)

  • SMB1 已过时,您确实应该尽量避免使用它。如果你在 `mount` 选项中包含 `vers=2.1`,你将获得 SMB 2。你最好使用 `credentials` 而不是 `username` 和 `password`。毕竟你可能不需要`sec=ntml`。 (2认同)