Все файловые системы Linux имеют размер блока 4 КБ. Скажем, у меня есть 10 МБ устройства хранения данных жесткого диска. Это означает, что я имею 2 560 блоков в наличии, и скажем, я скопировал 2 560 файлов каждый имеющий 1 КБ размера. Каждый блок на 1 Кбит займет 1 блок, хотя он не заполняет весь блок.
Таким образом, мой весь диск теперь заполнен, но тем не менее у меня есть 2560x3 КБ свободного пространства. Если я хочу хранить другой файл, говорят, что 1 МБ файловая система позволит мне хранить? Это запишет в свободном пространстве, оставленном в отдельных блоках? Там какое-либо понятие решает эту проблему?
Я ценил бы некоторое разъяснение.Заранее спасибо
Размер блока по умолчанию составлял 512 байтов начиная с первого Linux когда-либо. Кроме до недавнего времени 4k размеры блока, где представлено для питания когда-либо увеличивающийся размер дисков. Это на самом деле даже почти диктуют дисковые аппаратные средства (см. больше: https://unix.stackexchange.com/questions/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd).
все же для Вашего конкретного вопроса: Вы правы, что все файлы тратят впустую неиспользованные байты последнего блока на многих типах файловых систем, который особенно расточителен для маленьких файлов. Но btfrs и reiserfs, кажется, в состоянии справиться, acvording к https://en.m.wikipedia.org/wiki/Block_suballocation
Файловые системы могут иметь размер блока от 512 до (обычно) 65536. Размер блока мог быть указан как mkfs.xxx опция. Значение по умолчанию blocksize большей части Linux FSS - 4096.
Некоторые файловые системы поддерживают выделение подблока и/или упаковка хвоста. ext2/3/4, xfs AFAIK - нет. Если Вы планируете заполнить раздел несколькими маленькими файлами, Вы могли бы уменьшить потраченное впустую пространство "хвоста" путем уменьшения blocksize к 512 или 1024.