LINUX mount.nfs: Input/output error

本文介绍了在尝试挂载NFS时遇到输入/输出错误的原因及解决方案,指出portmap服务未启动是导致问题的关键,并提供了启动portmap服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在过载nfs是遇到了一下错误:

[root@420377-gosltmdb588 ~]# mount /mysqlbackup

mount.nfs: Input/output error

Cause:

portmap进程没有启动

[root@420377-gosltmdb588 ~]# ps aux|grep portmap
root     22798  0.0  0.0  61192   784 pts/1    S+   07:19   0:00 grep portmap

Solution:

启动portmap进程

[root@420377-gosltmdb588 ~]# service portmap

Usage: /etc/init.d/portmap {start|stop|status|restart|reload|condrestart}
[root@420377-gosltmdb588 ~]# service portmap start
Starting portmap:                                          [  OK  ]
[root@420377-gosltmdb588 ~]# mount /mysqlbackup
[root@420377-gosltmdb588 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
10.99.41.250:/vol/Vol_420377_gosltmdb588_Bckup
                      2.3T  1.5T  884G  63% /mysqlbackup
[root@420377-gosltmdb588 ~]#

因为NFS及其辅助程序都是基于RPC的,所以我们要确保系统中首先运行portmap服务。
<think>我们正在解决NFS挂载时出现的“mountpointdoesnotexist”错误。这个错误意味着客户端上指定的挂载点目录不存在。根据引用[1]中的示例,用户遇到同样的错误(mount.nfs:mountpoint/tmp/nfssharedoesnotexist),解决方案是创建该目录。因此,针对当前用户的问题:mount.nfserror'mountpoint/uploaddoesnotexist',解决方案就是创建挂载点目录。步骤:1.在客户端上创建挂载点目录:`mkdir-p/upload`2.然后重新尝试挂载:`mount-tnfs10.0.0.31:/data/upload`注意:如果挂载点路径有特殊要求(比如上级目录不存在),使用`mkdir-p`可以递归创建目录。但是,如果用户的问题不仅仅是挂载点不存在,可能还包含其他因素(比如权限问题),那么创建目录后如果挂载仍然失败,则需要参考之前提供的NFS访问拒绝的排查步骤。不过,当前用户明确提出了挂载点不存在的错误,所以首要解决的就是创建目录。同时,为了确保挂载成功,我们还可以给出一个完整的示例:示例:假设我们要将NFS服务器10.0.0.31上的/data目录挂载到客户端的/upload目录:```bash#在客户端执行sudomkdir-p/uploadsudomount-tnfs10.0.0.31:/data/upload```如果挂载成功,可以通过`df-h`查看挂载情况。如果挂载失败,并出现其他错误(如accessdenied等),则按照之前提供的NFS访问拒绝的排查步骤进行。注意:创建挂载点目录需要客户端上的相应权限(通常需要root或sudo权限)。相关问题:1.如何设置NFS挂载在客户端开机自动挂载?2.如何卸载一个NFS挂载点?3.为什么NFS挂载后显示为只读(ro)状态?4.如何查看当前系统上已挂载的NFS共享?5.NFS挂载时出现“Connectionrefused”错误如何解决?注意:在回答中,我们只针对当前错误(挂载点不存在)给出解决方案,如果用户后续遇到其他问题,可以进一步排查。</think>### 解决 NFS 挂载点不存在的错误:`mount.nfs: mount point /upload does not exist` 当出现此错误时,表示客户端系统中**指定的挂载目录不存在**。以下是完整解决方案: #### 1. **创建挂载点目录** ```bash # 在客户端执行(需要sudo权限) sudo mkdir -p /upload ``` - `-p` 参数确保递归创建路径中所有缺失的目录 - 示例:引用[1]中用户通过 `mkdir /tmp/nfsshare` 解决相同问题[^1] #### 2. **验证目录权限** ```bash # 检查新目录权限 ls -ld /upload # 必要时修改权限(允许挂载) sudo chmod 755 /upload ``` #### 3. **重新尝试挂载** ```bash sudo mount -t nfs 10.0.0.31:/data /upload ``` #### 4. **验证挂载状态** ```bash # 检查挂载结果 df -hT | grep upload # 查看挂载详情 mount | grep upload ``` 预期输出示例: ```bash 10.0.0.31:/data on /upload type nfs4 (rw,relatime,...) ``` #### 5. **永久挂载配置(可选)** 编辑 `/etc/fstab` 添加: ```bash 10.0.0.31:/data /upload nfs defaults 0 0 ``` 测试配置: ```bash sudo mount -a ``` ### ⚠️ 常见错误排查 | 现象 | 解决方案 | |------|----------| | `mkdir: cannot create directory` | 使用 `sudo` 执行或检查父目录权限 | | 挂载后目录为空 | 检查 NFS 服务器端的 `/etc/exports` 配置 | | `Stale file handle` 错误 | 在服务器端执行 `exportfs -r` 刷新配置 | ### 自动创建挂载点的脚本 ```bash #!/bin/bash MOUNT_POINT="/upload" NFS_SHARE="10.0.0.31:/data" [ ! -d "$MOUNT_POINT" ] && sudo mkdir -p "$MOUNT_POINT" sudo mount -t nfs "$NFS_SHARE" "$MOUNT_POINT" echo "NFS mounted at $MOUNT_POINT" ``` > **关键提示**:在 Kubernetes 环境中部署时: > 1. 确保 Pod 配置了 `securityContext.fsGroup`[^1] > 2. 使用 initContainer 预创建挂载点: > ```yaml > initContainers: > - name: create-mountpoint > image: busybox > command: ["mkdir", "-p", "/upload"] > ``` --- ### 相关问题 1. 如何配置 NFS 服务器端的 `/etc/exports` 文件? 2. Kubernetes 中如何持久化 NFS 挂载的配置? 3. 如何诊断 NFS 挂载后的 "Permission denied" 错误? 4. 为什么 NFS 挂载后显示为只读(ro)状态? 5. 如何设置 NFS 客户端开机自动挂载? [^1]: 参考解决方案:用户通过创建挂载点目录成功解决相同错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值