2.2. udev デバイスの命名規則
ユーザー空間デバイスマネージャー (udev
) サブシステムを使用すると、デバイスに永続的な名前を割り当てるためのルールを定義できます。これらのルールは、/etc/udev/rules.d/
ディレクトリー内の .rules
拡張子が付いたファイルに保存されます。これらのルールの目的は、システムの再起動後や設定の変更後も、ストレージデバイスが一貫して予測どおりに識別されるようにすることです。
udev
ルールは、キーと値のペアを使用して人間が判読できる形式で記述されます。デバイスが検出または初期化されると、udev
はこれらのルールを定義された順序に基づいて順番に評価します。最初に一致したルールがデバイスに適用され、デバイスの名前とシステム内での識別方法が決定されます。
ストレージデバイスの場合、udev
ルールは /dev/disk/
ディレクトリーにシンボリックリンクを作成します。これらのシンボリックリンクはストレージデバイスに使いやすいエイリアスを提供するため、これらのデバイスの参照と管理がより便利になります。
カスタムの udev
ルールを作成して、シリアル番号、WWN (World Wide Name) 識別子、その他のデバイス固有の特性などのさまざまな属性に基づいてデバイスに名前を付ける方法を指定できます。特定の命名規則を定義することにより、システム内でデバイスを識別する方法を正確に制御できます。
udev
ルールには主に 2 つの場所があります。
-
/lib/udev/rules.d/
ディレクトリーには、udev
パッケージに付属するデフォルトのルールが含まれています。 -
/etc/udev/rules.d
ディレクトリーはカスタムudev
ルール用です。
udev
ルールは非常に柔軟ですが、udev
の制限事項に注意することが重要です。
-
アクセス可能なタイミング: 一部のストレージデバイスは、
udev
クエリー時にアクセスできない場合があります。 -
イベントベースの処理: カーネルはいつでも
udev
イベントを送信できます。そのため、デバイスがアクセスできない場合は、ルール処理とリンクの削除をトリガーする可能性があります。 - 処理の遅延: 特に多数のデバイスがある場合、イベントの生成と処理の間に遅延が発生する可能性があります。これにより、カーネルがデバイスを検出してからリンクが利用可能になるまでに遅れが生じます。
-
デバイスのアクセシビリティー:
udev
ルールによって呼び出される外部プログラム (blkid
など) がデバイスを一時的に開き、他のタスクからデバイスに一時的にアクセスできなくなる可能性があります。 -
リンクの更新:
/dev/disk/
でudev
によって管理されるデバイス名は、メジャーリリース間で変更される可能性があります。その場合、リンクの更新が必要になります。
関連情報
-
システム上の
udev
man ページ