Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 SUSE Linux Enterprise Server 11 SP4

6 UUIDによるデバイスのマウント

このセクションでは、オプションとして、デバイス名の代わりにUUIDを使用して、ブートローダファイルと/etc/fstabファイルでファイルシステムのデバイスを識別する方法について説明します。

6.1 udevによるデバイスの命名

Linux 2.6以降のカーネルでは、udevによって、永続的なデバイス名を使用した/devディレクトリのユーザスペースソリューションが提供されます。システムに対してデバイスを追加または削除する場合は、ホットプラグシステムの一部としてudevが実行されます。

ルールのリストが特定デバイス属性との比較に使用されます。udevルールのインフラストラクチャ(/etc/udev/rules.dディレクトリで定義)は、すべてのディスクデバイスに、それらの認識順序や当該デバイスに使用される接続に関わらず、安定した名前を提供します。udevツールは、カーネルが作成するすべての該当ブロックデバイスを調べ、一定のバス、ドライブタイプ、またはファイルシステムに基づいて、ネーミングルールを適用します。udev用の独自ルールを定義する方法については、「Writing udev Rules」を参照してください。

動的なカーネル提供のデバイスノード名に加えて、udevは、/dev/diskディレクトリ内のデバイスをポイントする永続的なシンボリックリンクのクラスを保持します。このディレクトリは、さらに、by-idby-labelby-path、およびby-uuidの各サブディレクトリに分類されます。

注記
注記

udev以外のプログラム(LVMやmdなど)も、UUIDを生成することがありますが、それらのUUIDは/dev/diskにリストされません。

6.2 UUIDの理解

UUID (Universally Unique Identifier)は、ファイルシステムの128ビットの番号であり、ローカルシステムと他のシステム全体に渡る固有な識別子です。UUIDは、システムハードウェア情報とタイムスタンプをそのシードの一部として、ランダムに生成されます。UUIDは、通常、デバイスに固有なタグを付けるために使用されます。

6.2.1 UUIDによるファイルシステムデバイスのアセンブルまたは有効化

UUIDは、常に、パーティションに対して固有であり、表示の順序またはマウントの場所に依存しません。特定のSANデバイスがサーバに接続されると、システムパーティションが名前変更され、最後のデバイスに移動されます。たとえば、ルート(/)がインストール時に/dev/sda1に割り当てられている場合は、SANの接続後に/dev/sdg1に割り当てられることがあります。この問題を回避する1つの方法は、ブートデバイスのブートローダファイルと/etc/fstabファイルでUUIDを使用することです。

製造業者がドライブに割り当てたデバイスIDは、デバイスをどこにマウントしても変更されないので、常に、ブート時に検出できます。UUIDは、ファイルシステムのプロパティであり、ドライブを再フォーマットすれば変更できます。ブートローダファイルでは、通常、デバイスの場所(/dev/sda1など)を指定して、デバイスをシステムブート時にマウントします。ブートローダは、デバイスのUUIDと管理者指定のボリュームラベルによってもデバイスをマウントできます。ただし、ラベルとファイルの場所を使用する場合は、パーティションのマウント時にラベル名を変更できません。

UUIDは、ソフトウェアRAIDデバイスのアセンブルと起動の基準として使用できます。RAIDが作成されると、mdドライバは、デバイスのUUIDを生成し、その値をmdスーパーブロックに保存します。

6.2.2 ファイルシステムデバイスのUUIDの見つけ方

どのブロックデバイスのUUIDも、/dev/disk/by-uuidディレクトリ内で見つけることができます。たとえば、次のようなUUIDがあります。

e014e482-1c2d-4d09-84ec-61b3aefde77a

6.3 ブートローダと/etc/fstabファイルでのUUIDの使用(x86の場合)

インストール後、オプションとして、次の手順に従って、x86システムのブートローダファイルと/etc/fstabファイルでシステムデバイスのUUIDを設定できます。

プロシージャを開始する前に、/boot/grub/menu.1stファイルと/etc/fstabファイルのコピーをとってください。

  1. SANデバイスの接続なしで、SUSE Linux Enterprise Server for x86をインストールします。

  2. インストール後、システムをブートします。

  3. rootユーザまたはそれと同等の権限で、端末コンソールを開きます。

  4. /dev/disk/by-uuidディレクトリにナビゲートして、/boot/root、およびswapをインストールしたデバイスのUUIDを見つけます。

    1. 端末コンソールのプロンプトで、次のように入力します。

      cd /dev/disk/by-uuid
    2. 次を入力して、すべてのパーティションをリストします。

      ll
    3. 次のようなUUIDを見つけます。

      e014e482-1c2d-4d09-84ec-61b3aefde77a —> /dev/sda1
  5. YaSTでブートローダオプションを使用するか、またはテキストエディタを使用して、/boot/grub/menu.1stファイルを編集します。

    たとえば、次のように変更します。

    kernel /boot/vmlinuz root=/dev/sda1

    変更先:

    kernel /boot/vmlinuz root=/dev/disk/by-uuid/e014e482-1c2d-4d09-84ec-61b3aefde77a
    重要
    重要

    間違えた場合は、SAN接続なしでサーバをブートし、参考として/boot/grub/menu.1stファイルのバックアップコピーを使用してエラーを修正できます。

    YaSTでブートローダオプションを使用する場合は、値を変更すると、ブートローダファイルに重複行が追加されるという欠陥があります。エディタを使用して、次の重複行を削除します。

    color white/blue black/light-gray
    default 0
    timeout 8
    gfxmenu (sd0,1)/boot/message

    YaSTで、ルート(/)デバイスをマウントする方法(UUIDを使用する、ラベルを使用するなど)を変更する際には、ブートローダの設定を再保存して、変更内容をブートローダに対して有効にする必要があります。

  6. rootユーザまたはそれと同等の権限で、次のいずれかを実行してUUIDを/etc/fstabファイルに入力します。

    • rootユーザとしてYaSTを起動し、システム › パーティショナと選択し、目的のデバイスを選択して、Fstabオプション変更します。

    • /etc/fstabファイルを編集して、システムデバイスのエントリを場所からUUIDに変更します。

      たとえば、ルート(/)ボリュームのデバイスパスが/dev/sda1で、そのUUIDがe014e482-1c2d-4d09-84ec-61b3aefde77aの場合、次のように行エントリを変更します。

      /dev/sda1   /            reiserfs   acl,user_xattr        1 1

      変更先:

      UUID=e014e482-1c2d-4d09-84ec-61b3aefde77a   /   reiserfs   acl,user_xattr        1 1
      重要
      重要

      ファイル内に、不要な文字やスペースが残っていないようにしてください。

6.4 ブートローダと/etc/fstabファイルでのUUIDの使用(IA64の場合)

インストール後、次のプロシージャに従って、IA64システムのブートローダファイルと/etc/fstabファイルにシステムデバイスのUUIDを設定します。IA64はEFI BIOSを使用します。ファイルシステムの環境設定ファイルは、/boot/efi/SuSE/elilo.confであり、/etc/fstabではありません。

プロシージャを開始する前に、/boot/efi/SuSE/elilo.confファイルのコピーをとります。

  1. SANデバイスを接続せずに、SUSE Linux Enterprise Server for IA64をインストールします。

  2. インストール後、システムをブートします。

  3. rootユーザまたはそれと同等の権限で、端末コンソールを開きます。

  4. /dev/disk/by-uuidディレクトリにナビゲートして、/boot/root、およびswapをインストールしたデバイスのUUIDを見つけます。

    1. 端末コンソールのプロンプトで、次のように入力します。

      cd /dev/disk/by-uuid
    2. 次を入力して、すべてのパーティションをリストします。

      ll
    3. 次のようなUUIDを見つけます。

      e014e482-1c2d-4d09-84ec-61b3aefde77a —> /dev/sda1
  5. YaSTでブートローダオプションを使用して、ブートローダファイルを編集します。

    たとえば、次のように変更します。

    root=/dev/sda1

    変更先:

    root=/dev/disk/by-uuid/e014e482-1c2d-4d09-84ec-61b3aefde77a
  6. /boot/efi/SuSE/elilo.confファイルを編集して、システムデバイスのエントリを場所からUUIDに変更します。

    たとえば、次のように変更します。

    /dev/sda1   /   reiserfs   acl,user_xattr        1 1

    変更先:

    UUID=e014e482-1c2d-4d09-84ec-61b3aefde77a   /   reiserfs   acl,user_xattr        1 1
    重要
    重要

    ファイル内に、不要な文字やスペースが残っていないようにしてください。

6.5 追加情報

udev(8)によるデバイス管理の詳細については、『SUSE® Linux Enterprise Server 11 Administration Guide』のDynamic Kernel Device Management with udevを参照してください。

udev(8)コマンドの詳細については、そのマニュアルページを参照してください。端末コンソールのプロンプトで、次のように入力します。

man 8 udev
このページを印刷