LIBBLKID(3) Podręcznik programisty LIBBLKID(3)

libblkid - biblioteka identyfikacji urządzeń blokowych

#include <blkid.h>

cc file.c -lblkid

Biblioteka libblkid służy do identyfikacji urządzeń blokowych (dysków) w zakresie zawartości (np. typu systemu plików) oraz pozyskiwania dodatkowych informacji, takich jak etykiety systemu plików/nazwy woluminów, unikalne identyfikatory/numery seryjne. Częstym zastosowaniem jest możliwość użycia znaczników LABEL= i UUID= zamiast ustawionych na sztywno nazw urządzeń blokowych w plikach konfiguracyjnych. W rozdziale ZNACZNIKI znajduje się lista wszystkich dostępnych znaczników.

Niskopoziomowa część biblioteki pozwala również pozyskiwać informacje o topologii urządzeń blokowych i partycji.

Wysokopoziomowa część biblioteki buforuje informacje o urządzeniach blokowych w pliku podręcznym i weryfikuje, czy są one wciąż prawidłowe, przed zwróceniem ich użytkownikowi (jeśli użytkownik ma uprawnienia do odczytu surowego urządzenia blokowego, w innym przypadku tak się nie dzieje). Plik podręczny pozwala również zlokalizować urządzenia na podstawie etykiety/identyfikatora użytkownikom nieuprzywilejowanym (zwykle innym niż root, lub nieujętych w grupie "disk"). Standardowe położenie pliku podręcznego można przesłonić zmienną środowiskową BLKID_FILE.

W sytuacjach, gdy uzyskuje się informacje o pojedynczym, znanym urządzeniu, na wydajność nie ma wpływu to, czy plik podręczny jest używany czy nie (chyba, że nie można bezpośrednio odczytać urządzenia blokowego).

Wysokopoziomowa część biblioteki obsługuje dwie metody sprawdzenia LABEL/UUID. Odczytuje informacje bezpośrednio z urządzenia blokowego lub odczytuje informacje z dowiązań symbolicznych udev w /dev/disk/by-*. Domyślnie preferowana jest metoda udev.

Jeśli bada się wiele urządzeń, bardzo zalecane jest korzystanie z pliku podręcznego (nawet jeśli jest pusty), ponieważ urządzenia zostaną przeskanowane co najwyżej jednokrotnie i plik podręczny zostanie zaktualizowany, jeśli to możliwe.

W niektórych sytuacjach (jądra modularne), urządzenia blokowane nie są nawet widoczne do momentu uzyskania dostępu po raz pierwszy, więc istnienie metody na zlokalizowanie tych urządzeń bez wymieniania jedynie widocznych urządzeń jest krytyczne, zatem użycie pliku podręcznego w takich sytuacjach jest wymagane.

Standardowe położenie pliku konfiguracyjnego /etc/blkid.conf można przesłonić zmienną środowiskową BLKID_CONF. Więcej informacji na temat pliku konfiguracyjnego można znaleźć w podręczniku blkid(8).

Wszystkie dostępne znaczniki wypisano poniżej. Nie wszystkie są obsługiwane we wszystkich systemach plików. Aby włączyć znacznik, należy ustawić jeden z poniższych znaczników za pomocą blkid_probe_set_superblocks_flags():

BLKID_SUBLKS_TYPE

•TYPE - typ systemu plików

BLKID_SUBLKS_SECTYPE

•SEC_TYPE - drugorzędny typ systemu plików

BLKID_SUBLKS_LABEL

•LABEL - etykieta systemu plików

BLKID_SUBLKS_LABELRAW

•LABEL_RAW - surowa etykieta z superbloku syst. pl.

BLKID_SUBLKS_UUID

•UUID - UUID systemu plików (małe litery)
•UUID_SUB - UUID członka puli lub UUID elementu urządzenia itp. (np. zfs, btrfs, ...)
•LOGUUID - UUID zewnętrznego dziennika (np. xfs)

BLKID_SUBLKS_UUIDRAW

•UUID_RAW - surowy UUID z superbloku syst. pl.

BLKID_SUBLKS_USAGE

•USAGE - łańcuch opisujący użycie: "raid", "filesystem", itp.

BLKID_SUBLKS_VERSION

•VERSION - wersja systemu plików

BLKID_SUBLKS_MAGIC

•SBMAGIC - łańcuch magiczny superbloku
•SBMAGIC_OFFSET - przesunięcie SBMAGIC

BLKID_SUBLKS_FSINFO

•FSSIZE - rozmiar systemu plików. Proszę zauważyć, że w przypadku XFS zwrócona będzie ta sama wartość co przez lsblk (bez metadanych XFS), natomiast w przypadku ext4 zwrócony będzie rozmiar z metadanymi, a w przypadku BTRFS wartość nie obejmuje narzutu konfiguracji RAID (danych nadmiarowych).
•FSLASTBLOCK - ostatni blok systemu plików/całkowita ich liczba
•FSBLOCKSIZE - rozmiar bloku systemu plików

Poniższe znaczniki są zawsze włączone

•BLOCK_SIZE - najmniejszy rozmiar bloku dostępny z systemu plików
•MOUNT - nazwa montowania klastra (tylko ocfs)
•EXT_JOURNAL - UUID zewnętrznego dziennika
•SYSTEM_ID - identyfikator systemu w ISO9660
•VOLUME_SET_ID - identyfikator zbioru woluminów w ISO9660
•DATA_PREPARER_ID - identyfikator danych w ISO9660
•PUBLISHER_ID - identyfikator wydawcy w ISO9660
•APPLICATION_ID - identyfikator programu w ISO9660
•BOOT_SYSTEM_ID - identyfikator systemu rozruchowego w ISO9660

libblkid napisał Andreas Dilger w ramach narzędzi systemu plików ext2, ze wskazówkami Teda Ts’o. Biblioteka została następnie mocno zmieniona przez Teda Ts’o.

Niskopoziomowy kod sprawdzania został przepisany przez Karela Zaka.

libblkid jest dostępny na warunkach licencji GNU Library General Public License (LGPL), w wersji 2 (lub dowolnie wybranej przez użytkownika wersji późniejszej).

blkid(8), findfs(8)

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Biblioteka libblkid jest częścią pakietu util-linux od wersji 2.15. Można go pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3