私が経験した限りでは、パーティション分割時にfdisk
最後の数セクターをパーティションに含めることはできません。これは MiB または IO ブロックのアラインメントによるものだと常に思っていましたが、使用できる最後のセクターがアラインされていないことに気付きました。さまざまなベンダーの複数の HDD でいくつかのツールを試しましたが、常に最後の 30 セクターがアラインメントされていません。たとえば、次のようになります。
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
last MiB-aligned sector: 976773119
last IO-block-aligned (4KiB) sector: 976773167 (the last one)
last usable sector: 976773134
もちろんこれは大きな問題ではありませんが、その理由が気になります。不良セクタと関係があるのでしょうか?
答え1
きっとあなたはGUID パーティション テーブル (GPT)ディスク上の「最後の使用可能なセクター」番号を取得します。
最後の使用可能なセクターがセクターの合計数より 34 セクター少ないことに気付きましたか?
これをチェックしてください:
(ソース)
これらの「使用できない」33 セクターは、実際にはバックアップ GPT 用です。(つまり、最後まで LBA -34 です。)
また、最後の MiB に揃えられたセクターと最後の I/O ブロックに揃えられたセクターがなぜそのようになっているのかを推測することもできます。
注記:おそらくGPTを使用せずに最後のセクター番号に到達したのでしょう。レガシー MS-DOS パーティション テーブルディスクの先頭の 512 バイト (1 論理セクター) のみを占有し、末尾には何も占有されません。
ディスク情報
Logical sector size: 512 (used in calculations)
Physical sector size: 4096 (used for I/O block alignment)
物理ブロックの配置
最後に整列したセクター:976773167
Physical sector size: 4096
Divide by logical sector size: ÷512
----
Sectors for block alignment: 8
Total sector count: 976773168
Divide by alignment sectors: ÷8
---------
Max 4KiB blocks: 122096646
Unusable sectors remainder: 0
Total sector count: 976773168
Subtract remainder: -0
---------
First unalignable sector: 976773168
Your last aligned sector: 976773167
1MiB ブロックアラインメント
最後に整列したセクター:976773119
1MiB in bytes: 1048576
Divide by logical sector size: ÷512
-------
Sectors for 1MiB alignment: 2048
Total sector count: 976773168
Divide by alignment sectors: ÷2048
---------
Max 1MiB blocks: 476940
Unusable sectors remainder: 48
Total sector count: 976773168
Subtract remainder: -48
---------
First unalignable sector: 976773120
Your last aligned sector: 976773119