Количество блоков блока sysfs
Под файлом находится файл:
/sys/block/<xxx>/size
Постоянно ссылается на количество блоков в 512 байт или есть ли какие-либо особые случаи, когда число блоков изменяется?
- GPIO в непривилегированном контейнере LXC
- В чем разница между procfs и sysfs?
- Использование Bash для записи на устройство в / sys?
- Какие из proc, sys и т. Д. Должны быть привязаны (или нет), когда chrooting в «заменяющий» дистрибутив?
- Разрешить пользователям без полномочий root получать статистику сетевого трафика
Мне любопытно, потому что:
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 КБ.
One Solution collect form web for “Количество блоков блока sysfs”
Запись size
возвращает поле nr_sects
структуры блочного устройства. Традиционно в контекстах размера диска Unix «сектор» или «блок» означает 512 байт, независимо от того, какой производитель базового оборудования может назвать «сектор» или «блок». Я не могу найти авторитетную документацию, но, глядя на исходный код Linux (например, 1 ) 2 ), похоже, что поле nr_sects
действительно выражается в единицах 512 байт.
Вы можете подойти к нему по-другому: поскольку файл не сообщает об этом, он должен быть постоянным, иначе приложения не будут знать, что означает значение. (Подкаталог queue
не обязательно присутствует, это зависит от блочного устройства.)