Nac*_*ess 16 domain-name-system ubuntu mount cifs fstab
我想知道为什么我的 Ubuntu Server 14.04 LTS 在从 fstab 解析主机名时出现问题。我尝试挂载以下条目:
//NAS-5h2-20/backuppc/ /mnt/backuppc cifs auto,user=THEUSER,password=THEPASSWORD,cifsacl,uid=109 0 0
Run Code Online (Sandbox Code Playgroud)
安装失败并出现错误
mount: wrong fs type, bad option, bad superblock on //NAS-5h1-15/backuppc,
missing codepage or helper program, or other error
(for several filesystems (e.g. 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
Run Code Online (Sandbox Code Playgroud)
和系统日志条目:
Unable to determine destination address.
Run Code Online (Sandbox Code Playgroud)
但是,如果我将主机名NAS-5h2-20交换为其 IP 192.168.1.29,这就像一个魅力。但是,出于可移植性的原因,我想在 fstab 中按主机名映射挂载。
的内容的/ etc /主机是(除其他行):
192.168.1.28 NAS-5h1-15
192.168.1.29 NAS-5h2-20
192.168.1.30 NAS-6h1-04
Run Code Online (Sandbox Code Playgroud)
这些主机名未向本地 DNS 服务器注册。它的目的是在某些情况下能够将不同的 IP(服务器集群/工作站)用于 DNS 和服务器内部使用,因此我无法将它们注册到 DNS。
也没有问题
ping NAS-5h2-20
Run Code Online (Sandbox Code Playgroud)
.
因此我敢肯定,这是一个解析器问题。但是,我想不通,在哪里。我查看 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
Run Code Online (Sandbox Code Playgroud)
并且/etc/resolv.conf看起来也不错:
# 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
Run Code Online (Sandbox Code Playgroud)
所以,问题: - 为什么在这种特殊情况下解析器无法读取或忽略主机文件?
- DNS/WINS/其他一些解析方法是否硬编码到 mount.cifs 中?
小智 13
默认情况下,某些发行版上的 samba (cifs) 包不使用主机文件来解析名称。相反,它使用 NetBIOS 名称来解析 IP。有两种方法可以解决这个问题:
在 smb.conf 文件中,找到并修改或创建以下行:
[global]
name resolve order = host lmhosts wins bcast
Run Code Online (Sandbox Code Playgroud)
并重新启动桑巴。这会将 samba 设置为使用标准主机名到 IP 地址解析,使用系统 /etc/hosts、NIS 或 DNS 查找来解析服务器名称。此外,machine-name.domainname
在您的主机文件中添加为别名:
192.168.1.28 machine-name machine-name.domainname
Run Code Online (Sandbox Code Playgroud)
在您尝试连接的机器上,在 smb.conf 文件中设置以下内容:
netbios name = MachineName
Run Code Online (Sandbox Code Playgroud)
并重新启动桑巴。
理想情况下,您希望同时完成这两件事,但是只需将 samba 设置为使用 hosts 文件即可。
参考资料:https : //www.samba.org/samba/docs/using_samba/ch07.html
归档时间: |
|
查看次数: |
22269 次 |
最近记录: |