Интересно, почему у моего Ubuntu Server 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 (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
и запись в системном журнале:
Unable to determine destination address.
ОДНАКО, это работает как шарм, если я поменяю имя хоста НАС-5х2-20 для своего IP 192.168.1.29. Однако из соображений переносимости я хотел бы отобразить монтирование по имени хоста в файле fstab.
Содержание / 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-адреса (серверный кластер / рабочая станция) для 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 тоже выглядит нормально:
# 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
Итак, вопросы: - почему распознаватель не читает ИЛИ игнорирует файл hosts в этом частном случае?
- DNS / WINS / какой-либо другой метод разрешения жестко запрограммирован в mount.cifs?
По умолчанию пакет samba (cifs) в некоторых дистрибутивах не использует файл hosts для разрешения имени. Вместо этого он использует имя NetBIOS для преобразования в IP. Есть два способа сделать это:
В вашем файле smb.conf найдите и измените или создайте следующую строку:
[global]
name resolve order = hosts lmhosts wins bcast
и перезапустите самбу. Это заставит samba сначала использовать файл hosts для разрешения имени. Дополнительно добавлено machine-name.domainname
в качестве псевдонима в вашем файле hosts:
192.168.1.28 machine-name machine-name.domainname
На машинах, к которым вы пытаетесь подключиться, задайте в файле smb.conf следующее:
netbios name = MachineName
и перезапустите самбу.
В идеале вы хотите сделать и то, и другое, однако, достаточно просто настроить samba на использование файла hosts.
Ссылки: https://www.samba.org/samba/docs/using_samba/ch07.html