MBRディスクにUUIDとPTUUIDは重要ですか?それでは、どうやって自分で作ることができますか?

MBRディスクにUUIDとPTUUIDは重要ですか?それでは、どうやって自分で作ることができますか?

私はsfdiskを始め、Linuxでパーティショニングを勉強しています。あるドライブから別のドライブにパーティションテーブルをコピーすると、各パーティションのデバイスUUIDとPTUUIDがコピーされますが、新しいデバイスを作成したい場合は、GPTドライブにUUIDを指定できますが、MBRドライブには指定できません。これにより、MBRドライブにUUIDとPTUUIDは必要ないと考えられます。どうしたの?

ドライブのUUIDとパーティションのPTUUIDが必要な場合は、どのように手動で実行しますか? sfdiskでは、GPTデバイスにUUIDを指定できますが、MBRデバイスにはラベルのみを指定できます。 MBR用のUUIDを作成するには?デバイスUUIDに基づいてパーティションPTUUIDが作成されたことを確認する方法は?デバイスのデフォルトのUUIDを作成する方法、またはそれに基づいてパーティションのPTUUIDを作成する方法がわかりません。

答え1

「パーティションのPTUUID」のようなものがないので、「ディスクのPTUUIDとパーティションのPARTUUID」を意味すると仮定します。

質問のタイトルに答えるには:いいえ、MBRは128ビットUUIDの概念が一般的ではなかった1980年代に開発されたため、PTUUIDとPARTUUIDはMBRにとって重要ではありません。。 MBRパーティション表の単一の基本パーティション項目は16バイトにすぎませんでした。長い識別子のために各パーティションに16バイトを追加するという考えは、当時は膨大なスペースの無駄と見なされました。メインMBRパーティションテーブルは、実際のブートレコードコードと同じ512バイトのディスクブロックに収まる必要があるため、後で追加するスペースはありません。

実際のUUIDは12345678-9abc-def0-1234-56789abcdef0の形式になる傾向がありますが、MBRパーティションディスクではPTUUIDとPARTUUID(実際に報告されている場合)がはるかに短い文字列です。 PTUUIDは、それぞれ12345678およびPARTUUID 12345678です。 -01?

これは、MBRパーティションディスクのPTUUIDおよびPARTUUIDによって示される識別子が実際のUUIDではないためです。これは、Windows NT 3.5によってMBRに最初に追加された32ビットディスク識別子に基づいています。もともと「Windowsディスク署名」と呼ばれていましたが、「ディスク識別子」はベンダーの中立的な用語のようです。 Windows NT 3.5以前のオペレーティングシステムにはこれらのディスク識別子がないため、PTUUIDとPARTUUIDはパーティションスキームの不可欠な部分であるGPTパーティションディスクとは異なり、オプションの識別子として扱われる必要があります。

MBRパーティションディスクの「PTUUID文字列」はそれ自体が32ビットディスク識別子であり、最後にダッシュと2桁のパーティション番号を追加すると「PARTUUID」が派生します。これらの文字列は、一意性を保証するのに十分長くなく、同じ規則を使用して生成されないため、実際のUUIDの仕様を満たしていません。これは実際のUUIDのための最良の選択肢です。

完全に使用されていないディスクで新しいMBRパーティションテーブルの作成を開始すると、最新のLinuxにはfdisk次の初期メッセージが含まれます。

Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x1234abcd.

Command (m for help):

したがって、新しいMBRパーティションテーブルを作成すると、自動的にディスク識別子が作成されます。ディスクの「PTUUID」は1234abcdで、最初のパーティションの「PARTUUID」は1234abcd-01です。

MBRディスクの既存のディスク識別子を変更するには、Philip Coulingが述べた方法を使用するか、ディスクのsfdisk --disk-id最新のLinuxバージョンを起動して次のように入力します。fdiskxエキスパートコマンドメニューiと入力してディスク識別子の変更アクション。

MBRパーティションディスクのディスク識別子/ PTUUIDを変更すると、すべてのPARTUUIDがすべて同じディスク識別子から来るため、必ず変更されます。

もしパーティション内のファイルシステムblkidなどのLinuxツールでlsblk表示されるUUIDもサポートされていますUUID。形式と存在はファイルシステムの種類によって異なります。 FATファミリファイルシステムの場合、UUID=1A2B-3C4D実際の128ビットUUIDの代わりに短い識別子が表示されることがあります。これは本当に太っています。ボリュームシリアル番号(また〜として知られているボリュームID)はファイルシステムの作成時に割り当てられます。この設定を変更するには、tune2fs -Uext2 / ext3 / ext4ファイルシステム、xfs_admin -UXFS、mlabel -NFATファイルシステムシリーズなどのファイルシステム固有のツールを使用してください。

答え2

これにより、MBRドライブにUUIDとPTUUIDは必要ないと考えられます。

これは基本的に正しいです。パーティションテーブル自体のPTUUIDはMBR自体には影響しませんが、システムで使用されます。パーティションにはPARTUUIDがまったくなく、テーブル内の場所のみがあります。

ドライブのUUIDとパーティションのPTUUIDが必要な場合は、どのように手動で実行しますか? sfdiskでは、GPTデバイスにUUIDを指定できますが、MBRデバイスにはラベルのみを指定できます。

実際にsfdisk「ディスクID」を設定できます。 MBRパーティションUUIDは、単にディスクIDとテーブルの場所で構成されています。したがって、ディスクIDを最初のPARTUUIDに設定すると、.Look12345になります。12345-1SFディスクマニュアル:

  --disk-id device [id]
      Change the disk identifier. If id is not specified, then
      print the current identifier. The identifier is UUID for GPT
      or unsigned integer for MBR.

背景

Linuxで使用される命名規則は、「UUID」という用語を誤って使用して、誤解を招く可能性があります。 ゆう普遍的にゆう健康状態IDエンティティワード厳密に標準化された生成規則を使用する、非常に具体的で標準化された一意の識別子の形式。バージョン各IDに挿入されます。混乱を避けるために、Linuxパーティショニング以外の用語には「UUID」という略語を使用しないでください。

Linux命名規則は次のとおりです。

  • 「PTUUID」は、パーティションテーブル自体のテーブル自体に含まれる一意の識別子です。 GPTはこの目的のためにユニバーサルユニークな識別子を使用しますが、MBRはそうではありません。しかし、人間はドライブの一意の名前を選択するのに慣れていないので、MBRのPTUUIDは短いです。
  • 「PARTUUID」は、パーティションテーブル内のパーティションの一意の識別子です。
    • MBRはそのようなIDを記録しません。ただし、最大4つのパーティションしかありません。したがって、慣例によって、パーティションはテーブル(1、2、3、4)内の場所として簡単に参照できます。したがって、システム内のMBRパーティションを識別するには、MBRテーブルのPTUUIDとテーブルの場所が必要です。たとえば、私の仮想マシンにはee7273d0パーティションがあるドライブがありますee7273d0-1。これは以下で確認できます/dev/disk/by-partuuid/ee7273d0-1
    • GPTはそれを記録し、それに一般的に一意の識別子を使用します。したがって、ユニバーサル一意の識別子に対する厳格な規則のため、PTUUIDはパーティションを識別するために必要ではありません。 PTUUIDは、正しく生成される限り常に一意です。
  • 「UUID」は、ファイルシステム、LUKSヘッダ、LVM物理ボリュームなどに組み込まれた一意の識別子です。フォーマットされていないパーティションは、別々のヘッダーを持つLUKS暗号化ドライブも同じです。
    • ext4ファイルシステムは、UUIDとして汎用の一意の識別子を使用します。
    • FATとFAT32は、他のドライブと同じかもしれないより短いIDを使用します。
    • LVMは普遍的に一意の識別子を使用していないようですが、IDは非常に長くランダムで、他のドライブと衝突する危険性は無視できます。

関連情報