GPTパーティションテーブルが必要なため、partedを使用して非SSDハードディスクをパーティション分割しています。
parted /dev/sda mklabel gpt
ここで、正しく配置されたパーティションを作成しようとしているので、次のコマンドを使用して、最初のセクターがどこから始まるかを確認します。
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
セクター34から始まることがわかります(これは、このパーティションテーブルが使用されるときのデフォルトです)。
だから、私が試した最初のパーティションを作成するには:
parted /dev/sda mkpart primary 63s 127s
8の倍数なので、セクター64に揃えますが、次のように表示されます。
警告:最適なパフォーマンスを得るために、結果のパーティションは適切に調整されていません。
ハードディスクの論理セクターサイズと物理セクターサイズはどちらも512バイトです。
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
正しく配置されたパーティションを作成するにはどうすればよいですか?何が悪いのですか?
パーティションをparted
に合わせるには、--align
オプション。有効な配置タイプは次のとおりです。
その他の便利なヒントは、サイズをパーセンテージで設定して整列させることができることです。 0%で開始し、100%で終了します。例えば:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
Arch Wiki から:
パーティションを作成するとき、partedは不適切なパーティション配置について警告する場合がありますが、適切な配置についてのヒントはありません。例えば:
(parted) mkpart primary fat16 0 32M
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?
警告は、パーティションstart
がアライメントされていないことを意味します。
Ignore
と入力して先に進みます。パーティションテーブルをセクター単位で印刷して、開始位置を確認し、パーティションを削除/再作成します。警告が停止するまで、開始セクターは2の累乗に切り上げられます。一例として、512Bセクターのフラッシュドライブで、Partedは2048の倍数であるセクター(1MBアライメント)でパーティションを開始することを望んでいました。
さらに、このセクションのすぐ上に、より正確なIEC KiB、MiB、GiBなどのバイナリユニットは、精度の低いKB、MB、GBだけでなく、ユニットにも受け入れられると述べています。 、など.
個人的に、これを解決した私の正確なコマンドは:
mkpart hd ext4 1024KiB 8470MB
それは文句を言わなかった、私はそれが1MBの整列を望んでいたと思います。
私の解決策はgdiskを使用することでした。これにより、デフォルトで2048セクター(1024KiB)のパーティションアライメントを自動的に実行できますが、エキスパートメニューで変更できます。
マイナーな修正。私が理解しているように、GPTディスクにはもうパーティションタイプがありません。すべて「プライマリ」です。コマンド「mkpart primary」は、msdosディスクで行うようにプライマリパーティションを作成しません。プライマリと呼ばれるパーティションを作成するだけです。コマンドも使用できます
(parted) mkpart Parted-FUN! 21476MB 4000787MB
(parted) print
Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdf: 4000787MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1.05MB 17181MB 17180MB ext4 raid-var
2 17181MB 21476MB 4295MB raid-swap
3 21476MB 4000786MB 3979310MB Parted-FUN!
論理パーティションを作成しようとすると、混乱が生じる可能性があります。
(parted) mkpart extended 21476MB 4000787MB
(parted) mkpart logical 21476MB 1000787MB
Warning: You requested a partition from 21476MB to 1000787MB.
The closest location we can manage is 4000786MB to 4000786MB.
Is this still acceptable to you?
Yes/No? Yes
(parted) print
Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdf: 4000787MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1.05MB 17181MB 17180MB ext4 raid-var
2 17181MB 21476MB 4295MB raid-swap
3 21476MB 4000786MB 3979310MB extended
4 4000786MB 4000786MB 0.00MB logical
「拡張」というパーティション内に「論理」というパーティションを作成することはできません。
@ likによる承認済みの回答 は、優先配置を指定する方法を示しています。ただし、partedは常に結果のパーティションをチェックするためにそのアライメントを使用しますが、常にそのアライメントでパーティションを作成するわけではありません。
TL; DR:1MiBが最適な配置の場合、0%を指定すると、200MiB以上のディスクで機能します。小さいディスクまたは大きい配置の場合、0Gを指定すると、0%が機能しない場合に機能します。理由については以下をご覧ください。
Partedは、パーティションを作成するときに配置の制約を満たそうとしますが、要求された値から大きく逸脱することもありません。 「多すぎる」と見なされるのは、位置を指定した方法によって異なります。
Mkpartコマンドに開始(または終了)位置を指定すると、許容範囲の値が内部的に生成されます。この範囲は、指定した値を中心とし、使用した単位サイズの半分で両側に等しく拡張されます(これが私が コードから読み取ったもの 、 コメントは言う 1両端のフルユニットサイズ)。
たとえば、「10M」を指定すると、9.5Mから10.5Mの間の任意の位置を使用しようとします。同じことがパーセンテージにも当てはまるので、0%を指定すると、0%から0.5%の間の任意の値が使用されます(明らかにマイナスにはなりません)。
1つの例外は、2の累乗(1000のKではなく1024のKiBなど)を使用する場合、partedは正確な位置を指定しようとしていると想定し、指定された正確な値のみを考慮することです。
通常、最適な配置は1MiBに配置されているように見えるため、KユニットとMユニットには、最適な配置に到達するための十分なスペースがないことがよくあります。 Gでの位置の指定には十分な余地があるはずですが、通常は%でも問題ありません。
そのため、制限はありますが、通常は0%が機能します。