如何在Linux下挂载Windows / Samba Windows共享?


21

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

在一个Ubuntu系统上,我可以用

mount  //winshared/mypath /mnt/win

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

mount error: could not resolve address for winshared: Unknown error

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

附加信息:

  1. 当我smbclient用来连接到Windows分区/共享/其他区域时,它在第一个系统上有效,而在另一个系统上则无效。错误是:

    Connection to winshared failed (Error NT_STATUS_BAD_NETWORK_NAME)
    
  2. 在学习完本教程之后,我安装了smbfscifs-utils,但是mount上面的命令仍然给出相同的错误,本教程中没有描述。

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

    //winshared/mypath /mnt/win cifs uid=alexander,credentials=/etc/samba/wincred 0 0
    

    如果文件/etc/samba/wincred与系统上的同一文件相同,则挂载可以工作。两个文件的md5sum相同。因此,可以排除有关凭证的错误。


请参阅Ubuntu Wiki上的教程:wiki.ubuntu.com/MountWindowsSharesPermanently
slm

我安装了两个软件包,但仍然收到相同的错误!
亚历克斯

我已经更新了问题;我发布了fstab行,并且我已经验证了凭证文件是正确的。
亚历克斯

3
我将从命令行1开始进行此操作,将该行放在/ etc / fstab中只是使其调试开始变得更加复杂。如果您无法从命令行挂载,那是另外一回事了。我每天都使用:mount -t cifs -o rw,netbiosname=serv1,credentials=/etc/creds.txt //192.168.1.1/somedir /mnt
slm

不,将权限更改为600不能解决问题。
亚历克斯

Answers:


15

您遇到名称解析器问题(可以通过从您的Ubuntu主机ping通winshare主机来检查),或者未加载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已安装,但有modprobe smbfs退货FATAL: Module smbfs not found.是否需要首先启动smbfs?如果是这样,怎么办?重新启动后如何使其自动启动?
亚历克斯

@Alex-没有什么可以开始的。您最有可能丢失包裹。
slm

@ Alex-
slm

我遵循了本教程,但仍然遇到相同的错误!
亚历克斯

1
在Ubunut 18.04上,我跳过了安装smbfs的工作,只使用了-t cifs。另外,如果您正在交互式运行,则可以省略password参数,因为mount会要求您输入密码。
MrMas

3

我正在使用运行Debian 4.9 的BeagleBone Black,并且由于存储容量有限,我需要安装Windows 10桌面托管的远程文件夹。(从系统设计的角度来看,这可能不是最好的方法,但是业务需求通常没有那么大的余地。)因此,我不得不临时考虑安装一个挂载的远程文件夹。

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

Windows 10“远程”主机

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

Debian Linux客户端

  1. 安装支持包:smbclientcif-utils

    sudo apt-get install smbclient
    sudo apt-get install cifs-utils
    
  2. 创建目标目录以挂载远程共享:

    sudo mkdir -p /mnt/my_mount_dir
    
  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
    

    更新:将本地安装的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
    

2
SMB1已过时,您确实应该尽量避免使用它。如果您将vers=2.1这些mount选项包括在内,则将获得SMB2。最好也使用credentials代替usernamepassword。而且您可能并不需要sec=ntml这些。
roaima

@roaima感谢您的提示,但是我被老版本卡住了。感谢您修复代码格式。这不是让我将代码放在列表项之间。
Jim Fell

mount没坏 它转而使用SMB2或可能是3。SMB1已被弃用十年以上,您不应该再使用它。
roaima

@roaima知道这很高兴,但是不幸的是Windows 10似乎仅支持“ SMB1.0 / CIFS”。另外,这是针对专用网络的,因此我不太担心安全性。
Jim Fell

Windows 10支持SMB2和SMB3。您必须安装支持程序包,以使其回落到SMB1。
roaima

1

检查是否安装了winbind;然后,在/etc/nsswitch.conf文件中,必须wins在该hosts行中列出。

就像是:

hosts: files wins dns

根据系统上安装的软件包,可能还会列出其他模块。


昨天在Ubuntu 12.04 64bit上试用了此解决方案,效果很好。谢谢。今天,我在Ubuntu 12.04 32bit上执行相同操作,但失败了,很奇怪。
Czarek Tomczak 2014年

1
@update:原来您必须安装winbind软件包sudo apt-get install winbind
Czarek Tomczak 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.