物理セクタサイズが4096で、論理サイズが512バイトのHDDディスクがいくつかあります。 SATAディスクです。 Linuxでは、512バイトではなく4kiBを論理セクタサイズとして使用したいと思います。この目標をどのように達成できますか?このディスクを4kiBモードでのみ実行するように切り替えることはできますか?
私が作成したすべてのパーティションが4kiBにソートされていることを確認するにはどうすればよいですか? 4kiBソートのために、特定のパーティションの開始と終了のセクター番号を手動で計算する必要がありますか?
私はLinuxを使用し、時にはWindowsを使用します。私は主にWindows fdiskではなくLinux fdiskを使用してパーティションを作成します。 「fdisk -b 4096」を使うだけで十分でしょうか?まあ…おそらくそうではありません。 Linuxは、与えられたディスクに使用するセクタサイズをどのように知ることができますか?
答え1
従来のMS-DOS互換モードを強制するオプションを使用する場合、またはエキスパートモードを使用してパーティションの先頭と末尾に正しいLBAブロック番号を指定しない限り、ほとんどの最新のパーティションツール(Linuxなど)はデフォルトで複数のパーティションをパーティションに分割します。で割ります。 1MBのソート。これは最新のWindowsが実行する機能でもあり、4kBセクタのサイズと最適なパフォーマンスを得るために、より大きな2乗にソートする必要があるさまざまなSSDおよびSANストレージデバイスとの互換性を保証します。
これにより、lsblk -t
各パーティションのソートオフセットを確認できます。列の値がALIGNMENT
0の場合、パーティションはカーネルが知っている限り最適にソートする必要があります。
ドライブセクタサイズを切り替える前に、ドライブが論理セクタサイズの再構成をサポートしていることを確認する必要があります。論理セクタのサイズを変更すると、ディスク上のすべての既存のデータが利用できなくなる可能性が高いため、ディスクを完全に再分割し、すべてのファイルシステムを最初から再作成する必要があります。これはhdparm --set-sector-size 4096 /dev/sdX
セクターサイズを変更する「標準」方法ですが、ベンダー固有のツールがある場合は、通常、特定のディスクに特別なベンダー固有のステップが必要な場合に備えて、そのツールを使用することをお勧めします。
NVMe SSD では、nvme id-ns -H /dev/nvmeXnY
特に、SDD でサポートされているセクタサイズ、各セクタサイズに関連付けられた LBA 形式番号、および現在使用されているセクタサイズが表示されます。セクタサイズを変更し、必要なサイズが実際にサポートされている場合は、特定のnvme format --lbaf=<number> /dev/nvmeXnY
NVMe名前空間を別のセクタサイズに再フォーマットできます。
答え2
ブロックカウンタの幅は32なので、このカウンタを使用して512Bセクタで割った最大2 TBのディスク容量を処理できます。したがって、最小。最新のディスクのアドレス指定可能部分はクラスタと呼ばれ、通常4096 = 8 x 512バイトです。内部バッファとプログラムはまだ512Bセクタを処理しますが、これは論理的な説明です。次の内容をman fdisk
読むことができます。最近のカーネルはセクタサイズを知っています。このオプションは古いカーネルでのみ使用するか、カーネルを上書きすることをお勧めします。(主にLinuxでは)デフォルト設定を変更する必要はありません。