HDDセクタサイズを4096バイトに切り替える

HDDセクタサイズを4096バイトに切り替える

物理セクタサイズが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各パーティションのソートオフセットを確認できます。列の値がALIGNMENT0の場合、パーティションはカーネルが知っている限り最適にソートする必要があります。

ドライブセクタサイズを切り替える前に、ドライブが論理セクタサイズの再構成をサポートしていることを確認する必要があります。論理セクタのサイズを変更すると、ディスク上のすべての既存のデータが利用できなくなる可能性が高いため、ディスクを完全に再分割し、すべてのファイルシステムを最初から再作成する必要があります。これはhdparm --set-sector-size 4096 /dev/sdXセクターサイズを変更する「標準」方法ですが、ベンダー固有のツールがある場合は、通常、特定のディスクに特別なベンダー固有のステップが必要な場合に備えて、そのツールを使用することをお勧めします。

NVMe SSD では、nvme id-ns -H /dev/nvmeXnY特に、SDD でサポートされているセクタサイズ、各セクタサイズに関連付けられた LBA 形式番号、および現在使用されているセクタサイズが表示されます。セクタサイズを変更し、必要なサイズが実際にサポートされている場合は、特定のnvme format --lbaf=<number> /dev/nvmeXnYNVMe名前空間を別のセクタサイズに再フォーマットできます。

おすすめ記事