2008年02月15日現在
udevルール設定に関する詳細情報

<目次>


■udevの概要 ↑UP

udevとはシステム上に実在する装置に対し動的なデバイス命名機能を提供するための ホットプラグサブシステムの一部であり、Red Hat Enterprise Linux v.4から導入されています。

  • Red Hat Enterprise Linux 5では、Fibre Channel接続ディスクに対する、パス情報を含んだデバイスファイルを作成するudevルールがデフォルトで有効になっています。

  • udevによって作成されるデバイスファイルは、カーネルが作成するデバイスファイル (例:/dev/sda等)への単なるシンボリックリンクファイルです。 従って、udevのルール設定に関わらず、カーネルが作成するデバイスファイル名を直接使用することも可能です。

  • udevの機能の詳細については、以下を参照してください。
    • udev(8)、udevinfo(8)のオンラインマニュアル
      (udevinfo(8)はudev情報の検索・表示用のコマンドです。)
    • /usr/share/doc/udev-vvvディレクトリ内の各ドキュメント
      (vvvはインストールされているudevのバージョン番号)


■udevルールについての詳細 ↑UP

Red Hat Enterprise Linux 5で有効になっているudevルールの詳細は以下の通りです。
デバイスファイル命名規則

/dev/disk配下に以下のようなデバイスファイルが作成されます。 (説明の便宜上、色分けをしています。)

    /dev/disk/by-path/pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000
    /dev/disk/by-path/pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part1
    /dev/disk/by-path/pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part2
    /dev/disk/by-path/pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part3
           
これらのファイルの命名規則は以下のとおりです。

上記ファイルは全て、カーネルが作成したデバイスファイル(/dev/sdxx)に対するシンボリックリンクファイルであり、 /dev/sdxxの代わりとして使用できます。 これらのシンボリックリンクファイルはシステムブート処理内での/etc/rc.sysinit 実行完了後から使用することができます。

<カーネルが作成したデバイスファイルへのリンク関係(例)>

     # cd /dev/disk/by-path
     # ls -l
     lrwxrwxrwx  1 root root  9  7月  8 00:29 pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000 -> ../../sdf
     lrwxrwxrwx  1 root root 10  7月  8 00:29 pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part1 -> ../../sdf1
     lrwxrwxrwx  1 root root 10  7月  8 00:29 pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part2 -> ../../sdf2
     lrwxrwxrwx  1 root root 10  7月  8 00:29 pci-0000:02:01.0-fc-0x20010000138402a0:0x0001000000000000-part3 -> ../../sdf3
           

補足事項


注意事項

  1. udevが作成したデバイスファイルは単なるシンボリックリンクファイルであるため、 カーネル内部では認識されません。
    このため、以下のファイルには、udevが作成したデバイスファイル名ではなく、 カーネルが作成したデバイスファイル名(/dev/sdxx)のみが格納されます。 (現在判明しているファイルについてのみ記載。)

    /proc/devices
    /proc/diskstats
    /proc/partitions
    /proc/swaps
    /etc/mtab

  2. udevが作成したデバイスファイルは、カーネルが作成したデバイスファイル(/dev/sdxx) の代わりに使用できます。 ただし、以下のコマンドでは、出力結果が意図するものとは異なる場合がありますのでご注意ください。

    • mount(8)コマンド
      • mount(8)コマンドをオプション無しまたは"-l"オプション付きで実行した場合、 現在マウントされているファイルシステムの一覧が表示されますが、 デバイスファイル名はudevで作成した名前ではなく、カーネルが作成した名前で表示されます。
    • df(1)コマンド
      • df(1)コマンドの引数にデバイスファイルを指定せずに実行した場合、 出力結果におけるファイルシステム名はudevで作成した名前ではなく、 カーネルが作成した名前で表示されます。
      • df(1)コマンドの引数にudevで作成したデバイスファイルを指定した場合、 "df /dev"を実行した場合と同じ結果が表示され、正しい結果が表示されません。
        このため、udevで作成したデバイスファイルのシンボリックリンク先である、 カーネルが作成したデバイス名(/dev/sdxx)を "ls -l" コマンド等で特定し、 df(1)コマンドの引数に/dev/sdxxを指定して実行してください。
    • iostat(1)コマンド
      • iostat(1)コマンドの引数にデバイスファイル名を指定せずに実行した場合、 出力結果におけるデバイス名はudevで作成した名前ではなく、 カーネルが作成した名前で表示されます。
      • iostat(1)コマンドの引数にudevで作成したデバイスファイル名を指定した場合、 出力結果にデバイスの統計情報が表示されません。
        このため、 udevで作成したデバイスファイルのシンボリックリンク先である、 カーネルが作成したデバイス名(/dev/sdxx)を "ls -l" コマンド等で特定し、 iostat(1)コマンドの引数に/dev/sdxxを指定して実行してください。
戻る ↑UP