Skip to content

PVE 宿主机实战:4T USB 硬盘挂载与 NFS 权限配置指南

🌱 创建: 2026/04/17 ⏱️ 更新: 2026/05/22

This content is not available in your language yet.

在 PVE 环境中,将大容量 USB 硬盘挂载至宿主机并开启 NFS 共享,是实现跨虚拟机数据共享的高效方案。但在实际操作中,磁盘识别错误会导致数据丢失,网段配置不当会导致访问受阻。本文记录了从底层格式化到权限调优的标准流程。


在执行任何格式化操作前,必须核对物理磁盘。

Terminal window
lsblk

注意: 观察磁盘容量(如 3.7T)和类型。通常系统盘为 sda,外挂盘可能为 sdbsdc。请在后续步骤中将 /dev/sdb 替换为你实际识别到的磁盘代号。一旦选错,数据将不可恢复。

对于超过 2T 的硬盘,必须使用 GPT 分区表:

Terminal window
# 使用 fdisk 工具(以 /dev/sdb 为例,请按实际修改)
fdisk /dev/sdb
# 交互指令:
# 输入 g (创建 GPT 分区表)
# 输入 n (创建新分区,起始和结束扇区均按回车保持默认)
# 输入 w (写入并退出)
# 格式化分区为 ext4
mkfs.ext4 /dev/sdb1

使用 UUID 挂载可以防止 USB 插拔后驱动器路径改变。

Terminal window
# 获取 UUID
blkid /dev/sdb1
# 记录 UUID="xxxxxxxx-xxxx-..." 部分
# 创建挂载点
mkdir -p /mnt/nfs
# 修改系统挂载表
nano /etc/fstab
# 在末尾添加(替换为你实际的 UUID):
UUID=你的UUID /mnt/nfs ext4 defaults 0 2
# 生效挂载
mount -a

二、 NFS 服务安装与核心权限配置

Section titled “二、 NFS 服务安装与核心权限配置”
Terminal window
apt update && apt install -y nfs-kernel-server

编辑配置文件:nano /etc/exports,添加如下配置:

/mnt/nfs 10.0.0.0/16(rw,sync,no_subtree_check,no_root_squash,insecure)
  1. 网段地址 (10.0.0.0/16)必须按实际修改。这里的地址定义了谁能访问此共享。
    • 如果你的 IP 是 192.168.1.x,请填入 192.168.1.0/24
    • 使用 /16 掩码(如 10.0.0.0/16)可以覆盖 10.0.x.x 范围内的所有 IP,适合多子网环境。
  2. insecure (关键): 默认 NFS 要求客户端使用 1024 以下端口,而 Kubernetes/K3s 等容器化平台挂载时常使用高位随机端口。不加此参数会导致 Access Denied
  3. no_root_squash: 允许客户端以 root 权限写入,这对于需要持久化存储的应用(如数据库、媒体库)至关重要。

修改配置后必须手动刷新导出表:

Terminal window
# 强制重新导出所有路径
exportfs -ra
# 查看当前生效的完整配置
exportfs -v

验收标准:exportfs -v 的输出中,确认包含了你设置的路径和网段,并且权限列表中出现了 insecure


  • 磁盘休眠:部分 USB 硬盘盒会自动进入休眠,可能导致 Pod 首次挂载超时。
  • 网络防火墙:若挂载失败,请检查 PVE 节点是否开启了数据中心防火墙,确保 2049 端口已对目标网段放行。

Last updated: