Я щойно помітив, що будь-яка з {2,3,4} файлових систем, яку я намагаюся створити на 500G HDD, не використовує весь наявний простір (466G). Я також спробував reiser3, xfs, jfs, btrfs і навіть vfat. Усі вони створюють fs розміром 466G (як показано df -h ). Однак ext * створює fs 459G. Вимкнення зарезервованих блоків збільшує простір, доступний користувачеві, але розмір fs все ще становить 459G.
Те ж саме для HDD 1 Tb: 932G рейзерфи, 917G ext4.
Отже, що це за 1,5% різниця? Чому це трапляється і чи є спосіб зробити ext заповнити весь об'єм?
UPD: Усі тести, виконані на одній машині, на одному і тому ж жорсткому диску тощо. Не має значення, чим 466G відрізняється від маркетингових 500G. Проблема полягає в тому, що вона відрізняється для різних FS '.
Про df - він показує загальний розмір FS, використаний розмір та вільний простір. У цьому випадку я маю:
для рейзерфів:
/ dev / sda1 466G 33M 466G 1% / мнт
для ext4:
/ dev / sda1 459G 198M 435G 1% / мнт
Якщо я відключу бронювання кореневого блоку, 435G змінюється на 459G - повний розмір fs (мінус 198M). Але сам fs все ще 459G для ext4 і 466G для рейзера!
UPD2: Заповнення обсягів реальними даними через dd:
reiserfs:
fs: ~ # dd, якщо = / dev / zero of = / mnt / 1 dd: записувати в «/ mnt / 1»: На пристрої кончилось місце 975702649 + 0 записей рахуно 975702648 + 0 записей написано скопіровано 499559755776 байт (500 ГБ), 8705,61 c, 57,4 MB / c
ext2 з вимкненим бронюванням блоків (mke2fs -m 0):
fs: ~ # dd, якщо = / dev / zero of = / mnt / 1 dd: записувати в «/ mnt / 1»: На пристрої кончилось місце 960356153 + 0 записей рахуно 960356152 + 0 записей написано скопіровано 491702349824 байта (492 ГБ), 8870,01 c, 55,4 Мб / с
Вибачте за російську мову, але я запустив її в мові за замовчуванням і повторюю її занадто довго. Не має значення, вихід dd очевидний.
Отже, виходить, що mke2fs дійсно створює меншу файлову систему, ніж інші mkfs.
LANG=C fooабоLC_ALL=C foo