名前

libblkid - ブロックデバイスの識別ライブラリ

書式

#include <blkid.h>

cc file.c -lblkid

説明

libblkid ライブラリは、 ブロックデバイス (ディスク) の内容 (ファイルシステムタイプなど) を識別して、 ファイルシステムのラベル/ボリューム名、 一意の識別番号/シリアル番号を抽出する。 一般的な利用方法としては、 設定ファイル内に、 ハードコーディングされている特定のブロックデバイス名を指定せずに、 LABEL= タグや UUID= タグに用いることができる。

本ライブラリの低レベル機能部分では、 パーティションやブロックデバイストポロジーに関する情報も抽出する。

本ライブラリの高レベル機能部分では、 ブロックデバイスに関する情報をキャッシュファイルに保持しておき、 ユーザーへ情報を返す前に、 その情報がまだ有効であるかどうかが検証される (これはユーザーが raw ブロックデバイスの読み込み権限を持っている場合であり、権限がない場合には検証は行われない)。 キャッシュファイルは、 非特権ユーザーであっても (通常 root ユーザー以外であったり、 "disk" グループに属していなかったりする場合でも)、 デバイスのラベルや ID を使ってデバイスにアクセスできる。 キャッシュファイルの標準的な配置ディレクトリは、 環境変数 BLKID_FILE によって上書きされる。

ある 1 つの既知のデバイスに関する情報を取得する場面においては、 キャッシュを使っても使わなくても、 性能に影響することはない (ただしブロックデバイスを直接読み込むことができない場合は除く)。

本ライブラリの高レベル機能部分では、 LABEL/UUID を決定する方法を 2 つ提供している。 1 つはブロックデバイスから直接情報を読み取ることであり、 もう 1 つは udev シンボリックリンク /dev/disk/by-* から情報を読み取ることである。 デフォルトでは、 udev から取得する方法が採用される。

複数デバイスを扱う場合は、キャッシュファイルを (たとえ空であっても) 利用することが強く推奨される。 複数デバイスは 1 度にすべてスキャンされ、 ディスク内のキャッシュが、 その際に可能であれば更新されるためである。

(モジュラーカーネルなどの) 特定の状況において、 ブロックデバイスがアクセスされていない状態では、 そのデバイスが見えない場合がある。 したがって、 そういったデバイスを特定するためには、 単に見えているデバイスだけを取り上げるのではなく、 適切な方法が必要になる。 こういった状況においては、 キャッシュファイルの利用が 必要 となる。

設定ファイル

設定ファイル /etc/blkid.conf の標準的な配置ディレクトリは、 環境変数 BLKID_CONF によって上書きされる。 この設定ファイルに関する詳細は、 man ページ blkid(8) を参照のこと。

著者

libblkid は、 Ted Ts’o からの情報を受けて、 Andreas Dilger が ext2 ファイルシステムユーティリティー向けに書いた。 その後、 このライブラリは Ted Ts’o により引き続き、 かなりの修正が行われている。

低レベルの probe コードは Karel Zak が書き直した。

著作権

libblkid is available under the terms of the GNU Library General Public License (LGPL), version 2 (or at your discretion any later version).

関連項目

blkid(8), findfs(8)

バグ報告

バグ報告は、 以下にある issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

libblkid ライブラリは、 バージョン 2.15 以降、 util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.