fdiskは、パーティションが誤ってソートされているように見えても、正しくソートされていないと報告します。

fdiskは、パーティションが誤ってソートされているように見えても、正しくソートされていないと報告します。

Ubuntu 20.04用のブートドライブに分割しようとしている新しい4TB Western Digital SN850X NVMe SSDドライブがあります。私が何をしても、fdiskはパーティションが論理(512バイト)および物理(8388608バイト)セクタサイズに合わせてソートされているように見えますが、パーティションが正しくソートされていないと報告します。

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 3.65 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model:                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 8388608 bytes
I/O size (minimum/optimal): 8388608 bytes / 8388608 bytes
Alignment offset: 6832128 bytes
Disklabel type: gpt

Device      Start        End    Sectors  Size Type
/dev/sda1   16384     671743     655360  320M EFI System
/dev/sda2  671744 7814035455 7813363712  3.7T Linux filesystem

Partition 1 does not start on physical sector boundary.
Partition 2 does not start on physical sector boundary.

パーティション 1 は、物理セクターのサイズと一致するディスクの正確に 8MiB (16384 * 512) であるセクター 16384 で始まりますが、fdisk は 6832128 バイトという奇妙な値が原因でソートが正しくないと主張します。

別のalign-checkレポートは同じです。

(parted) align-check
alignment type(min/opt)  [optimal]/minimal? minimal                       
Partition number? 1                                                       
1 not aligned: 16384s % 16384s != 13344s
(parted) align-check                                                      
alignment type(min/opt)  [optimal]/minimal? minimal                       
Partition number? 2                                                       
2 not aligned: 671744s % 16384s != 13344s

ここで、Parted はパーティションが 13344 セクタ (6832128 バイト) だけ誤ってソートされたことを意味するように見えます。これは fdisk によって報告された値と同じです。しかし、明らかに「16384s%16384s」が整列している。

6832128バイト/13344セクタと呼ばれる奇妙にソートされていない値はどこから来ましたか?どんな提案やアイデアにも感謝します!

答え1

テキストを参照してください。

Alignment offset: 6832128 bytes

fdisk -l出力から。

このSuSEサポート記事パーティションのソートに関する情報は次のとおりです。ソートオフセット:

特別な場合があります。内部4kブロックサイズが導入されたとき、一部のHDDメーカーは実際には論理セクタ数を1ずつ移動して、典型的なDOSパーティションテーブルのソートの問題を解決しました。したがって、セクタ63で始まると、セクタ64(つまり内部ブロック)に変換されます。 8)。一部のハードドライブは、これらの1ビット移動を実行するスイッチで構成することもできます。 SATA仕様はまた、オペレーティングシステムがパフォーマンスを最適化するために適切なアクションを実行できるように、ドライブがこれらのオフセットを報告するメカニズムも提供します。私たちが知っている限り、そのようなドライブは存在しません。そして、その一部だけがオフセットを正しく報告しました。

ドライブがソートオフセットを報告すると、SLE11-SP1(またはそれ以上)のLinuxカーネルは/ sys / block / $ DEV / alignment_offset属性(セクター内)を介して報告します。

したがって、あなたのディスクは非常に特別なケースのようです。 8MiBの物理ブロックを使用しているように見えるだけでなく、何らかの理由で最初のブロックのサイズも6832128バイトで均一ではありません。報告された情報が正しいと仮定します。

Western Digital SN850Xは(正確に述べたように)NVMeドライブなので、アクセスするという事実は、/dev/sdaPCIeバスとドライブの間にある種のコンバータデバイスがあることを意味します。直接接続された非企業NVMeデバイスが表示されます。 as/dev/nvmeNn1と次のように分割されます/dev/nvmeNn1pP(/dev/sd*ここで N = NVMe デバイス番号、P = パーティション番号).

(NVMeデバイス名ではn1名前空間番号です。ほとんどの非エンタープライズNVMeデバイスは単一の名前空間のみをサポートしますが、デバイス命名方式は複数の名前空間をサポートするように設計されています。 。スナップショット)。

関連情報