随机
Enter 搜索 ↑↓ 切换 Esc 清空

nfs_mount

命令

挂载 NFS 共享目录到本地

nfs_mount

挂载 NFS 共享目录到本地

补充说明

nfs_mount 指通过 mount -t nfs 将远程 NFS 服务端的共享目录挂载到本地。NFS 是 Linux 原生支持的分布式文件系统,挂载后如同操作本地目录,适用于跨 Linux 主机的文件共享场景。

安装

安装 NFS 客户端

# Debian / Ubuntu
sudo apt-get update && sudo apt-get install nfs-common

# RHEL / CentOS / Rocky / AlmaLinux
sudo yum install nfs-utils

# Fedora
sudo dnf install nfs-utils

# openSUSE
sudo zypper install nfs-client

# Arch Linux
sudo pacman -S nfs-utils

查看远程共享

挂载前先查看 NFS 服务器上可用的共享目录:

showmount -e <服务器IP>

示例:

showmount -e 10.10.10.251

输出示例:

Export list for 10.10.10.251:
/fs/1000/nfs *

手动挂载

1. 创建挂载目录:

sudo mkdir -pm 755 /mnt/nfs_share

2. 挂载 NFS 共享:

sudo mount -t nfs -o rw <服务器IP>:/<共享路径> /mnt/nfs_share

示例:

sudo mount -t nfs -o rw 10.10.10.251:/fs/1000/nfs /mnt/nfs_share

3. 验证挂载:

df -hT | grep nfs
ls /mnt/nfs_share

挂载选项

选项 说明
rw 读写挂载
ro 只读挂载
hard 服务端无响应时持续重试(默认,避免数据丢失)
soft 超时后返回错误,不持续重试
intr 允许中断挂起的 NFS 请求
timeo=<秒> 请求超时时间(默认 0.7 秒)
retrans=<次数> 最大重试次数(默认 3 次)
vers=<版本> 指定 NFS 协议版本:4.2、4.1、4、3
noatime 不更新文件访问时间,提升性能

卸载

sudo umount /mnt/nfs_share

开机自动挂载

方法一:通过 /etc/fstab 挂载

# 备份 fstab
sudo cp /etc/fstab /etc/fstab.bak

# 追加挂载条目
echo '<服务器IP>:/<共享路径> /mnt/nfs_share nfs nofail,x-systemd.device-timeout=15s 0 0' | sudo tee -a /etc/fstab

参数说明:

参数 说明
nofail 挂载失败不阻塞系统启动
x-systemd.device-timeout=15s 网络设备超时时间,避免启动时长时间等待

示例:

10.10.10.251:/fs/1000/nfs /mnt/nfs_share nfs nofail,x-systemd.device-timeout=15s 0 0

测试 fstab 挂载:

sudo mount -a
df -hT | grep nfs

方法二:使用 systemd 服务自启

1. 创建挂载脚本:

sudo tee /root/nfs-mount.sh <<'EOF'
#!/bin/bash
SERVER="<服务器IP>"
SHARE="<共享路径>"
MOUNT="/mnt/nfs_share"

mkdir -p "$MOUNT"
mount -t nfs -o rw "$SERVER:$SHARE" "$MOUNT" && \
  logger -t nfs-mount "挂载成功 $SERVER:$SHARE → $MOUNT" || \
  logger -t nfs-mount "挂载失败 $SERVER:$SHARE"
EOF

sudo chmod +x /root/nfs-mount.sh

2. 创建 systemd 服务:

sudo tee /etc/systemd/system/nfs-mount.service <<'EOF'
[Unit]
Description=NFS Share Mount
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/root/nfs-mount.sh
User=root
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

3. 启用服务:

sudo systemctl daemon-reload
sudo systemctl enable --now nfs-mount.service
sudo systemctl status nfs-mount.service

常见问题

挂载超时

# 确认 NFS 服务器可达
ping <服务器IP>

# 确认共享列表可查看
showmount -e <服务器IP>

# 手动指定版本重试
sudo mount -t nfs -o vers=4.2 <服务器IP>:/<共享路径> /mnt/nfs_share

权限拒绝

# 确保服务端 exports 中使用了 no_root_squash 或正确映射了用户
# 查看服务端配置

防火墙阻挡

NFS 需要放行以下端口: