web-dev-qa-db-ja.com

LinuxでGPTのみのパーティションテーブルを作成するにはどうすればよいですか?

これまで試したすべてのツールは、デュアル(GPTおよびMBR)パーティションテーブルを作成することしかできませんでした。GPTパーティションの最初の4つは、互換性のあるMBRパーティションにミラーリングされていました。

これは私が望むものではありません。純粋なGPTパーティションテーブルが必要です。つまり、ディスク上にMBRテーブルがないため、それらの間で同期も行われません。

どういうわけか可能ですか?

あなたの編集に対処するには:

あなたの質問の編集に今まで気づきませんでした。今書いているように、質問は私が最初に答えたときとはまったく異なります。 ミラーは、仕様ではnotです。実際、これはhybrid-MBRパーティションと呼ばれるかなり危険で醜いハックです。フォーマット。この質問はlotの方が理にかなっています-実際、まったく馬鹿げていません。

GPTディスクとハイブリッドMBRディスクの主な違いは、GPTのMBRはディスク全体を単一のMBRパーティションとして記述し、ハイブリッドMBR(極端に醜い)互換性のためにヘッジを試み、最初の4つのパーティションでカバーされる領域のみを記述します。その状況の問題は、hybrid-MBRの互換性の試みそもそもGPTの保護MBRの目的を完全に打ち負かす

以下に示すように、Protective MBRは、protectの愚かなアプリケーションからのGPTディスクを想定しています、ただし、ディスクの一部がそれらに割り当てられていないように見える場合は、すべての賭けが無効になっています。 助けになる場合はハイブリッドMBRを使用しないでください-これは、Macの場合はデフォルトのBootcamp構成を使用しないでください

一般に、EFI/GPT関連の問題に関するアドバイスを探す場合は、他のどこにも行きません(少し回り道を除いて ここ最初)がto rodsbooks.com


ええと...

これ(以前は)一種のばかげた質問-保護MBRなしでGPTディスクをパーティション分割する方法を尋ねていると思います。その質問への答えはできません-GPTはディスクパーティションテーブルフォーマットの標準であり、その標準 指定 はディスクの先頭に配置された保護MBRなので見る?

enter image description here

あなたができることはMBRを消去するかそれを上書きすることです-それはとにかくmost GPT-awareアプリケーションがパーティションデータにアクセスするのを防ぎませんが、-reasonは含まれています仕様はnon-GPT対応のアプリケーションがパーティションテーブルにねじ込まれるのを防ぐためのものです。ディスク全体がすでに単一のMBRタイプのパーティションであると報告するだけでこれを防ぎ、すでにスペースが割り当てられているため、誰もファイルシステムを書き込もうとしないでください。 MBRを削除すると、その保護が削除されます。

いずれにせよ、以下がその方法です。

  • これにより、4G ./imgファイルがNULでいっぱいになります。

    </dev/zero >./img \
    dd ibs=4k obs=4kx1k count=1kx1k
    

    1048576+0 records in
    1024+0 records out
    4294967296 bytes (4.3 GB) copied, 3.38218 s, 1.3 GB/s
    
  • これにより、パーティションテーブルが書き込まれ、先頭にProtective MBRが含まれます。

    • printfの各引数の後には\newlineが続き、gdiskのstdinに書き込まれます。
    • gdiskは、コマンドがインタラクティブに入力されたかのように解釈し、それに応じて動作して、GUIDパーティションテーブルに2つのGPTパーティションエントリを作成し、の先頭に書き込みます。 ./imgファイル。
    • すべての端末出力は>/dev/null(大量であり、とにかく現在結果を確認するため)にダンプされます。

      printf %s\\n o y n 1 '' +750M ef00 \
                       n 2 '' '' '' ''   \
                   w y | >/dev/null      \
      gdisk ./img      
      
  • これにより、./imgの最初の2Kでオフセットを伴うprstringsの4列のフォーマットされた表現が取得されます。

    <./img dd count=4 |
    strings -1 -td    | 
    pr -w100   -t4
    

    4+0 records in
    4+0 records out
    2048 bytes (2.0 kB) copied, 7.1933e-05 s, 28.5 MB/s
    

        451 *           1033 K           1094 t           1212 n
        510 U           1037 >           1096 e           1214 u
        512 EFI PART    1039 ;@fY        1098 m           1216 x
        524 \           1044 30          1153 =           1218
        529 P           1047 L           1158 rG          1220 f
        531 (           1050 E           1161 y=i         1222 i
        552 "           1065 w           1165 G}          1224 l
        568 V           1080 E           1170 $U.b        1226 e
        573 G           1082 F           1175 N           1228 s
        575 G           1084 I           1178 C           1230 y
        577 y           1086             1180 b           1232 s
        583 G           1088 S           1185 x           1234 t
        602 Ml          1090 y           1208 L           1236 e
       1024 (s*         1092 s           1210 i           1238 m
    

MBRがどこで終了するかがわかりますね。バイト512。

  • これにより、./imgの最初の512バイトに512スペースが書き込まれます。

    <>./img >&0 printf %0512s
    

そして今、私たちの労働の成果のために。

  • これは、./imgでのgdiskのインタラクティブな実行です。

    gdisk ./img
    

    GPT fdisk (gdisk) version 1.0.0
    
    Partition table scan:
      MBR: not present
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid GPT with corrupt MBR; using GPT and will write new
    protective MBR on save.
    

    Command (? for help): p
    

    Disk ./img: 8388608 sectors, 4.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 0528394A-9A2C-423B-9FDE-592CB74B17B3
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 8388574
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 2014 sectors (1007.0 KiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048         1538047   750.0 MiB   EF00  EFI System
       2         1538048         8388574   3.3 GiB     8300  Linux filesystem
    
12
mikeserv

あなたの場合、常に2TBを超えるパーティションを作成する必要があります。 partedコマンドを使用する必要があります。

パーティションコマンドを作成する前に、ディスクラベルをGPTに設定する必要があります。 GPTはGUIDパーティションテーブル形式(GPT)の略です。以下に示すように、partedのmklabelコマンドを使用して、ディスクラベルをGPTに設定します。

# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print
Error: /dev/sdb: unrecognised disk label

(parted) mklabel gpt

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Parted mkpartを使用して2TBを超えるパーティションを作成します。

以下に示すように、partedのmkpartコマンドを使用して、2TBを超えるパーティションを作成します。この例では、約6TBのサイズのパーティションを作成しています。

#parted /dev/sdb

(parted) mkpart primary 0GB 5909GB

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5909GB  5909GB               primary
0
Joe Mantil