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 ページ