Вы покупаете флешку на 64 ГБ, втыкаете в компьютер — он показывает 59,6. Разметите её под Android — останется 55,4. Мы взяли ровно 64 000 000 000 байт, отформатировали тремя способами и посчитали, куда девается разница.
- 64 ГБ производителя — это 59,60 ГиБ в Windows. Минус 6,9% ещё до всякого форматирования, просто из-за разного счёта.
- FAT32: осталось 59,59 ГиБ. На разметку ушло около 16 МБ — копейки.
- NTFS (диски в Windows): 59,54 ГиБ, служебные структуры заняли примерно 69 МБ.
- ext4 (Android и Linux): пользователю досталось 55,39 ГиБ — на четыре гигабайта меньше, чем в FAT32.
- Мелкие файлы занимают в разы больше, чем весят. Две тысячи файлов по 1000 байт — это 1,91 МБ данных, а на диске они заняли 7,9 МБ.
Как мы мерили
Никакую настоящую флешку мы не портили. Сделали файл-образ ровно на 64 000 000 000 байт — столько байт производитель и продаёт под именем «64 ГБ». Дальше форматировали копии этого образа стандартными утилитами Linux и считывали, сколько места файловая система отдаёт под данные. Смотрели не на глаз по проводнику, а по внутренним счётчикам самой файловой системы: число кластеров и их размер.
Три варианта покрывают почти всё, с чем вы сталкиваетесь. FAT32 — флешки и карты памяти до 32 ГБ. NTFS — диски в Windows. Ext4 — внутренняя память Android и диски в Linux.
Одну систему мы намеренно не трогали — exFAT. По стандарту SD Association карты крупнее 32 ГБ с завода идут именно в ней: до 32 ГБ это SDHC с FAT32, а всё, что выше, — SDXC с exFAT. Утилиты для неё под рукой не оказалось, поэтому своих цифр по exFAT у нас нет и выдумывать их мы не будем.
Пропажа первая: 64 гигабайта производителя — не те гигабайты
Самая большая потеря случается до всякого форматирования, и виновата тут не техника, а арифметика.
Производитель считает гигабайт круглым: миллиард байт ровно. Так устроена система СИ, и так удобно печатать на коробке. Компьютер считает двойками: у него в килобайте 1024 байта, а в гигабайте 1 073 741 824.
Делим 64 000 000 000 на 1 073 741 824 и получаем 59,60. Ни один байт никуда не делся.
Это как помидоры на рынке. Продавец насыпал вам ведро и назвал его десятью килограммами — у него так принято мерить. Дома вы поставили то же ведро на кухонные весы и увидели девять с небольшим. Помидоры те же, ведро то же, никто ничего не воровал — просто мерили разными приборами. Разница у флешки — 6,9%, и чем крупнее носитель, тем она заметнее: у терабайтного диска это уже почти 70 гигабайт.
Для двоичного счёта давно придумали отдельные названия: кибибайт, мебибайт, гибибайт — сокращённо КиБ, МиБ, ГиБ. Международный стандарт существует с 1998 года.
Windows считает в двоичных единицах, но подписывает их привычными «ГБ» — отсюда и путаница. А вот Android с восьмой версии, наоборот, перешёл на счёт по СИ: в документации так и написано, что килобайт теперь равен 1000 байт. Поэтому телефон показывает круглые «128 ГБ» и с коробкой не спорит. macOS сделала то же самое ещё в 2009 году.
Выходит забавное: один и тот же носитель на компьютере и на телефоне покажет разные числа, и оба будут верными.
Пропажа вторая: разметка
Носитель надо разметить — записать оглавление, таблицы, служебные записи. Вот что показали замеры.
| Файловая система | Размер кластера | Доступно из 64 ГБ | Съела разметка |
|---|---|---|---|
| FAT32 | 32 КБ | 59,59 ГиБ | ~16 МБ |
| NTFS | 4 КБ | 59,54 ГиБ | ~69 МБ |
| ext4 | 4 КБ | 55,39 ГиБ | ~4,2 ГиБ |
FAT32 и NTFS потратили на разметку сущие копейки — десятки мегабайт на шестьдесят гигабайт. А вот ext4 забрала больше четырёх гигабайт, и на то есть две причины.
Первая — служебные структуры: по нашим замерам 324 149 блоков по 4 КБ, около 1,24 ГиБ. Ext4 заранее размечает таблицы для файлов, ведёт журнал изменений и хранит копии критичных данных, чтобы после сбоя питания диск можно было починить. FAT32 так не умеет: она проще, но и восстанавливать после сбоя там почти нечем.
Вторая причина интереснее. Ext4 сразу отложила 781 250 блоков, ровно 5% объёма, — это резерв для системных задач. Обычному пользователю эти 2,98 ГиБ недоступны. Когда диск заполняется под завязку, файлы начинают дробиться на кусочки по всему носителю, и система тормозит; пятипроцентная заначка не даёт довести дело до края.
Кстати, о претензиях к производителю: обмана в этих цифрах нет. На коробке указано настоящее количество байт, а система пересчитывает их в свои единицы. Обман — это когда продали 64 ГБ, а внутри оказалось 8, и вот такое действительно встречается.
Мы каждую неделю так же берём привычные вещи и проверяем, что там на самом деле — спокойно и по делу, без рекламных обещаний. Подпишитесь на «Техпросто» в MAX, Telegram или Дзене, и разборы будут приходить сами.
Пропажа третья, самая обидная: мелкие файлы
Потерять на этом можно куда больше, чем на всех пересчётах.
Файловая система не выдаёт место побайтово. Она нарезает носитель на одинаковые куски — кластеры — и любой файл занимает целое их число. Файл на 100 байт займёт целый кластер. Файл на 33 килобайта при кластере в 32 — уже два, и второй будет почти пустым.
Проверили. Создали две тысячи файлов ровно по 1000 байт: суммарно 1,91 МБ данных. На диске с блоком в 4 КБ они заняли 7,9 МБ вместе со служебными записями каталога — вчетверо больше, чем весят.
Теперь пересчитаем на флешку. У нашего образа в FAT32 кластер оказался 32 килобайта, и всего их получилось 1 952 645 — утилита сама выбирает такой размер для носителей этого объёма.
Выбор не произвольный. FAT32 адресует кластеры номерами ограниченной длины, и таблица этих номеров лежит на самом носителе. Чем мельче кластеры, тем их больше и тем толще таблица — на большом диске она разрослась бы до неприличия. Поэтому с ростом объёма кластер укрупняют, и заодно растёт наценка на каждый мелкий файл.
Считаем: те же две тысячи файлов заняли бы на такой флешке 62,5 МБ вместо 1,91 — в тридцать три раза больше.
Вот и ответ на вечное «скопировал папку, а места ушло втрое». Крупные файлы — фильмы, фотографии, архивы — теряют на округлении доли процента. А тысячи мелочей вроде переписки, кэша приложений или коллекции документов расходуют место с чудовищной наценкой.
- Носители большого объёма. Чем крупнее носитель, тем крупнее кластер выбирается при форматировании. У нашего 64-гигабайтного образа в FAT32 это 32 КБ — и каждый мелкий файл округляется до этой величины.
- Архивы переписки и мелких документов. Тысяча файлов по паре килобайт весит два мегабайта, а место занимает как тридцать.
- Резервные копии папка в папку. Копируете тысячи мелких файлов как есть — упакуйте их сначала в один архив, он ляжет почти без потерь.
- Выбор системы под задачу. На служебных структурах разница между FAT32 и NTFS копеечная, 53 МБ. А на кластере — принципиальная: под мелочь NTFS с её 4 КБ выгоднее в разы. В Windows размер кластера задаётся прямо в окне форматирования.
Почему на телефоне и ноутбуке пропадает ещё больше
Наши замеры показывали чистый носитель. В реальном устройстве добавляется то, что мы измерить не могли, — сама система.
Посчитаем на привычном примере, взяв пропорции из замеров. Внутренняя память смартфона размечена в ext4 или похожей системе: она заберёт под служебные структуры около двух с половиной процентов и ещё пять отложит в резерв. От «128 ГБ» остаётся примерно 118 — и только потом на этот объём ложится сама Android с предустановленными приложениями. Вот откуда ощущение, что половину съели, хотя ни один гигабайт не пропал.
У SSD есть своя особенность — резерв, который контроллер держит для себя. Часть ячеек системе не показывается вообще: они идут на замену изношенным и на служебные операции. Отсюда странные цифры вроде 240 или 480 гигабайт вместо круглых 256 и 512 — производитель отдал разницу под запас. Подробнее о том, сколько на самом деле живёт SSD, разбирали отдельно.
Что из этого следует при покупке
| Куда девается место | Сколько это на «64 ГБ» | Можно ли вернуть |
|---|---|---|
| Пересчёт гигабайтов в гибибайты | 4,4 ГиБ | Нет, это разные линейки |
| Разметка файловой системы | от 16 МБ до 1,2 ГиБ | Частично — выбором системы |
| Резерв 5% у ext4 | 3,0 ГиБ | На съёмном носителе — да |
| Округление мелких файлов до кластера | как повезёт | Да — архивом |
Из четырёх пунктов техника отвечает за три. Четвёртый — решение печатать на коробке 64 вместо 59,6. Формально всё по стандарту СИ, но сноску «1 ГБ = 1 000 000 000 байт» набирают самым мелким кеглем не случайно: производителю выгоднее круглое число, и он его берёт.
Практический вывод простой: берите носитель с запасом, а не впритык. Нужно перевезти 60 гигабайт — флешка на 64 не подойдёт, на неё физически влезет 59,59. И держите часть места свободным даже там, где резерва нет: забитый под завязку носитель работает заметно медленнее.
Ещё пара частых вопросов. Стоит ли отключать пятипроцентный резерв? На системном диске Linux — не стоит, он держит место для служебных процессов. А на съёмном носителе с одними данными резерв бесполезен, и команда tune2fs -m 0 вернёт эти три гигабайта. Портятся ли данные от всего этого? Разметка на сохранность не влияет, а вот само хранение — да: заряд в ячейках утекает, если носитель годами лежит без дела, и это мы разбирали отдельно.
Что показал замер
Из 64 гигабайтов, обещанных на коробке, до ваших файлов доходит от 59,6 до 55,4 — смотря чем размечен носитель. Больше половины недостачи не имеет отношения к технике вообще: это разница между тем, как считают люди и как считают компьютеры.
А настоящая потеря прячется там, где её не ищут. Не в пересчёте единиц, о котором спорят в отзывах, — в тридцатидвухкилобайтных кластерах, где файл на тысячу байт занимает место как тридцать два. Скопируйте на флешку папку с мелочью и сравните её вес с тем, сколько места убыло. Разница удивит сильнее, чем недостающие 4,4 гигабайта.
Если статья помогла — поделитесь с теми, кому может пригодиться. И заходите в наш канал в MAX, Telegram и Дзен — там анонсы новых материалов.