Добавить в корзинуПозвонить
Найти в Дзене
Не баг, а фича

🕵️ Тайная жизнь файлов: почему Windows показывает размер папки больше, чем есть на самом деле, и о чем молчит Microsoft

Открываете свойства папки — и видите два числа: «Размер» и «На диске». Первое — 500 МБ, второе — 1.2 ГБ. Как так? Файлы же не резиновые. Или другая, еще более странная ситуация: папка весит 10 ГБ, а диск при этом заполнен на 15 — куда делись 5 гигабайт, если внутри только эта папка? Обычный пользователь пожимает плечами и списывает на «глюки Windows». Опытный — начинает расследование. Правда в том, что ваша файловая система NTFS (а именно она стоит на 99% компьютеров с Windows) устроена куда хитрее, чем кажется. Она хранит данные не так, как вы себе представляете, и умеет прятать информацию в местах, о существовании которых вы даже не догадываетесь. Microsoft, разумеется, не кричит об этом на каждом углу — зачем пугать пользователей? Но мы заглянем под капот. 📌 Больше секретов файловой системы Windows и скрытых возможностей, о которых молчат в официальной документации, мы публикуем здесь:
👉 Канал МАХ: «Не баг, а фича»
👉 Telegram: Секретные настройки Windows Первое, с чем сталкиваетс
Оглавление

Открываете свойства папки — и видите два числа: «Размер» и «На диске». Первое — 500 МБ, второе — 1.2 ГБ. Как так? Файлы же не резиновые. Или другая, еще более странная ситуация: папка весит 10 ГБ, а диск при этом заполнен на 15 — куда делись 5 гигабайт, если внутри только эта папка? Обычный пользователь пожимает плечами и списывает на «глюки Windows». Опытный — начинает расследование.

Правда в том, что ваша файловая система NTFS (а именно она стоит на 99% компьютеров с Windows) устроена куда хитрее, чем кажется. Она хранит данные не так, как вы себе представляете, и умеет прятать информацию в местах, о существовании которых вы даже не догадываетесь. Microsoft, разумеется, не кричит об этом на каждом углу — зачем пугать пользователей? Но мы заглянем под капот.

📌 Больше секретов файловой системы Windows и скрытых возможностей, о которых молчат в официальной документации, мы публикуем здесь:
👉
Канал МАХ: «Не баг, а фича»
👉
Telegram: Секретные настройки Windows

📊 Часть 1. Два размера: почему «Размер» и «На диске» — это не одно и то же

Первое, с чем сталкивается каждый, кто хоть раз открывал свойства файла или папки, — это два параметра: «Размер» (Size) и «На диске» (Size on disk). Чаще всего второе больше первого. Иногда — значительно больше. Иногда — меньше (и вот это уже настоящая магия). Разберемся, что к чему.

🔹 Кластеры — «кирпичики» вашего диска

Представьте, что ваш жесткий диск или SSD — это складское помещение, разбитое на ячейки одинакового размера. В каждую ячейку нельзя положить часть вещи — только целую. Эти ячейки в мире файловых систем называются кластерами (или блоками выделения) .

Размер кластера определяется при форматировании диска. Чем больше диск, тем больше стандартный размер кластера. На современных жестких дисках объемом 1-2 ТБ размер кластера по умолчанию составляет 4096 байт (4 КБ) .

И вот тут начинается засада. Вы сохраняете текстовый файл с одним словом «Привет» — он занимает 8 байт. Но на диске ему все равно выделяется целый кластер — 4 КБ. Вы теряете 4088 байт на воздух. Это называется внутренняя фрагментация .

Файл размером 5 КБ займет уже два кластера (8 КБ на диске). Файл ровно в 4 КБ — один кластер, и здесь «Размер» и «На диске» совпадут.

Формула простая:

  • Размер — это сколько реально данных в файле (сумма всех байтов).
  • На диске — это сколько кластеров занял файл, умноженное на размер кластера .

Если в папке тысячи мелких файлов (логи, конфиги, временные файлы), разница может составлять десятки и сотни мегабайт потерянного пространства.

🔹 Почему иногда «На диске» меньше «Размера»?

А вот это уже интересно и противоречит логике. Как файл может занимать на диске меньше места, чем его реальный размер? Это возможно в трех случаях:

  1. Сжатие NTFS (NTFS Compression). Windows умеет сжимать файлы и папки «на лету». Файл размером 100 МБ может быть сжат до 70 МБ, и на диске он займет именно эти 70. Система показывает исходный размер (100) и реальный на диске (70) .
  2. Разреженные файлы (Sparse files). Бывают файлы, в которых большие участки заполнены нулями (например, образы виртуальных машин). Вместо того чтобы записывать миллионы нулей на диск, NTFS просто помечает эти области как «пустые», не выделяя под них место. Размер файла числится огромным, а на диске — копейки .
  3. Жесткие ссылки (Hard Links). Один и тот же физический файл может иметь несколько имен и располагаться в разных папках. Проводник при подсчете размера папки посчитает этот файл дважды (по каждому вхождению), а на диске он физически занимает место только один раз . Самый яркий пример — папка WinSxS в Windows. Она содержит компоненты системы, на которые жестко ссылаются другие папки (System32, DriverStore и т.д.). Проводник показывает, что WinSxS весит 20 ГБ, но реально на диске уникальные данные занимают 8 ГБ, остальное — ссылки .

🕵️ Часть 2. Альтернативные потоки данных (ADS): главная тайна NTFS

Теперь переходим к тому, о чем Microsoft действительно молчит. У каждого файла в NTFS есть не только основное содержимое, но и возможность иметь дополнительные, скрытые потоки данных (Alternate Data Streams — ADS) .

Что это значит? Файл — это как конверт. В основном отделении лежит то, что вы видите в Блокноте или Word. Но в этот же конверт можно положить дополнительные «секретные» листы, которые никак не видны в Проводнике, не учитываются в «Размере» файла, но реально занимают место на диске .

🔹 Как это выглядит технически

Полное имя файла в NTFS выглядит так: имя_файла:имя_потока:$DATA . Основной поток обычно называется :$DATA без указания имени. Альтернативный — например, :secret:$DATA.

Проводник Windows и большинство программ работают только с основным потоком. Альтернативные потоки для них — невидимки. Но место на диске они занимают, и это место включается в параметр «На диске», но не включается в параметр «Размер» .

🔹 Самый известный пример: Zone.Identifier

Когда вы скачиваете файл из интернета, Windows добавляет к нему альтернативный поток с именем :Zone.Identifier:$DATA . Внутри этого потока — буквально несколько байт, которые сообщают системе: «Этот файл пришел из опасной зоны Интернета» (ZoneId=3). Именно из-за этого потока при запуске скачанной программы появляется окошко с предупреждением .

Сам файл, допустим, весит 1 МБ. Поток :Zone.Identifier добавляет еще несколько десятков байт. Проводник показывает «Размер» — 1 МБ. А «На диске» будет 1 МБ + несколько кластеров под поток. Разница небольшая, но она есть.

🔹 Криминальный потенциал ADS

А теперь представьте, что в альтернативный поток можно записать что угодно. Текстовый файл, картинку, исполняемый EXE-файл . И это совершенно не будет видно обычными средствами.

-2

Вот простой пример из командной строки :

  1. Создаем обычный текстовый файл: echo Привет, мир > readme.txt
  2. Добавляем скрытый поток: echo Секретное послание > readme.txt:hidden
  3. Проводник показывает readme.txt размером 12 байт. А внутри есть еще 20 байт скрытого текста.

Файл readme.txt может быть размером 1 КБ, а в его альтернативном потоке может лежать EXE-файл на 10 МБ. Проводник покажет «Размер» — 1 КБ. «На диске» будет 1 КБ + 10 МБ + накладные расходы. Именно поэтому возникает ситуация, когда сумма размеров всех видимых файлов в папке не сходится с размером папки на диске .

Microsoft не афиширует ADS по двум причинам:

  1. Это мощный инструмент для совместимости и метаданных (Zone.Identifier, информация о дедупликации, индексные атрибуты).
  2. Это идеальный вектор для скрытого хранения вредоносного кода, и компания не хочет привлекать к нему лишнее внимание.

🛠️ Часть 3. MFT — скрытый монстр, пожирающий место (500+ символов)

Вы когда-нибудь задумывались, где Windows хранит имена всех ваших файлов, их атрибуты, даты создания и права доступа? Для этого существует Master File Table (MFT) — Главная таблица файлов .

Представьте MFT как огромный каталог в библиотеке. В нем записано про каждую книгу (файл): название, автор, где стоит на полке. В NTFS этот «каталог» сам хранится в виде файлов на том же диске. И он занимает место.

🔹 Как MFT ворует место

  • При форматировании диска под MFT резервируется 12.5% пространства (обычно) . Да, ⅛ вашего диска формально зарезервирована под служебные нужды.
  • Каждая запись в MFT (на каждый файл и папку) имеет фиксированный размер — 1024 байта (1 КБ) .
  • Когда вы создаете миллион мелких файлов (например, распаковываете архив с исходным кодом или кеш браузера), MFT разрастается до гигантских размеров — сотен мегабайт или даже гигабайт.

🔹 Почему вы не видите MFT в Проводнике?

Потому что MFT — это системный метафайл, который скрыт от глаз обычного пользователя. Его не видно даже при включенных «скрытых файлах» — только если отключить защиту системных файлов в настройках Проводника .

И вот тут происходит главный обман: вы смотрите свойства диска C:, видите, что пользовательские файлы занимают 100 ГБ, а диск почти полный — 120 ГБ из 128. Куда делись 20 ГБ? Часть ушла в MFT (особенно если у вас много мелких файлов), часть — в другие метафайлы (журнал $LogFile, битовая карта $Bitmap и т.д.).

Windows не вычитает MFT из свободного места при подсчете «видимых» файлов. Она показывает вам только то, что относится к пользовательским данным. А MFT живет своей жизнью и растет вместе с количеством файлов.

🔹 Как проверить размер MFT?

Через командную строку от имени администратора:

  • fsutil fsinfo ntfsinfo C: — покажет общее количество записей MFT и их размер.
  • Или через дефрагментатор: defrag C: /A — в отчете будет строка «Master File Table (MFT) fragmentation» с общим размером MFT .

И вы удивитесь, когда увидите, что MFT на диске с тысячами мелких файлов может занимать 5-10 ГБ, о которых вы даже не подозревали.

🔧 Часть 4. Как увидеть невидимое: инструменты для раскрытия тайн

Microsoft не дает встроенных инструментов для работы с ADS в графическом интерфейсе. Но есть официальные утилиты от самой Microsoft (Sysinternals) и встроенные консольные команды.

🔹 Streams.exe — официальное оружие от Sysinternals

Streams — это консольная утилита от Mark Russinovich (ныне главный технический специалист Microsoft Azure), которая показывает все альтернативные потоки данных у файлов и папок .

Как использовать:

  1. Скачать с официального сайта Microsoft Sysinternals (бесплатно).
  2. Запустить командную строку от имени администратора.
  3. streams.exe C:\Путь\к\папке — покажет все потоки в указанной папке.
  4. streams.exe -s C:\ — рекурсивно просканирует весь диск .

Пример вывода:

C:\Downloads\setup.exe:
:Zone.Identifier:$DATA 26 bytes

Утилита покажет имя файла, имя скрытого потока и его размер в байтах. Именно эти байты добавляются к «Размеру на диске», но не видны в «Размере» .

Осторожно: У streams есть ключ -d для удаления всех альтернативных потоков. Удаление :Zone.Identifier уберет предупреждения безопасности, но может быть нежелательным для некоторых приложений, которые хранят в ADS свои метаданные .

🔹 Встроенная команда DIR /R

В Windows есть встроенная команда, показывающая потоки — dir /R .

Откройте командную строку в нужной папке и введите:

dir /R

Вы увидите список файлов, а под каждым файлом — его альтернативные потоки, если они есть.

Пример:

25.12.2025 18:30 1 234 readme.txt
26 readme.txt:Zone.Identifier:$DATA

Обратите внимание: размер основного потока (readme.txt) — 1 234 байта. Рядом — скрытый поток на 26 байт. Именно эти 26 байт не видны в «Размере» файла в Проводнике, но учитываются в «На диске» .

🔹 PowerShell: Get-Item с параметром -Stream

Современный способ работы с потоками — PowerShell .

Посмотреть все потоки файла:

powershell

Get-Item .\readme.txt -Stream *

Удалить конкретный поток:

powershell

Remove-Item .\readme.txt -Stream Zone.Identifier

Рекурсивно найти все файлы с альтернативными потоками в папке:

powershell

Get-ChildItem -Recurse | Get-Item -Stream * | Where-Object {$_.Stream -ne ':$DATA'}

Это покажет все файлы, у которых есть какие-то дополнительные потоки кроме основного.

💣 Часть 5. Сценарии, когда размер папки обманывает вас больше всего

Подведем итог: вот ТОП-5 ситуаций, когда «Размер» и «На диске» расходятся максимально сильно, и вы думаете, что компьютер сошел с ума.

-3

⚠️ Часть 6. Скрытая угроза: как злоумышленники используют ADS

Альтернативные потоки данных — это не просто технический курьез. Это реальный вектор для скрытого размещения вредоносного кода, о котором знают все специалисты по информационной безопасности .

🔹 Классическая схема скрытия

Злоумышленник создает обычный текстовый файл или картинку, например, photo.jpg. Затем в альтернативный поток этого файла записывается исполняемый EXE-файл трояна :

type trojan.exe > photo.jpg:malware.exe

В Проводнике photo.jpg выглядит как обычное изображение. Размер — 2 МБ. Ничего подозрительного. Но на диске он занимает 2 МБ (картинка) + 10 МБ (скрытый троян) = 12 МБ в параметре «На диске».

Затем злоумышленник запускает этот скрытый код через специальный скрипт или планировщик задач, указывая путь C:\photo.jpg:malware.exe. Да, Windows умеет запускать исполняемые файлы из альтернативных потоков, если в них лежит корректный PE-образ .

🔹 Как защититься

  1. Регулярно сканируйте диск утилитой Streams — streams.exe -s C:\ > streams_report.txt. Ищите подозрительные имена потоков: :virus, :backdoor, :payload, а также неожиданно большие потоки у маленьких файлов .
  2. Используйте антивирус с поддержкой сканирования ADS — большинство современных антивирусов (Kaspersky, Dr.Web, ESET) проверяют альтернативные потоки по умолчанию.
  3. Будьте осторожны с файлами из непроверенных источников — даже если файл выглядит как безобидная картинка, внутри может быть сюрприз.

📋 Часть 7. Шпаргалка: что делать, если вы нашли расхождение

Обнаружили, что папка весит не так, как должна? Вот пошаговый план расследования:

  1. Проверьте разницу «Размер» vs «На диске» в свойствах папки. Если разница огромная и в пользу «На диске» — вероятно, проблема в мелких файлах и кластерах. Если «На диске» меньше «Размера» — включено сжатие или есть разреженные файлы.
  2. Запустите dir /R в подозрительной папке. Если увидите строки с :$DATA после имен файлов — нашли альтернативные потоки.
  3. Скачайте Streams из Sysinternals и выполните streams.exe -s Путь_к_папке. Утилита покажет все скрытые потоки и их размер.
  4. Проверьте размер MFT через fsutil fsinfo ntfsinfo C: или отчет дефрагментации. Если MFT раздута, это объясняет пропажу места.
  5. Используйте WinDirStat или WizTree — эти программы визуализируют использование диска, но, увы, они тоже не показывают альтернативные потоки и MFT. Они показывают только пользовательские данные.
  6. Если вы нашли подозрительные ADS, но не уверены, что это — лучше не удаляйте их вручную. Используйте антивирус или проконсультируйтесь со специалистом.

🔗 Больше полезных материалов о скрытых механизмах Windows и расследований цифровых аномалий ищите здесь:

👉 Канал МАХ: «Не баг, а фича»
👉
Telegram: Секретные настройки Windows