バイナリを呼び出さずに常に動作するようにブロックデバイスまたはそのパーティションのいずれかのバイトサイズを取得するには、次のように正確です。
/sys/block/sda/sda1/size
or /sys/block/sda/size
次の乗算:
/sys/block/sda/queue/physical_block_size
または論理ブロックサイズまたはハードウェアセクタサイズ?
もっと良い方法がありますか?
ベストアンサー1
より多くの研究の最後に、ついに答えを見つけました。
Linuxは、デバイスの実際のブロックサイズに関係なく、常にセクタを512バイトの長さで処理します。
私は次のような意見に導きました。 ブロックデバイスサイズの決定
愚かなように見えますが、[size]に512を掛けます。
私は私のプログラムが壊れたくないので、これが今から15年後でもまだ正しい仮定であることを願っています。物理ブロックサイズインターネット検索で見つけたように、時には4096かもしれないので、間違っているようですが、それでも読む価値があるかもしれません。論理ブロックサイズまたはハードウェアセクタサイズいつも512なのに?これについて意見がありますか?