hdparm -I /dev/sda
出力:
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
stat
somefile出力:
Size: 509 Blocks: 8 IO Block: 4096 regular file
IOブロックが4096である理由512バイトの物理セクターサイズと同じではありませんか?
いいえ。ディスクのブロックサイズは、ディスク上で処理されるデータのバイトチャンクの大きさを示しています。ファイルに何かを書き込む場合、CPU /マザーボードはドライブコントローラに、ディスクのどのセクターにどのバイトを書き込む必要があるかを伝えなければなりません。これは、512バイトのチャンクでのみ発生する可能性があります。
論理セクターサイズと物理セクターサイズの違いは次のとおりです。物理セクターサイズは、ディスク内でデータが物理的に編成されるサイズです。論理セクターサイズとは、CPU /マザーボードのチャンクがドライバーコントローラーカードと通信できることを意味します(多くの場合、これはマザーボードの一部でもありますが、OSはディスクの読み取りを実行するときに生成するブロックサイズを知る必要があります) /書き込み操作)。
数十年以来、物理セクターサイズも偽物であり、その正確な詳細はハードディスクメーカーの企業秘密です。ただし、OSはこの偽造データを知る必要があります。これは、ディスク標準(SCSI、PATA、SATAなど)の一部であるためです。したがって、物理セクターサイズはほとんどの場合、実際的な意味はありません。
いくつかの新しいディスクでは、512の代わりに4096の論理セクターを使用するという新しい開発があります。古いATAプロトコルのセクター番号は32ビットサイズであるため、40億セクター(= 2テラバイト)のディスクはこれよりも大きいため、これが必要です。それらに対処する必要があります。
Statコマンドは、ファイルシステムのブロックサイズを示します。また、ほとんどのファイルシステムは、システム上のブロックにデータを編成します。シングルバイトファイルを作成する場合、ディスクに4096バイトを割り当てる必要があります。 Reiserfsなどの非ブロック指向のファイルシステムはめったにありませんが、それでもブロックで編成されていますが、割り当て可能な最小ディスクサイズは32バイトです。したがって、1バイトのファイルはreiserfsファイルシステムで32バイトのみを割り当てます。