ファイルは次の下にありますか?
/sys/block/<xxx>/size
常に512バイトのブロックカウントを参照していますか、それともブロックカウントが変化する特別なケースはありますか?
私は興味があります:
thinkpad :: /sys/block/sdf % cat queue/physical_block_size
4096
thinkpad :: /sys/block/sdf % cat queue/logical_block_size
4096
thinkpad :: /sys/block/sdf % cat size
15408640
15408640 * 512 bytes / 1000000000 = ~8GB
->私のデバイスのサイズ、正しいですが、デバイスは4Kブロックデバイスです。
size
entry は、ブロックデバイス構造の nr_sects
フィールド を返します。従来、Unixディスクサイズのコンテキストでは、基盤となるハードウェアの製造元が「セクター」または「ブロック」と呼んでいるものに関係なく、「セクター」または「ブロック」は512バイトを意味します。信頼できるドキュメントが見つかりませんが、Linuxのソースコード(例: 1 ) 2 )を見ると、nr_sects
フィールドは実際に単位で表されているようです。 512バイトの。
別の方法でアプローチすることもできます。単位を報告するファイルがないため、定数単位である必要があります。そうしないと、アプリケーションは値の意味を認識できません。 (queue
サブディレクトリは必ずしも存在する必要はなく、ブロックデバイスによって異なります。)