3 ストレージデバイスのマウント #
このセクションでは、デバイスのマウント時に使用されるデバイス識別子の概要、およびネットワークストレージのマウントに関する詳細について説明します。
3.1 UUIDの理解 #
UUID (Universally Unique Identifier)は、ファイルシステムの128ビットの番号であり、ローカルシステムと他のシステム全体に渡る固有な識別子です。UUIDは、システムハードウェア情報とタイムスタンプをそのシードの一部として、ランダムに生成されます。UUIDは、通常、デバイスに固有なタグを付けるために使用されます。
非永続的な「従来の」デバイス名(/dev/sda1
など)を使用すると、ストレージを追加したときに、システムがブートできなくなる可能性があります。たとえば、root (/
)が/dev/sda1
に割り当てられている場合、SANを接続した後またはシステムにハードディスクを追加した後に、/dev/sdg1
に再割り当てされる可能性があります。この場合、ブートローダ設定と/etc/fstab
ファイルを調整する必要があり、そうしないとシステムは起動できなくなります。
デフォルトで、UUIDはブートローダと、ブートデバイスの/etc/fstab
ファイルで使用されます。UUIDは、ファイルシステムのプロパティであり、ドライブを再フォーマットすれば変更できます。デバイス名のUUIDを使用することの代替案として、IDまたはラベルでデバイスを識別する方法があります。
UUIDは、ソフトウェアRAIDデバイスのアセンブルと起動の基準としても使用できます。RAIDが作成されると、md
ドライバは、デバイスのUUIDを生成し、その値をmd
スーパーブロックに保存します。
どのブロックデバイスのUUIDも、/dev/disk/by-uuid
ディレクトリ内で見つけることができます。たとえば、UUIDエントリは次のようになります。
>
ls -og /dev/disk/by-uuid/
lrwxrwxrwx 1 10 Dec 5 07:48 e014e482-1c2d-4d09-84ec-61b3aefde77a -> ../../sda1
3.2 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
にリストされません。
udev
によるデバイス管理の詳細については、第29章 「udev
による動的カーネルデバイス管理」を参照してください。
udev
コマンドの詳細については、man 7 udev
を参照してください。
3.3 ネットワークストレージデバイスのマウント #
ストレージデバイスの種類によっては、systemd.mount
がデバイスのマウントを開始する前にネットワークが設定され、利用可能になっている必要があります。これらのタイプのデバイスのマウントを延期するには、該当するそれぞれのネットワークストレージデバイスの/etc/fstab
ファイルに_netdev
オプションを追加します。次に例を示します。
mars.example.org:/nfsexport /shared nfs defaults,_netdev 0 0