DISKPART: GPT プライマリ パーティション

DISKPART: GPT プライマリ パーティション

GPTディスクの場合、Microsoft DISKPARTコマンド

 list partition  

Primaryは、ディスク管理ユーティリティと同様に、いくつかのパーティションを定義します。
ただし、MBR スキームの古いプライマリ/拡張パーティションは、GPT 標準が対象としているものです。

例えば、Windowsパーティションは、マイクロソフトの専門用語では次のように定義されています。基本データパーティション (GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) は DISKPART によって と報告されますPrimary。皮肉なことに、Linux の対応するユーティリティでfdiskは、正しく と報告されます。Microsoft basic data

ディスクをベーシックからダイナミックに変換する場合、BDP はタイプとともに正しく報告されますDynamic Data

コマンドに関するDISKPART用語の参照を探しましたが、list partition見つかりません。また、現在のMicrosoft GPT 実装、これについてはヒントはありません。

このパーティション タイプは正確には何ですか? これは単に BDP パーティションのフレンドリ名ですか?

編集

私が何を尋ねているのかが不明瞭な方もいるかもしれません。申し訳ありません。次のようにしてみてください:

Diskpartlist partコマンドは、一部の GPT パーティションに というラベルを付けますType: Primary。GPT 仕様にはプライマリ パーティションの定義がないため、以下を教えていただけますか。

  1. GPT プライマリ パーティションの定義は何ですか?
  2. 非プライマリ GPT パーティションの例?

答え1

用語は、正式な標準文書で定義されているものよりも慣習として受け入れられているものが多く、また、人々が用語を誤用することが多いため、混乱を招くことがあります。また、さまざまな分野で人々が物事を呼ぶ方法にも違いがあります。たとえば、Windows ユーザーはパーティションを「ドライブ」と呼ぶことが多いのに対し、Linux では「ドライブ」という用語は通常、物理ハード ディスクを指し、macOS ではパーティションを「ボリューム」と呼ぶことがよくあります。これは、イギリス英語とアメリカ英語に関するジョークに似ています。つまり、私たちは共通の言語によって分断されているということです。

いずれにしても、MBR 用に設計され、その後 GPT に適合された古いパーティション ツールでは、すべての GPT パーティションに「プライマリ」という用語が適用されることがよくあります。ご指摘のとおり、これはせいぜい無意味であり、最悪の場合、混乱を招く可能性がありますが、原因は、プログラムのデータ構造やユーザー インターフェイスで「プライマリ」、「拡張」、または「論理」ラベルを適用することが求められ、GPT パーティションに最も近いのは「プライマリ」であるため、それが表示されるということのようです。

これはパーティションのタイプ コードとは異なります。MBR では、これは 1 バイトの値で、多くの場合 (常にではありませんが) 16 進数で表されます。たとえば、NTFS (または HPFS) の場合は 0x07、FAT-32 LBA の場合は 0x0c です。GPT では、タイプ コードは 16 バイトの GUID 値です。たとえば、Windows の「基本データ」パーティション (通常の FAT または NTFS パーティション) の場合は EBD0A0A2-B9E5-4433-87C0-68B6B72699C7、EFI システム パーティション (ESP) の場合は C12A7328-F81F-11D2-BA4B-00A0C93EC93B です。これらの GPT タイプ コードは扱いにくく、人間が覚えるのが難しいため、ほとんどのツールでは明示的に表示しないか、名前またはニーモニック コードにマッピングして表示します。ただし、これらのマッピングは特定のプログラムに対して一意である傾向があるため、プログラム A のマッピング方法はプログラム B のマッピング方法と異なる可能性があります。また、MBR から GPT タイプ コードへのマッピングは 1:1 ではないことにも注意してください。場合によっては、非常に明確なマッピングがあります (Linux ファイルシステム用の MBR の 0x83 は、GPT の 0FC63DAF-8483-4772-8E79-3D69D8477DE4 にきれいにマッピングされます)。しかし、場合によっては、いずれかのパーティション テーブル スキームに同等のものがないこともあります (たとえば、GPT の 21686148-6449-6E6F-744E-656564454649 は BIOS ブート パーティション用で、MBR に相当するものはありません)。また、あるシステムの 1 つのコードが別のシステムの複数のコードにマップされることもあります (たとえば、GPT の EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 や、複数の MBR タイプ コードにマップされる Windows 基本データ パーティションなど)。

答え2

単純に間違った類推をしているだけです。MBR パーティション テーブル内のパーティションにもパーティション タイプがありますが、プライマリ/拡張/論理ではなく、次のようになります。

https://en.m.wikipedia.org/wiki/パーティションタイプ#パーティションIDのリスト

MBR パーティション テーブルでは、タイプは 1 バイトの ID (コードと呼ばれることもあります) の形式ですが、GPT ではタイプは GUID の形式です。

このフィールドに「プライマリ」が入力されているのは、GPT のパーティションに別の用語を作成する意味がないからです。Microsoft はフィールドを空白のままにしておくこともできたはずだと主張する人もいるかもしれませんが、まあ、それは Microsoft のスタイルではないと思います。おそらく、そのようなフィールドが空白のままになっているのを見るとユーザーがパニックに陥ることを Microsoft は恐れているのでしょう。

答え3

GPT プライマリ パーティションに関しては、次のようになります。

パーティション テーブルを想像してください。MBR と GPT はあらゆる点で異なり、まったく類似点がないわけではありません。どちらもテーブルです。私は実際、MBR パーティション スキームを MSDOS パーティション スキームと呼ぶことを好みますが (GParted 開発者のように)、これは好みの問題です。

MSDOS と GPT の違いは、単にデータ構造が異なるという点です。どちらもプライマリ パーティションを持っています。MSDOS は構造上、4 つ以上のプライマリ パーティションと 2TB を超えるディスクは許可されません。ただし、GPT では許可されます。理論上は、パーティションの数はほぼ無制限です (少なくとも私たちの用途では) (Windows では 128 に制限されていますが、それでも平均的なユーザーが使用する数よりはるかに多いです)。GPT プライマリ パーティションは、MSDOS プライマリ パーティションとほぼ同じ構造ですが、GPT では GUID で参照されます。MSDOS では、パーティションを参照するために \Ox83 (Linux) などの 1 バイトの 16 進パーティション タイプ コードを使用します。

問題は、何をプライマリと見なし、何を拡張/論理と見なすかという点だけです。理論的には、GPT は定義されていれば拡張パーティションと論理パーティションを持つことができます。拡張パーティションは単なるコンテナであり、必ずしもパーティションである必要はありません。論理パーティションは、MSDOS パーティション スキームに適合できるように異なる構造になっています。

関連情報