3 UUIDによるデバイスのマウント #
  本項では、デバイス名(/dev/sda1など)の代わりにUUID (Universally Unique Identifier)を使用してファイルシステムデバイスを識別する方法について説明します。SUSE Linux Enterprise Server 12から、ブートローダファイルと/etc/fstabファイルではデフォルトでUUIDが使用されています。
 
3.1 udevによる永続的なデバイス名 #
   Linuxカーネル2.6以降、udevによって、永続的なデバイス名を使用した動的な/devディレクトリのユーザスペースソリューションが提供されます。システムに対してデバイスを追加または削除する場合は、ホットプラグシステムの一部としてudevが実行されます。
  
   ルールのリストが特定デバイス属性との比較に使用されます。udevルールのインフラストラクチャ(/etc/udev/rules.dディレクトリで定義)は、すべてのディスクデバイスに、それらの認識順序や当該デバイスに使用される接続に関わらず、安定した名前を提供します。udevツールは、カーネルが作成するすべての該当ブロックデバイスを調べ、一定のバス、ドライブタイプ、またはファイルシステムに基づいて、ネーミングルールを適用します。udev用の独自ルールを定義する方法については、「Writing udev Rules」を参照してください。
  
   動的なカーネル提供のデバイスノード名に加えて、udevは、/dev/diskディレクトリ内のデバイスをポイントする永続的なシンボリックリンクのクラスを保持します。このディレクトリは、さらに、by-id、by-label、by-path、およびby-uuidの各サブディレクトリに分類されます。
  
udev以外のプログラム(LVMやmdなど)も、UUIDを生成することがありますが、それらのUUIDは/dev/diskにリストされません。
   
3.2 UUIDの理解 #
UUID (Universally Unique Identifier)は、ファイルシステムの128ビットの番号であり、ローカルシステムと他のシステム全体に渡る固有な識別子です。UUIDは、システムハードウェア情報とタイムスタンプをそのシードの一部として、ランダムに生成されます。UUIDは、通常、デバイスに固有なタグを付けるために使用されます。
   非永続的な「従来の」デバイス名(/dev/sda1など)を使用すると、ストレージを追加したときに、システムがブートできなくなる可能性があります。たとえば、root (/)が/dev/sda1に割り当てられている場合、SANを接続した後またはシステムにハードディスクを追加した後に、/dev/sdg1に再割り当てされる可能性があります。この場合、ブートローダ設定と/etc/fstabファイルを調整する必要があり、そうしないとシステムは起動できなくなります。
  
   この問題を回避する1つの方法は、ブートデバイスのブートローダファイルと/etc/fstabファイルでUUIDを使用することです。SUSE Linux Enterpriseのバージョン12以降は、これがデフォルトです。UUIDは、ファイルシステムのプロパティであり、ドライブを再フォーマットすれば変更できます。デバイス名のUUIDを使用することの代替案として、IDまたはラベルでデバイスを識別する方法があります。
  
   UUIDは、ソフトウェアRAIDデバイスのアセンブルと起動の基準としても使用できます。RAIDが作成されると、mdドライバは、デバイスのUUIDを生成し、その値をmdスーパーブロックに保存します。
  
   どのブロックデバイスのUUIDも、/dev/disk/by-uuidディレクトリ内で見つけることができます。たとえば、UUIDエントリは次のようになります。
  
tux > ls -og /dev/disk/by-uuid/
lrwxrwxrwx 1 10 Dec  5 07:48 e014e482-1c2d-4d09-84ec-61b3aefde77a -> ../../sda13.3 追加情報 #
udevによるデバイス管理の詳細については、第21章 「udevによる動的カーネルデバイス管理」を参照してください。
  
udevコマンドの詳細については、man 7 udevを参照してください。