Мы воссоздали файловый сервер с файловой системой XFS, используя квоты проекта, находящиеся в SAN. К сожалению, мы забыли сделать резервную копию / etc / projects и / etc / projid на сервере перед переустановкой. Сама файловая система XFS и хранящаяся в ней информация о квотах - это нормально AFAICS. Есть ли способ узнать идентификаторы проектов для каталогов на диске, чтобы мы могли воссоздать / 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, которые хранятся на диске?
Ну, так как никто не знал ответа, мне пришлось кое-что придумать. Кажется, работает следующее:
Сделайте предположение (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 - ваше предположение, а правильный идентификатор проекта - MM. Исходя из этого, вы можете заполнить / etc / projects и / etc / projid для этого каталога проекта. Затем повторите для всех каталогов проекта в файловой системе (сценарий для автоматизации оставлен в качестве упражнения для читателя).