GPT パーティション テーブルの GUID を「計算」する方法はありますか?

GPT パーティション テーブルの GUID を「計算」する方法はありますか?

{DE94BBA4-06D1-4D40-A16A-BFD50179D6AC}Windows パーティションや{00000000-0000-0000-0000-000000000000}未使用のパーティションなどには、特定の予約済み GUID があります。

これらの値はどこから来るのでしょうか? 何らかの方法で捏造されたものなのでしょうか、それともランダムに生成されて後で登録されたものなのでしょうか?

特定の識別子を作成するために、いわゆる「ランダム」なスキームを使用するのはあまり合理的ではないようです。

答え1

特定の識別子を作成するために、いわゆる「ランダム」なスキームを使用するのはあまり合理的ではないようです。

実際、それは非常に合理的であるように思えます。

オリジナルの IBM MBR フォーマットの昔は、「パーティション タイプ」に 8 ビットの識別子を使用していました。これは 1982 年頃のことです。

可能性が少数しか予測できなかった場合にはこれで十分だったかもしれませんが、DOS のさまざまなバリエーション、他の PC ベースの OS、および独自の (場合によっては数種類の異なる) パーティション タイプ識別子を必要とする他のいくつかのシステムの間では、選択肢がすぐに不足してしまいました。

GPTは、過去約35年間に発生したMBRの問題を解決するために設計されています。今では、当時の巨大なストレージアレイの何倍ものストレージスペースを爪ほどの大きさで利用できるため、私たちが理解している物理法則に基づいて、数バイトの余分なバイトを「無駄にする」余裕があります。一度もない選択肢が尽きたのです。(大まかに言えば、地球上には現在知られている保存方法では、すべての有効な GUID の単一のコピーが作成されます。現在地球上に生きているすべての人が約 10^25 個の GUID を生成しても、衝突のリスクはごくわずかです。

GPT (GUID パーティション テーブル) は、ほぼすべてのものに GUID を使用します。プリミティブがすでに使用されているため、パーティション タイプに別のものを使用する大きな理由はないようです。

GUID は、固定形式に従ってランダムに生成されます。したがって、何らかの「特別な」値を選択することも、単一の GUID を生成してそれを「特別な」値と呼ぶこともできます。特定の GUID 値が他の GUID 値よりも特別である、または特別でないという魔法はありません。唯一本当に「特別な」 GUID は、すべてゼロの GUID ですが、これは、すべてゼロまたはすべて 1 の値がコンピューティングで一般的に特別な値として扱われるためです。

したがって、GUIDを使用することを決定し、特定の値を定義する必要がある場合は、ランダムな GUID を生成し、「この GUID にはその意味があります」と法令で発表します。あなたと相互運用できるようにしたい人は誰でも、その特定の GUID を他の意味ではなく、その特定の意味を持つものとして扱う必要があります。

関連情報