web-dev-qa-db-ja.com

UUIDは本当にユニークですか?ディスクの単一スライスに複数のUUIDを割り当てることができるのはなぜですか

すべてのWebコンテンツとその頭字語は、一意の識別子として説明しています。

しかし、別のデバイスを作成しようとすると、たとえば私の場合はスワップしてUUIDを割り当てると、ディスクの1つのスライスに多くのUUIDを割り当てることができます。

-Uオプションを指定したコマンドmkswapを使用して、異なるUUIDを持つ複数のスワップデバイスを作成できます。

それでは、それはどのようにユニークですか..?

2
amitam

いいえ、UUIDが一意であることを保証することはできません。 UUIDは 128ビットの乱数のみ です。私のコンピューターがUUIDを生成するとき、将来のある時点で、コンピューターまたはユニバース内の他のデバイスが同じUUIDを生成するのを防ぐことができる実用的な方法はありません。

2つのUUIDが同じになることは可能性が高いではないかもしれませんが、canは同じです。

この場合、デバイスにUUIDを割り当てるコードは、デバイスにすでに割り当てられている既存のUUIDに対して新しいUUIDをチェックし、重複を破棄して、その方法で一意性を保証する場合があります。

一意性に関して。新しいディスクがシステムにインストールされるとき、通常の方法は技術者がその上のパーティションを定義することです。ラベルは一意ではなく、使用されません。定義プロセスでは、ソフトウェアアルゴリズムがUUIDを作成します。

システムにはすでにマウントされている既存のUUIDのリストがあるため、パーティションを定義するプロセスにより、一意のUUID値が自動的に作成されます。重複を避けるために、マウントされたUUIDの既存のリストに対してフィルタリングされた新しいUUID値。パーティションの作成では、ホストシステム上で、UUIDとパーティション番号が一意の組み合わせを形成します。

はい、そうです。ディスクが既存のシステムBで使用するためにシステムAで準備されている場合、重複が発生する可能性があります。

3
Andrew Henle

ディスクの単一スライスに多くのUUIDを割り当てることができます。

あんまり。オブジェクトに割り当てることができるUUIDは1つだけです。ただし、同じスペースをカバーし、それぞれが独自のUUIDを持つオブジェクトを作成できます。たとえば、ファイルシステムとUEFIパーティション、またはそれが存在するLVM論理ボリュームなどです。

異なるUUIDで複数のスワップデバイスを作成できます

これは正常です。複数のスワップボリュームがあり、それぞれに独自のUUIDがあります。

実際には、反対の状況について質問するつもりだったようです。異なるボリュームに同じUUIDがあることです。これは起こらないはずです。通常のツールを使用している場合は発生しません。たとえば、ファイルシステムまたはスワップボリュームを作成すると、デフォルトでランダムなUUIDが取得されます。このランダムな値には122ビットのエントロピーがあるため、衝突の確率が大きくなる前に、世界には 約5兆 (10億)のボリュームがあり、それぞれに独自のUUIDがあります。

使用するUUIDをツールに指示する場合、UUIDが一意であることを確認するのはユーザーの責任になります。 UUIDは、正しく使用されると一意になります。したがって、一意でないUUIDを強制すると、それらを誤って使用していることになります。