Количество блоков блока sysfs

Под файлом находится файл:

/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 -> размер моего устройства, его правильный, но устройство является блочным устройством 4 КБ.

  • Как узнать, что я могу сделать с / proc и / sys
  • Как сопоставить / sys / bus / usb / devices с / dev / video *?
  • Программно определить IRQ, связанные с сетевым интерфейсом
  • Получить имя модели блока и производителя от псевдо-fs
  • Какие из proc, sys и т. Д. Должны быть привязаны (или нет), когда chrooting в «заменяющий» дистрибутив?
  • ЖК-подсветка Sysfs в качестве теплового устройства
  • при запуске `udevadm test`:` no db file to read / run / udev / data / + gpio_sw: PA7: Нет такого файла или каталога`
  • GPIO в непривилегированном контейнере LXC
  • One Solution collect form web for “Количество блоков блока sysfs”

    Запись size возвращает поле nr_sects структуры блочного устройства. Традиционно в контекстах размера диска Unix «сектор» или «блок» означает 512 байт, независимо от того, какой производитель базового оборудования может назвать «сектор» или «блок». Я не могу найти авторитетную документацию, но, глядя на исходный код Linux (например, 1 ) 2 ), похоже, что поле nr_sects действительно выражается в единицах 512 байт.

    Вы можете подойти к нему по-другому: поскольку файл не сообщает об этом, он должен быть постоянным, иначе приложения не будут знать, что означает значение. (Подкаталог queue не обязательно присутствует, это зависит от блочного устройства.)

    Linux и Unix - лучшая ОС в мире.