no se puede usar mount.cifs: error de montaje (2): No existe tal archivo o directorio

Pregunta:

Se encuentra que el comando mount.cifs no puede ejecutarse en un sistema gentoo con systemd

ae429-1105 etc # mount -t cifs //file.abc.edu.au/user /home/directory/path -o credentials=/etc/user,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Se ha confirmado que la existencia y accesibilidad del punto de montaje / inicio / directorio / ruta y archivo de credenciales / etc / user . También se han habilitado los módulos y servicios relevantes, es decir,

 ae429-1105 etc # lsmod |egrep 'fuse|cifs'
 fuse                   72589  5 
 cifs                  312131  0

y

ae429-1105 etc # systemctl -t service -a |grep Samba
nmbd.service                         loaded active   running Samba NetBIOS                     name server
smbd.service                         loaded active   running Samba SMB/CIFS     server
winbindd.service                     loaded inactive dead    Samba Winbind daemon

Este problema ha sido identificado por muchos usuarios, por ejemplo , un ejemplo . TAMBIÉN TENGA EN CUENTA que el mismo comando ejecutado en mi sistema Ubuntu / Debian se puede montar correctamente.

Otra información en la máquina problemática:

ae429-1105 etc # mount.cifs --version
mount.cifs version: 6.1

la versión de mount.cifs instalada en debian / ubuntu es 6.0

Respuesta:

Es posible que deba proporcionar la opción vers = al comando mount para forzar la versión 3.0 si está intentando montar un recurso compartido desde una versión más reciente de Windows. Uno de nuestros servidores de archivos se actualizó recientemente a 2012R2 y fue entonces cuando mi soporte dejó de funcionar. Establecerlo en vers = 3.0 solucionó el problema. Como la mayoría de los errores de Samba / CIFS, el mensaje "No existe tal archivo o directorio" no es de mucha ayuda.

Como ejemplo:

# mount -t cifs //win2012r2/someshare -o cred=/home/foo/.cifs_user, vers=3.0 /mnt/tmp

..donde tengo mi dominio, nombre de usuario y contraseña contenidos en el archivo .cifs_user.

Aparentemente, smbmount usa una versión más nueva del protocolo SMB por defecto, ya que funcionó sin problemas ni opciones especiales.

Observe a continuación que la versión predeterminada del protocolo es 1.0.

Desde la página de manual de mount.cifs:

vers=arg
       SMB protocol version. Allowed values are:

       · 1.0 - The classic CIFS/SMBv1 protocol.

       · 2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and Windows Server 2008. Note  that  the  initial  release
         version of Windows Vista spoke a slightly different dialect (2.000) that is not supported.

       · 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.

       · 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.

       · 3.02 or 3.0.2 - The SMBv3.0.2 protocol that was introduced in Microsoft Windows 8.1 and Windows Server 2012R2.

       · 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows 10 and Windows Server 2016.

       · 3 - The SMBv3.0 protocol version and above.

       · default - Tries to negotiate the highest SMB2+ version supported by both the client and server.

       If no dialect is specified on mount vers=default is used.  To check Dialect refer to /proc/fs/cifs/DebugData

       Note too that while this option governs the protocol version used, not all features of each version are available.

       The default since v4.13.5 is for the client and server to negotiate the highest possible version greater than or equal to 2.1. In kernels prior to v4.13,
       the default was 1.0. For kernels between v4.13 and v4.13.5 the default is 3.0.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım