Я думаю, что проблема здесь в том, что вы, похоже, думаете, что метка тома - это вещь ядра, равно как размер или свободное пространство.
Но AFAIK это не так, ядро не Не заботьтесь о метках томов, это просто вещь, которая переходит от формата на диске к земле пользователя: не существует API ядра для получения этой информации. Если вам это нужно, вы просто открываете необработанный двоичный том и читаете данные оттуда.
Но тогда есть большая проблема, что каждая файловая система отличается, поэтому вам нужен специальный код для управления каждым типом раздела Там есть. К счастью, кто-то проделал тяжелую работу, и у вас есть blkid
, часть util-linux
, доступная в большинстве Linux дистрибутивов. Если вам это нужно, вы можете вызвать программу напрямую или связаться с библиотекой libblkid
, которая выполняет тяжелую работу.
Естественно, для использования blkid
/ libblkid
вы нужен доступ на чтение к блочному устройству, то есть root доступ. Если вы считаете, что для чтения метки не требуется доступ root, люди из udev
думают так же, и поэтому существует правило udev, которое копирует метку при первом обнаружении файловой системы (работает * 1015). * конечно). Это ID_FS_LABEL_ENC
, о котором вы уже знаете.