fstab中的CIFS挂载在IP上成功,在/ etc / hosts中写入的主机名上失败

我想知道为什么我的Ubuntu服务器14.04 LTS有问题解决从fstab主机名。 我试图装入以下条目:

//NAS-5h2-20/backuppc/ /mnt/backuppc cifs auto,user=THEUSER,password=THEPASSWORD,cifsacl,uid=109 0 0 

安装失败,错误

 mount: wrong fs type, bad option, bad superblock on //NAS-5h1-15/backuppc, missing codepage or helper program, or other error (for several filesystems (eg nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so 

和系统日志条目:

 Unable to determine destination address. 

但是,如果我交换NAS-5h2-20的主机名为 IP 192.168.1.29 ,这就像一个魅力。 但是,出于便携性的原因,我想通过fstab中的主机名来映射mount。

/ etc / hosts的内容是(其他行):

 192.168.1.28 NAS-5h1-15 192.168.1.29 NAS-5h2-20 192.168.1.30 NAS-6h1-04 

这些主机名未在本地DNS服务器上注册。 它的目的是在某些情况下能够使用不同的IP(servercluster /工作站)的DNS和服务器内部使用,所以我不能注册到DNS。

这也是没有问题的

 ping NAS-5h2-20 

所以我敢肯定,这是一个解决问题的方法。 但是,我无法弄清楚,在哪里。 我看nsswitch.conf,没有什么特别的:

 passwd: compat group: compat shadow: compat hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis 

/etc/resolv.conf也看起来OK:

 # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.1 search ourdomain.local 

所以,问题: – 为什么在这种特殊情况下 ,parsing器无法读取或忽略hosts文件
– 是DNS / WINS /一些其他parsing方法硬编码到mount.cifs?

默认情况下,某些发行版上的samba(cifs)软件包不使用hosts文件来parsing名称。 而是使用NetBIOS名称来parsingIP。 有两种方法可以解决这个问题:

  • 将samba设置为使用主机文件进行parsing。

在您的smb.conf文件中,查找并修改或创build以下行:

  [global] name resolve order = hosts lmhosts wins bcast 

并重新启动桑巴。 这将设置samba首先使用主机文件来parsing名称。 另外,在主机文件中添加machine-name.domainname作为别名:

  192.168.1.28 machine-name machine-name.domainname 
  • 设置您尝试连接的机器的NetBIOS名称。

在您尝试连接的机器上,在smb.conf文件中设置以下内容:

  netbios name = MachineName 

并重新启动桑巴。


理想情况下,你想要做这两件事情,但只是设置桑巴使用主机文件应该工作。

参考文献: https : //www.samba.org/samba/docs/using_samba/ch07.html