重新创buildXFS项目配额信息

我们重新创build了一个文件服务器,该文件服务器有一个使用驻留在SAN上的项目配额的XFS文件系统。 不幸的是,我们忘记了在重新安装之前在服务器上备份/ etc / projects和/ etc / projid。 XFS文件系统本身和存储在其中的配额信息都是OK AFAICS。 有没有一些方法来计算磁盘上目录的项目ID,以便我们可以重新创build/ etc / {projects,projid}?

为了澄清,可以说XFS文件系统安装在/ export / xfs上,并包含目录/ export / xfs / foo和/ export / xfs / bar。 所以我们需要在/ etc / projects中有下列条目

NN:/export/xfs/foo MM:/export/xfs/bar 

以及/ etc / projid中的以下条目

 foo:NN bar:MM 

那么我们如何检索存储在磁盘上的NN和MM的值呢?

那么,因为没有人知道答案,所以我必须自己找出一些东西。 以下似乎工作:

对某个项目目录的项目ID进行猜测(NN)。 然后运行

 xfs_quota -x -c "project -c -p /export/xfs/projdir -d 0 NN" 

如果你的猜测是正确的,你应该看到输出像

 Checking project NN (path /export/xfs/projdir)... 

如果你的猜测不正确,你应该看到输出

 /export/xfs/projdir - project identifier is not set (inode=MM, tree=NN) 

NN是你的猜测,正确的项目ID是MM。 所以在此基础上,您可以填写该项目目录的/ etc / projects和/ etc / projid。 然后,重复文件系统中的所有项目目录(脚本将这个左边的内容自动化为读者的练习)。