UUIDの割り当てを理解する

UUIDの割り当てを理解する

UUID(ユニバーサルユニーク識別子) は、ブロック (ストレージ) デバイスを識別するために使用される 128 ビットのコードです。まず、UUID はこれだけに使用されているのでしょうか?

デバイスはどのようにして UUID を取得するのでしょうか?

変更されることはありますか? たとえば、起動するたびに? 新しい OS がインストールされたときなど?

UUID はどのように生成されますか? ランダムですか?

ほとんどのコンピュータには 10 台を超えるストレージ デバイスはありません。なぜこれほど多くの異なる名前が必要なのでしょうか?

答え1

このコンセプトはRFC 4122生成するためのさまざまなアルゴリズムを定義します言語s. バリアント 4 は乱数を使用するため、最も一般的です。

UUID はさまざまなシナリオで使用されます。例をいくつか挙げます。

  • パーティションとファイルシステムにラベルを付けるというのは、Linuxでは最も一般的な使い方である。
  • ネットワークマネージャは、ネットワークデバイスと接続を識別するためにそれらを使用します。
  • Virtual BoxやQemu-KVMなどのハイパーバイザーは、VMを識別するためにそれらを使用します。
  • これらはMicrosoft Windows内で使用され、ガイドs
  • これらは、データベース
  • これらは、ソフトウェア開発

Linux では、すべてのディストリビューションにパッケージが付属しておりutil-linux、その中にはuuidgenUUID を生成するコマンドが含まれています。これは、デフォルトでランダムな UUID を生成するフロントエンドでありlibuuid、十分なエントロピーが利用できない場合は時間ベースで生成します。

パーティションまたはファイルシステムを作成するために使用するユーティリティはUUIDを生成します。UUIDは、パーティション/ファイルシステムを再作成するか、UUIDを明示的に変更するまで(たとえばtune2fs)そのパーティション/ファイルシステムに残ります。

UUID は、ファイルシステムとパーティションに一貫した名前 (ただし、非常に長い名前) を与えるために使用されます。これにより、2 つの HDD システムの UEFI ファームウェアの BIOS がハード ディスクをリストし、システム ディスクが/dev/sda1 回目の起動時に割り当てられ、次の起動時に割り当てられる/deb/sdb(最初のディスクの 2 回目の起動時の起動が遅い可能性があります) というシナリオを回避できます。

従来の命名方法を使用すると、システムがマウントするパーティションを間違ったディスクで検索するため、ファイルに混乱が生じます/etc/fstab。たとえば、私のスワップ エントリは次のようになります。

/dev/sda4               none            swap            defaults        0 0

起動時にディスクが異なって割り当てられていた場合、システムはswap非システム ディスク上の 4 番目のパーティション タイプを見つけられず (ラップトップを使用しているため、2 番目のディスクはありませんが、要点は理解していただけると思います)、スワップは失敗します。

これらに UUID でラベルを付け、それを内部で使用することで、/etc/fstab常に正しいファイルシステムがマウントされることが保証されます。例:

UUID=d8ab8967-f2de-4c76-902f-d8d9707c399e /media/files  ext4    defaults 0 0

/media/files起動時に BIOS (または UEFI ファームウェア) がラベルを付ける順序に関係なく、常にその UUID を持つパーティションがマウントされます。

関連情報