cifs_mount 失败并返回代码 -111 表示什么?

11

命令:

sudo mount -t cifs //<server>/<share> -o username=user@domain,password=**** /mnt/<mountpoint>

错误信息:

无法找到合适的地址。

Syslog显示:

CIFS VFS: 连接套接字出错,操作终止。 CIFS VFS:cifs_mount失败,返回代码为-111

当我查看通过man mount获得的挂载文档时,我看到了以下关于错误代码的信息:

   RETURN CODES
   mount has the following return codes (the bits can be ORed):

   0      success
   1      incorrect invocation or permissions
   2      system error (out of memory, cannot fork, no more loop devices)
   4      internal mount bug
   8      user interrupt
   16     problems writing or locking /etc/mtab
   32     mount failure
   64     some mount succeeded

那么,-111是否与1表示相同的意思?如果是这样,如何诊断是权限问题还是命令不正确?

对我来说,这基本上意味着“连接被拒绝” - 我没有在我的NAS上启用SMB服务。 - mwfearnley
3个回答

8
111 = 64+32+8+4+2+1

这意味着告诉你除了16之外,你遇到了每个错误。

在我的Ubuntu 14.04上,我必须添加-o sec=ntlmv2否则它总是会给我111错误,但我在我的Ubuntu 15.04上不需要该选项。这不会让人感到困惑吗?


1
谢谢!我之前遇到过这个问题,但已经不记得具体原因了。由于你解释了错误消息的计算方式,而且我也无法再次复现此问题,所以我接受这个答案。 - Adam Kalnas
实际上,使用有符号int8,-111是10010001,所以我猜它表示1、16和一个未记录的128。 - Wolfram
选项默认值来自于smb.conf,所以这些系统上可能有不同的配置? - Daniel

2
这意味着“连接被拒绝”。要查看完整的错误列表,请检查内核源代码中的errno.h。以下是部分列出的错误,供您快速参考:(注意减号将由调用者添加):
#define▸EL2HLT▸ ▸   51▸ /* Level 2 halted */
#define▸EBADE▸  ▸   52▸ /* Invalid exchange */
#define▸EBADR▸  ▸   53▸ /* Invalid request descriptor */
#define▸EXFULL▸ ▸   54▸ /* Exchange full */
#define▸ENOANO▸ ▸   55▸ /* No anode */
#define▸EBADRQC▸▸   56▸ /* Invalid request code */
#define▸EBADSLT▸▸   57▸ /* Invalid slot */

#define▸EDEADLOCK▸  EDEADLK

#define▸EBFONT▸ ▸   59▸ /* Bad font file format */
#define▸ENOSTR▸ ▸   60▸ /* Device not a stream */
#define▸ENODATA▸▸   61▸ /* No data available */
#define▸ETIME▸  ▸   62▸ /* Timer expired */
#define▸ENOSR▸  ▸   63▸ /* Out of streams resources */
#define▸ENONET▸ ▸   64▸ /* Machine is not on the network */
#define▸ENOPKG▸ ▸   65▸ /* Package not installed */
#define▸EREMOTE▸▸   66▸ /* Object is remote */
#define▸ENOLINK▸▸   67▸ /* Link has been severed */
#define▸EADV▸   ▸   68▸ /* Advertise error */
#define▸ESRMNT▸ ▸   69▸ /* Srmount error */
#define▸ECOMM▸  ▸   70▸ /* Communication error on send */
#define▸EPROTO▸ ▸   71▸ /* Protocol error */
#define▸EMULTIHOP▸  72▸ /* Multihop attempted */
#define▸EDOTDOT▸▸   73▸ /* RFS specific error */
#define▸EBADMSG▸▸   74▸ /* Not a data message */
#define▸EOVERFLOW▸  75▸ /* Value too large for defined data type */
#define▸ENOTUNIQ▸   76▸ /* Name not unique on network */
#define▸EBADFD▸ ▸   77▸ /* File descriptor in bad state */
#define▸EREMCHG▸▸   78▸ /* Remote address changed */
#define▸ELIBACC▸▸   79▸ /* Can not access a needed shared library */
#define▸ELIBBAD▸▸   80▸ /* Accessing a corrupted shared library */
#define▸ELIBSCN▸▸   81▸ /* .lib section in a.out corrupted */
#define▸ELIBMAX▸▸   82▸ /* Attempting to link in too many shared libraries */
#define▸ELIBEXEC▸   83▸ /* Cannot exec a shared library directly */
#define▸EILSEQ▸ ▸   84▸ /* Illegal byte sequence */
#define▸ERESTART▸   85▸ /* Interrupted system call should be restarted */
#define▸ESTRPIPE▸   86▸ /* Streams pipe error */
#define▸EUSERS▸ ▸   87▸ /* Too many users */
#define▸ENOTSOCK▸   88▸ /* Socket operation on non-socket */
#define▸EDESTADDRREQ▸   89▸ /* Destination address required */
#define▸EMSGSIZE▸   90▸ /* Message too long */
#define▸EPROTOTYPE▸ 91▸ /* Protocol wrong type for socket */
#define▸ENOPROTOOPT▸92▸ /* Protocol not available */
#define▸EPROTONOSUPPORT▸93▸ /* Protocol not supported */
#define▸ESOCKTNOSUPPORT▸94▸ /* Socket type not supported */
#define▸EOPNOTSUPP▸ 95▸ /* Operation not supported on transport endpoint */
#define▸EPFNOSUPPORT▸   96▸ /* Protocol family not supported */
#define▸EAFNOSUPPORT▸   97▸ /* Address family not supported by protocol */
#define▸EADDRINUSE▸ 98▸ /* Address already in use */
#define▸EADDRNOTAVAIL▸  99▸ /* Cannot assign requested address */
#define▸ENETDOWN▸   100▸/* Network is down */
#define▸ENETUNREACH▸101▸/* Network is unreachable */
#define▸ENETRESET▸  102▸/* Network dropped connection because of reset */
#define▸ECONNABORTED▸   103▸/* Software caused connection abort */
#define▸ECONNRESET▸ 104▸/* Connection reset by peer */
#define▸ENOBUFS▸▸   105▸/* No buffer space available */
#define▸EISCONN▸▸   106▸/* Transport endpoint is already connected */
#define▸ENOTCONN▸   107▸/* Transport endpoint is not connected */
#define▸ESHUTDOWN▸  108▸/* Cannot send after transport endpoint shutdown */
#define▸ETOOMANYREFS▸   109▸/* Too many references: cannot splice */
#define▸ETIMEDOUT▸  110▸/* Connection timed out */
#define▸ECONNREFUSED▸   111▸/* Connection refused */
#define▸EHOSTDOWN▸  112▸/* Host is down */
#define▸EHOSTUNREACH▸   113▸/* No route to host */
#define▸EALREADY▸   114▸/* Operation already in progress */
#define▸EINPROGRESS▸115▸/* Operation now in progress */
#define▸ESTALE▸ ▸   116▸/* Stale file handle */
#define▸EUCLEAN▸▸   117▸/* Structure needs cleaning */
#define▸ENOTNAM▸▸   118▸/* Not a XENIX named type file */
#define▸ENAVAIL▸▸   119▸/* No XENIX semaphores available */
#define▸EISNAM▸ ▸   120▸/* Is a named type file */
#define▸EREMOTEIO▸  121▸/* Remote I/O error */
#define▸EDQUOT▸ ▸   122▸/* Quota exceeded */

#define▸ENOMEDIUM▸  123▸/* No medium found */
#define▸EMEDIUMTYPE▸124▸/* Wrong medium type */
#define▸ECANCELED▸  125▸/* Operation Canceled */
#define▸ENOKEY▸ ▸   126▸/* Required key not available */
#define▸EKEYEXPIRED▸127▸/* Key has expired */
#define▸EKEYREVOKED▸128▸/* Key has been revoked */
#define▸EKEYREJECTED▸   129▸/* Key was rejected by service */

/* for robust mutexes */
#define▸EOWNERDEAD▸ 130▸/* Owner died */
#define▸ENOTRECOVERABLE▸131▸/* State not recoverable */

#define ERFKILL▸▸   132▸/* Operation not possible due to RF-kill */

#define EHWPOISON▸  133▸/* Memory page has hardware error */


1

我最近在 Fedora 27 上遇到了这个错误。

将选项 vers=1.0 更改为 vers=2.0 (-o defaults,vers=2.0,rsize=...) 解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接