挂载nfs或者cifs目录可能出现的错误

mount: /mnt/yww_nfs_old: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.

这个错误信息表示系统在尝试挂载 NFS 共享时遇到了问题,因为它找不到正确的挂载助手(helper program)来处理 NFS 类型的挂载。在大多数情况下,NFS 相关的工具和库(包括挂载助手)都应该已经安装在系统中了。

不过,有几个步骤你可以尝试来解决这个问题:

  1. 安装 NFS 客户端
    如果你的系统中还没有安装 NFS 客户端,你需要先安装它。在基于 Debian 或 Ubuntu 的系统上,你可以使用 apt 来安装:

    sudo apt update
    sudo apt install nfs-common

    在基于 Red Hat 或 CentOS 的系统上,你可以使用 yum 或 dnf

    sudo yum install nfs-utils
    # 或者
    sudo dnf install nfs-utils
  2. 检查 NFS 客户端是否安装正确
    安装完成后,确保 /sbin/mount.nfs 文件存在。你可以使用 ls 命令来检查:

    ls -l /sbin/mount.nfs

    如果文件不存在,那么 NFS 客户端可能没有正确安装。

  3. 检查 NFS 服务
    确保你尝试挂载的 NFS 服务器(在这个例子中是 172.26.134.15)正在运行,并且 NFS 共享已经正确导出。

  4. 检查防火墙和网络设置
    确保你的服务器和 NFS 客户端之间的网络是通畅的,并且防火墙设置没有阻止 NFS 相关的端口(通常是 111 和 2049)。

  5. 检查 /etc/fstab
    虽然你是在命令行中手动挂载,但是检查 /etc/fstab 文件中的语法和配置也是一个好习惯,确保没有语法错误或配置问题。

  6. 查看日志
    查看系统日志(如 /var/log/syslog/var/log/messages 或使用 journalctl 命令)可能会提供有关挂载失败的更多信息。

mount.nfs: access denied by server while mounting 172.26.134.16:/yww_nfs_ssd

这个错误消息表明 NFS 服务器拒绝了你的挂载请求。这通常是由以下几个原因引起的:

  1. NFS 导出配置
    NFS 服务器上的 /etc/exports 文件定义了哪些目录可以被哪些客户端挂载。你需要检查这个文件,确保 172.26.134.16:/yww_nfs_ssd 已经被正确导出,并且你的客户端 IP 地址或网络段被允许访问。

     

    例如,/etc/exports 文件中可能有一行类似于:

    /path/to/yww_nfs_ssd 172.26.0.0/16(rw,sync,no_root_squash)

    这里的 172.26.0.0/16 是一个示例网络段,你需要确保你的客户端 IP 地址在这个网络段内,或者 /etc/exports 中直接指定了你的客户端 IP 地址。

  2. NFS 服务未运行
    确保 NFS 服务器上的 NFS 服务正在运行。你可以使用如下命令来检查 NFS 服务状态(具体命令取决于你的 Linux 发行版):

    sudo systemctl status nfs-server # 对于使用systemd的系统
    sudo service nfs-server status # 对于使用SysVinit的系统
  3. 防火墙/安全组
    即使 NFS 服务器上的 /etc/exports 文件配置正确,并且 NFS 服务正在运行,防火墙或安全组规则也可能阻止了你的挂载请求。你需要检查 NFS 服务器上的防火墙设置,确保 NFS 相关的端口(通常是 111, 2049, 以及一些其他端口用于挂载和 RPC 绑定)是开放的。

  4. NFS 版本问题
    尽管你已经指定了 -o vers=3,但也要确保 NFS 服务器支持版本 3。如果服务器只支持其他版本(如版本 4),那么你需要修改挂载命令以匹配服务器的版本。

  5. NFS 客户端配置
    在极少数情况下,NFS 客户端的配置问题也可能导致这个错误。但通常,只要 NFS 客户端软件包正确安装,就不太可能是这个问题。

  6. 重启 NFS 服务
    如果以上都没有问题,尝试重启 NFS 服务可能会解决问题。使用如下命令(取决于你的 Linux 发行版):

    sudo systemctl restart nfs-server # 对于使用systemd的系统
    sudo service nfs-server restart # 对于使用SysVinit的系统

    然后再次尝试挂载。

  7. 查看服务器日志
    查看 NFS 服务器的日志可能会提供更多关于为何拒绝挂载请求的信息。这通常可以在 /var/log/syslog/var/log/messages 或其他相关的日志文件中找到。

  8. NFS 客户端测试
    如果可能的话,从另一台机器尝试挂载相同的 NFS 共享,以排除是客户端还是服务器的问题。

要查看挂载的机器(客户端)是否有权限访问NFS服务器上的共享目录
  1. 检查NFS服务器的/etc/exports文件
    首先,你需要登录到NFS服务器上,并检查/etc/exports文件的内容。这个文件定义了哪些目录可以被哪些客户端挂载,以及它们拥有的权限。

     

    使用cat命令查看/etc/exports文件:

    sudo cat /etc/exports

    在输出中,你应该能找到类似于这样的行(根据你NFS共享的具体配置可能有所不同):

    /path/to/yww_nfs_ssd 172.26.134.15(rw,sync,no_root_squash)

    或者是一个网络段,比如:

    /path/to/yww_nfs_ssd 172.26.0.0/16(rw,sync,no_root_squash)

    确保你的客户端IP地址在这个范围内,或者明确指定了你的客户端IP地址。

  2. 检查NFS服务是否正在运行
    在NFS服务器上,确保NFS服务正在运行。你可以使用systemctlservice命令来检查NFS服务的状态。

     

    对于使用systemd的系统:

    sudo systemctl status nfs-server

    对于使用SysVinit的系统:

    sudo service nfs-server status
  3. 检查防火墙/安全组规则
    确保NFS服务器的防火墙或安全组规则允许来自你的客户端IP地址的NFS相关端口的流量。这通常包括RPC绑定端口(通常是111)以及NFS本身的端口(通常是111, 2049等)。

  4. 检查NFS客户端的/var/log/syslog/var/log/messages
    在NFS客户端上,查看系统日志可能会提供有关为何挂载请求被拒绝的信息。你可以使用grep命令来过滤NFS相关的日志条目。

    grep nfs /var/log/syslog
    # 或者
    grep nfs /var/log/messages
  5. 使用showmount命令检查
    在NFS客户端上,你可以使用showmount命令来查看NFS服务器上导出的共享目录列表,以及哪些客户端可以访问它们。但是,请注意,showmount命令可能需要在NFS客户端上安装额外的软件包(如nfs-common)。

    showmount -e 172.26.134.15

    这个命令将列出NFS服务器上所有导出的共享目录以及它们的访问权限。

  6. 使用mount命令的详细输出
    当你尝试挂载NFS共享时,使用mount命令的详细输出模式(加上-v选项)可能会提供更多关于为何挂载失败的信息。

    mount -t nfs -o vers=3,nolock -v 172.26.134.15:/yww_nfs_ssd /mnt/yww_nfs_old
  7. 检查NFS客户端的NFS版本
    确保NFS客户端支持你在/etc/exports文件中指定的NFS版本。你可以使用nfsstat命令来查看NFS客户端的版本信息(如果已安装)。

    nfsstat -m

mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg) 

遇到的 mount error(22): Invalid argument 错误通常意味着在挂载CIFS(Common Internet File System,也被称为SMB共享)时,您提供的一个或多个参数是无效的或不正确的。

在您的命令中,您使用了 -o 选项来指定挂载选项,但是有几个地方可能需要检查或修改:

  1. 版本(vers):CIFS协议有多个版本,通常现代的系统和服务器支持vers=3.0vers=2.1vers=1.0可能太旧了,不被支持。请尝试使用更高的版本。

  2. 安全性(sec)sec=ntlm 指定了使用NTLM安全协议。如果您的服务器支持NTLMv2或Kerberos(如果您配置了Kerberos),您可能想尝试这些选项。

  3. 用户名和密码:确保您提供的用户名和密码是正确的,并且没有包含任何特殊字符或格式错误。

  4. 共享名称:确保您提供的共享名称(在本例中是nyww_ssd_ztdata)是正确的,并且该共享在服务器上确实存在。

  5. 路径:确保本地挂载点(在本例中是/ztdata)存在,并且您有权限在那里创建挂载点。

以下是一个修改后的命令示例,您可能想要尝试:

mount -t cifs -o username=xxx,password=xxx,vers=3.0,sec=ntlmv2 //172.26.134.16/nyww_ssd_ztdata /ztdata

或者,如果您知道服务器支持NTLMv2:

mount -t cifs -o username=xxx,password=xxx,vers=3.0,sec=ntlmv2 //172.26.134.16/nyww_ssd_ztdata /ztdata

如果上述方法仍然不起作用,请按照错误消息中的建议检查mount.cifs(8)手册页(使用man mount.cifs命令)和内核日志消息(使用dmesg命令)。内核日志可能会提供更多关于为什么挂载失败的详细信息。

另外,请注意,在脚本或命令行中直接提供密码可能不是最佳的安全实践。考虑使用凭据文件或密钥环来存储和检索密码。

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨会停rain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值