在 Linux 下获取 fsid?或者识别文件系统的另一种方法?

在 Linux 下获取 fsid?或者识别文件系统的另一种方法?

在具有自动挂载主目录的环境中,文件服务器导出的同一文件系统可能会在客户端上挂载多次,我希望能够权威地识别两个挂载点是否实际上是同一个文件系统。也就是说,如果远程服务器导出:

/home

本地客户端有:

# mount
fileserver:/home/l/lars on /home/lars type nfs (rw...)
fileserver:/home/b/bob on /home/bob type nfs (rw...)

我正在寻找一种方法来识别/home/lars/home/bob实际上是同一个文件系统。理论上,这fsid就是状态文件系统结构是,但在所有情况下,对于本地和远程文件系统,我发现这个结构成员的值是 0。

这是某种客户端问题吗?还是大多数现代 NFS 服务器根本就拒绝提供有用的信息fsid

所有这些的最终目标是可靠地解释quotaNFS 文件系统命令的输出。例如,给出上面的例子,quota以我自己的身份运行可能会返回类似以下内容:

Disk quotas for user lars (uid 6580): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
otherserver:/vol/home0/a/alice
                     12  52428800 52428800               4  4294967295 4294967295        
fileserver:/home/l/lars
                9353032  9728000 10240000          124018       0       0        

...这里的问题是,otherserver 上存在我的配额,该配额在命令结果中可见quota,尽管我的主目录实际上位于不同的设备上。我的计划是查找输出fsid中列出的每个挂载点 quota,并检查它是否fsid与我的主目录关联的相匹配。

看起来这行不通,所以...有什么建议吗?

答案1

您可以使用该mountpoint命令。该-d开关将挂载点的主/次设备号打印到标准输出。

mountpoint -d /home/lars在您的情况下,将的输出与 进行比较mountpoint -d /home/bob

[root@Fruity ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.9G  2.5G  7.0G  26% /
/dev/sda1              97M   43M   50M  47% /boot
/dev/sda7             2.0G   68M  1.9G   4% /tmp
/dev/sda3             9.9G  2.8G  6.6G  30% /usr
/dev/sda6             6.0G  1.1G  4.6G  19% /var
/dev/sdb1             400G  263G  138G  66% /data
/dev/sdc1             150G  122G   29G  82% /images
nfs001:/data/chain    36G  1.2G   35G   4% /data/chain
nfs001:/data/src      36G  1.2G   35G   4% /data/src


[root@Fruity ~]# mountpoint -d /data/chain/
0:19

[root@Fruity ~]# mountpoint -d /data/src/
0:19

[root@Fruity ~]# mountpoint -d /data/
8:17

相关内容