GpartedとGdiskの最適パーティションサイズ

GpartedとGdiskの最適パーティションサイズ

4TB(4,000,225,165,312バイト)ドライブを1TBの偶数パーティションに切り捨てようとしています。

このパーティションを少なくとも1^3バイト(〜1 GB)(1000000000)のパーティションにさらに分割したいと思います。

さて、数時間のレビューの後、私はいくつかの矛盾する結論を見つけました。

  • Gpartedを使用して1000000000バイト(953.67431640625MB)パーティションを作成することはできません。
  • KDEpartedを使用して1000000000バイトのパーティションを選択でき、最終的に1000341504になりました。
    • 954MBの結果は1000341504バイトです。
    • 1000341504*1000*4(~4TB)がドライブより大きいため、4001366016000なので拡張されません。
    • 1,000,000,000,000を稼ぐと、最終結果は1,000,000,716,800です。
    • したがって、全体のサイズが大きくなるほど、追加のオーバーヘッドは減少します。
    • KDEparted は、セクタを使用しない sfdisk バックエンドを使用します。
    • Gparted は MB ソートを使用します。
  • Gdiskを使用すると、1953125000セクタ(それぞれ512バイト)を使用して1000000000000(1000 ^ 4)B(〜1 TB)パーティションを作成できます。

これを可能にするには、Gdiskを使用してセクタを持つパーティションを作成し、Gpartedを使用して移動する必要があります。ただし、1000 ^ 4Bパーティションを削除してGpartedを使用して空き容量を埋めるために新しいパーティションを作成すると、1,000,000,716,800バイト(143セクタ)が追加されます。

これはGdiskの警告「パーティションが2048セクタの境界に揃っています」と関連している可能性がありますが、Gdiskのスペースを最大化していると思います。今Gdiskを最初に使用し、Gpartedを使用し、Gdiskを再使用する必要があるようです..?この問題を解決するためのより最適化された方法はありますか?

重要な部分は、どのアライメント(バイト、シリンダー、MiB)が最善かを理解することです。この記事は次のように役立ちます。 「多くの最新のパーティショニングツールは、1M [i] Bの境界に沿ってドライブ全体を揃えます。これは賢いです。512バイトセクタ、4KBセクタ、すべてのブロックサイズのSSDなど、さまざまな種類のドライブがあります。」https://superuser.com/questions/393914/what-is-partition-alignment-and-why-whould-i-need-it

明らかに、最近のドライブは4096バイトのセクタサイズ、SSD 512の取り外し要件、およびOG 512のセクタサイズを使用しているため、1MiBが選択されました。私を混乱させるのは、MiB(1,048,576バイト)が4096バイトよりどれほど大きいかです。まだ理由を理解していませんが、MiBが支配的な陣営のようです。これまで働きました。 「2048セクタ境界」は、実際には2048バイトで始まるのではなく、2048 * 512 = 1MiBを意味します(「MiBソート」がより明確になります)。次のリンクも役立ちます。https://www.rodsbooks.com/gdisk/advice.html

バイナリと考える必要があります。 10を掛けることはできません。最大1TBまで加算することはできません。それでは、MiBが4K 4096Bセクタサイズよりはるかに大きいときにMiBアライメントを使用するのはなぜですか?これは未来を見つめる試みですか?

ベストアンサー1

バイト解像度に分割することは不可能です。可能であっても、無限のソートの問題が発生する可能性があります。

セクタサイズは512または4096で、すべてのパーティションサイズはこのサイズの倍数でなければなりません。慣例的に、そうしない妥当な理由がない限り、MiBソート(1048576バイトの倍数)に固執する必要があります。

別の問題は、パーティションテーブル自体に少しのスペースが必要なため、どのパーティションもセクタ0から起動できないことです。同様に、ドライブの最後のセクタ(GPTバックアップヘッダに使用されます)は使用できません。

したがって、すべてのパーティションのサイズが同じでバイト境界を超えないようにしたい場合は、おおよその内容を助けることはできません。

以下は、4 TBディスク上の1 TBパーティションの例です。

(parted) unit b
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 4000225165312B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start           End             Size           File system  Name  Flags
 1      1048576B        999999668223B   999998619648B
 2      1000000716800B  1999999336447B  999998619648B
 3      2000000385024B  2999999004671B  999998619648B
 4      3000000053248B  3999998672895B  999998619648B

(parted) unit mib
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 3814912MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start       End         Size       File system  Name  Flags
 1      1.00MiB     953674MiB   953673MiB
 2      953675MiB   1907348MiB  953673MiB
 3      1907349MiB  2861022MiB  953673MiB
 4      2861023MiB  3814696MiB  953673MiB

これは単なる例であり、他の境界を選択することもできます。

より多くのパーティション(1 GBを参照)を作成する必要がある場合は、これらの境界を決定するスクリプトを直接作成する必要があります。 GPTにはデフォルトで128のパーティション制限があります。

おすすめ記事