如何检查 Linux 中 NFS 共享是否已挂载

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何验证 NFS(网络文件系统)共享是否已成功挂载到你的 Linux 系统上。你将探索三种常用的方法来实现这一目标。

首先,你将使用 mount 命令列出所有当前已挂载的文件系统,并识别其中的 NFS 条目。接下来,你将检查 /etc/fstab 文件,以查看是否存在持久的 NFS 挂载配置。最后,你将使用 showmount -e 命令来验证 NFS 服务器及其导出的目录。通过完成这些步骤,你将掌握在 Linux 上诊断 NFS 挂载状态的实用技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/mount("File System Mounting") subgraph Lab Skills linux/cat -.-> lab-558784{{"如何检查 Linux 中 NFS 共享是否已挂载"}} linux/cd -.-> lab-558784{{"如何检查 Linux 中 NFS 共享是否已挂载"}} linux/mount -.-> lab-558784{{"如何检查 Linux 中 NFS 共享是否已挂载"}} end

使用 mount 命令列出 NFS 挂载

在这一步中,你将学习如何使用 mount 命令识别 Linux 系统上的网络文件系统(Network File System,NFS)挂载。NFS 允许系统通过网络与其他系统共享目录和文件。

mount 命令用于将文件系统挂载到文件系统层次结构中的特定挂载点。当不带任何参数使用时,它会显示所有当前已挂载的文件系统列表,包括 NFS 挂载。

打开你的终端。你可能已经位于 ~/project 目录中。

输入以下命令并按回车键:

mount

此命令将输出大量关于系统当前已挂载的所有文件系统的信息。查找包含 type nfs 或提及远程服务器路径后接本地挂载点的行。

例如,你可能会看到类似于以下的输出(确切的输出会因系统配置而异):

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=999999k,nr_inodes=999999,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=999999k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,size=999999k,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
...
192.168.1.100:/shared_nfs on /mnt/nfs_share type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.200,local_lock=none,addr=192.168.1.100)
...

在上述示例输出中,以 192.168.1.100:/shared_nfs 开头的行表示一个 NFS 挂载。

  • 192.168.1.100:/shared_nfs 是远程 NFS 服务器及其上的共享目录。
  • /mnt/nfs_share 是你系统上的本地挂载点,通过该挂载点可以访问远程目录。
  • type nfs4 确认这是一个 NFS 版本 4 的挂载。

通过检查 mount 命令的输出,你可以确定系统上当前是否挂载了任何 NFS 共享以及它们的挂载位置。

点击 继续 以继续操作。

检查 /etc/fstab 中的 NFS 配置

在上一步中,你学习了如何使用 mount 命令查看当前已挂载的文件系统。然而,mount 命令仅显示“当前”已挂载的内容。若要查看那些配置为在系统启动时自动挂载的文件系统,你需要检查 /etc/fstab 文件。

/etc/fstab 文件(文件系统表)是一个配置文件,其中包含了各种文件系统的信息以及它们的挂载方式。这包括本地文件系统、交换分区以及像 NFS 这样的网络文件系统。

你可以使用 catless 等命令行文本查看器,或者 nano 等文本编辑器来查看该文件的内容。下面我们使用 cat 命令直接在终端中显示文件内容。

确保你位于 ~/project 目录中。

输入以下命令并按回车键:

cat /etc/fstab

该命令会将 /etc/fstab 文件的全部内容打印到你的终端上。

你会看到描述不同文件系统的行。每行通常遵循特定的格式:

<文件系统> <挂载点> <类型> <选项> <转储> <检查顺序>

查找 <类型> 字段为 nfsnfs4 的行。这些行表示配置为自动挂载的 NFS 共享。

例如,配置 NFS 挂载的一行可能如下所示:

192.168.1.100:/shared_nfs /mnt/nfs_share nfs defaults 0 0
  • 192.168.1.100:/shared_nfs:远程 NFS 服务器和共享目录。
  • /mnt/nfs_share:本地挂载点。
  • nfs:文件系统类型(NFS)。
  • defaults:标准挂载选项(如 rwsuiddevexecautonouserasync)。
  • 0dump 选项(NFS 通常为 0)。
  • 0pass 选项(NFS 通常为 0,表示启动时不进行文件系统检查)。

通过检查 /etc/fstab,你可以确定哪些 NFS 共享被配置为自动挂载,即使它们当前并未挂载。

点击 继续 进入下一步。

使用 showmount -e 验证 NFS 服务器

在前面的步骤中,你学习了如何使用 mount 命令识别当前已挂载的 NFS 共享,以及如何检查 /etc/fstab 中自动配置的 NFS 挂载。现在,让我们来验证 NFS 服务器正在导出(可供客户端挂载)哪些目录。

showmount 命令是一个客户端工具,它会向远程主机上的挂载守护进程发起查询,以显示该主机导出的 NFS 共享。-e 选项指示 showmount 显示主机的导出列表。

要使用 showmount,你需要指定 NFS 服务器的主机名或 IP 地址。在这个实验中,我们假设 IP 地址为 192.168.1.100 的 NFS 服务器可用。

确保你位于 ~/project 目录中。

输入以下命令,将 192.168.1.100 替换为你要检查的 NFS 服务器的实际 IP 地址或主机名,然后按回车键:

showmount -e 192.168.1.100

如果命令执行成功且服务器正在导出共享,你将看到类似以下的输出:

Export list for 192.168.1.100:
/shared_nfs *
/another_share 192.168.1.0/24
  • 第一列列出了 NFS 服务器正在导出的目录。
  • 第二列表示哪些客户端被允许挂载该目录。* 表示任何客户端都可以挂载。IP 地址或网络范围(如 192.168.1.0/24)则将访问权限限制为特定的客户端。

如果命令执行失败或没有输出,可能意味着:

  • NFS 服务器未运行或无法访问。
  • 服务器没有导出任何共享。
  • 防火墙阻止了连接。

使用 showmount -e 是排查 NFS 客户端问题的关键步骤,因为它可以确认服务器是否已正确配置为导出所需的目录。

点击 继续 完成此实验。

总结

在这个实验中,你学习了如何检查 Linux 中 NFS 共享是否已挂载。你首先使用 mount 命令列出所有当前已挂载的文件系统,并识别出类型为 nfs 的条目。

你还了解了如何检查 /etc/fstab 文件,以查看 NFS 共享是否配置为在系统启动时自动挂载。最后,你学习了如何使用 showmount -e 命令来验证 NFS 服务器,并列出它正在导出的目录。