Le montage CIFS dans fstab réussit sur IP, échoue sur le nom d'hôte écrit dans / etc / hosts

10

Je me demande pourquoi mon Ubuntu Server 14.04 LTS a des problèmes pour résoudre un nom d'hôte depuis fstab. J'ai essayé de monter l'entrée suivante:

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

le montage échoue avec l'erreur

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

et l'entrée Syslog:

Unable to determine destination address.

CEPENDANT, cela fonctionne comme un charme si j'échange le nom d'hôte NAS-5h2-20 pour son IP 192.168.1.29 . Cependant, pour des raisons de portabilité, j'aimerais mapper le montage par nom d'hôte dans le fstab.

Le contenu de / etc / hosts est (entre autres lignes):

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

Ces noms d'hôtes ne sont pas enregistrés auprès du serveur DNS local. Et il est prévu que dans certains cas, il soit possible d'utiliser différentes adresses IP (cluster de serveurs / station de travail) pour le DNS et l'utilisation interne au serveur, donc je ne peux pas les enregistrer sur le DNS.

Ce n'est pas non plus un problème pour

ping NAS-5h2-20

.

Je suis donc sûr que c'est un problème de résolveur. Cependant, je ne sais pas où. Je regarde nsswitch.conf, rien de spécial là-bas:

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

Et /etc/resolv.conf semble également 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

Donc, questions: - pourquoi le résolveur ne parvient-il pas à lire OU ignore le fichier hosts dans ce cas particulier?
- DNS / WINS / une autre méthode de résolution est-elle codée en dur dans mount.cifs?

Nachtexpress
la source
1
De askubuntu.com/a/374699 :sudo apt-get install cifs-utils

Réponses:

8

Par défaut, le package samba (cifs) sur certaines distributions n'utilise pas le fichier hosts pour résoudre le nom. Au lieu de cela, il utilise le nom NetBIOS pour se résoudre à l'IP. Il y a deux façons d'aborder cela:

  • Définissez samba pour utiliser le fichier hosts pour la résolution.

Dans votre fichier smb.conf, recherchez et modifiez ou créez la ligne suivante:

    [global]
    name resolve order =  hosts lmhosts wins bcast

et redémarrez samba. Cela configurera samba pour utiliser d'abord le fichier hosts pour résoudre le nom. De plus, ajouté machine-name.domainnamecomme alias dans votre fichier d'hôtes:

    192.168.1.28    machine-name    machine-name.domainname
  • Définissez le nom NetBIOS des machines auxquelles vous essayez de vous connecter.

Sur les machines que vous essayez de vous connecter pour définir les éléments suivants dans le fichier smb.conf:

    netbios name = MachineName

et redémarrez samba.


Idéalement, vous voulez faire ces deux choses, mais simplement configurer samba pour utiliser le fichier hosts devrait fonctionner.

Références: https://www.samba.org/samba/docs/using_samba/ch07.html

Tiksi
la source