Неправильно отображается дисковое пространство

В статье описываются проблемы и возможные решения, когда вследствие различных причин неправильно отображается дисковое пространство на различных носителях: внешних и локальных жёстких дисках, а также флешках.

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

Всё по порядку.

Файловая система NTFS, какой мы её знаем, поддерживает большое количество дисковых и низко-форматных файловых настроек, которые благодаря перекрёстным связям могут давать сбой как любой из механизмов. В окне проводника Windows эта ошибка отображается как:

  • пустой том носителя, пустые папки и директории при занятом и правильно отображаемом (при всём этом) распределённом пространстве носителя
  • без всякого на то основания переполненное пространство диска: диск чем-то «забит»; дефрагментация диска не помогает
  • проводник Windows очень долго «соображает» при подключении внешнего диска
  • некоторые файлы или целые папки пропали
  • замена типа файловой системы NTFS на формат RAW.




Причин у перечисленных проблем часто только две:

  • произошла попытка (нередко удачная) несанкционированного доступа к этому тому, в результате чего с вашего компьютера были (или могли быть) СКОПИРОВАНЫ файлы больших размеров или большое количество небольших по объёму файлов. Нередко этим промышляет зловредное ПО, проникнувшее в систему и попытавшееся незаконно и незаметно от администратора системы изменить атрибуты к файлам. После чего система просто потеряла к ним доступ
  • резкий бросок по питанию (внезапное отключение или резкий скачок напряжения на входе БП) вызвал повреждение диска (и как следствие, появление плохих (бэд) секторов)

Неправильно отображается дисковое пространство. Как это видит система?

  • размер кластера NTFS диска слишком велик для среднего размера файла, который на этом носителе находится
  • файловые атрибуты или разрешения NTFS системы не позволяют проводникам (в том числе Windows Explorer и консоли cmd) отображать и получать доступ к файлам и папкам
  • путь к папке содержит в своём названии более 255 символов или содержит неприемлемые из них
  • метафайлы NTFS (например, главная файловая таблица) разрослись настолько, что Windows не способна их куда-либо переместить
  • папки или файлы содержат в себе чередующиеся потоки данных
  • файловая система повреждена, и свободное пространство сообщает о себе как о занятом — бэд-сектора
  • чрезвычайно сильная дефрагментация файлов (в названии проблемы кроется и решение)

Неправильно отображается дисковое пространство. Другой размер кластера.

«Потреблять» дисковое пространство на диске могут только файлы и папки, которые содержат в себе метафайлы типа MFT (главная файловая таблица), различные папковые индексы и т.п. Чем-то это похоже на действие биологического вируса: эти файлы показывают свой пропуск кластеру диска (набору сопряжённых между собой секторов) и заполняют его структуру, заражая своим присутствием в хорошем смысле этого слова. А размер кластера определяется объёмом раздела на момент подготовки тома к принятию информации — форматирования.

Но когда некий (любой) файл создаётся, он заполняет собой не весь кластер диска целиком, а лишь его часть. И эта часть будет зависеть от первоначального его (файла) размера. Когда данные к файлу добавляются, NTFS увеличивает распределение файла, заполняя кластер.

Мы можем прямо сейчас узнать размер кластера на любом из носителей компьютера. Это делается командой chkdsk из командной консоли. У команды несколько разновидностей, в том числе и ремонтный вариант. Однако запущенная в простом виде с админ-правами с указанием литеры диска (без этой опции она проверит системный диск):

команда chkdsk windows 7

просто находим размер кластера диска: ничего не ремонтируем

она лишь указывает информацию, которая без цели неинтересна:

размер кластера

Но в нашем случае эта информация полезна: она показывает сколько дискового пространства занято и каков размер кластера. Чтобы определить, оптимален ли размер кластера, нужно узнать БЕСПОЛЕЗНОЕ ПРОСТРАНСТВО на этом томе. Сделать это легко:

  • выберите исследуемый диск в проводнике Windows и откройте его для отображения его содержимого
  • щёлкните по любой из папок директории и нажмите CTRL + A, чтобы выделить все элементы:

выделение содержимого папки

  • правой мышкой вызовите контекстное меню и откройте Свойства
  • появится окно с двумя вкладками, в котором в режиме реального времени системой начнётся подсчёт занятого файлами пространства тома. Присмотритесь к нему:

бесполезное пространство диска

Несмотря на одинаковое значение занятого объёма (у меня чуть больше 100 ГБ по обоим показателям), размеры в байтах показывают, что разница всё-таки ощутима и составляет более 200 МБ. Если вы используете сжатие для сохранения дискового пространства:

сжатие тома

то и более весомая разница вполне объяснима. Однако в нашем случае разница говорит только о том, что размер кластера диска больше, чем требуется. Конечная цель ясна — одинаковыми их сделать не выйдет, но значения должны приближаться друг к другу. Но выхода пока нет, точнее, он один — форматирование с указанием нужного нам размера. Эту опцию мы при подготовке к установке часто пропускаем, но в следующий раз присмотритесь к ней:

указать размер кластера




Если вы любитель использовать DOS команды, то знаменитую format команду можно разбавить опцией, придав вид:

format E: /a:2048

где

  • E: — форматируемый диск
  • /a:2048 — размер будущего кластера в байтах (здесь, получается, 2 кБ)

Неправильно отображается дисковое пространство. Атрибуты или разрешения NTFS.

И системный проводник и команда консоли dir /a /s отображают общую статистику по файлам и директориям Windows. Но делают это в соответствии с установленными файловыми атрибутами. А значит по умолчанию делают это немного некорректно. Да-да, я про скрытые файлы: из поиска они исключены. Так что заставьте систему их показывать. Иначе размер занимаемого дискового пространства вас собьёт с толку. Как это сделать, думаю, помнят все. Найдите Свойства папки (в Windows 7, например, это легко сделать прямо через Панель управления) и установите флажок напротив пункта:

hidden folders files

Доступ к атрибутам файлов прямо из контекстного меню

А чтобы посмотреть на список файлов и папок, доступ к которым вам закрыт, можно воспользоваться командой

dir d: /a /s >c:\file.txt

в командной консоли. По этой команде система создаст текстовый файл file.txt в корне диска С: со списком «запрещённых» файлов на диске (скажем) D:. После этого можно выцепить любой из них и во вкладке Безопасность из контекстного меню выставить необходимые права. Так, даже администратор не может посмотреть содержимое папки System Volume Information. Однако… Воспользовавшись твиком реестра, предлагаемым мной по ссылке статьи перед этим абзацем, посмотреть, что в папке уже не проблема:

system-volume-information-content что в папке System Volume Information

Вот и нашлась парочка гигабайт.



Неправильно отображается дисковое пространство. Неправильные имена файлов.

Из поиска точно выпадут файлы и папки, чьи названия содержат неверные или зарезервированные имена или символы. Вот пример, как одну из таких особенностей Windows можно обойти, создав безымянную папку. Но трюки трюками, а проводник системы с ними работать корректно не может. И при попытке удалить такой файл система, скорее всего, выдаст окно с ошибкой типа «Невозможно прочитать файл«. Работа с такими файлами — тема отдельной статьи. Однако программы-читалки места на диске (типа SpaceSniffer или WinDirStat или TreeSize Free), запущенные от имени администратора, могут указать на проблемы с такими папками и файлами. Ключевым моментом здесь является такой факт — все больших размеров папки и директории должны безошибочно открываться из проводника Windows. Пробуйте несколько программ сразу — они могут показывать разные результаты. Так, к примеру, на одном из подопечных компьютеров только одна из программ (TreeSize Free) обнаружила неправильную настройку одной из программ резервирования системы: некоторым файлам были присвоены очень длинные имена, папки назначения и источников совпали. Как итог — программа сожрала 50 Гб информации, а Windows проводник — ни сном, ни духом. Переустановка программы поставила всё на свои места.

Неправильно отображается дисковое пространство. Увеличение размера Master File Table.

Одновременно с процессом форматирования создаются метафайлы NTFS. Один из метафайлов и есть главная файловая таблица MFT. Он невелик изначально по размерам, однако по мере создания файлов и папок на диске расширяется в размерах. Когда создаётся любой из файлов, он появляется в MFT как Сегмент Записи Файла FRS. Его размер всегда ровно 1 кБ. А файлов всё больше, и все они постепенно добавляются к MFT нашего тома. По удалению файла из системы сегмент помечается как свободный, но при этом общее количество Сегментов и ассоциированное с ними расположение в MFT никуда не девается. Это и есть причина, по которой вы НИКОГДА НЕ ВЕРНЁТЕ предыдущий показатель занятости свободного пространства диска. Это крохи, но со временем они накапливаются в мегабайты, что нельзя списывать на неисправность даже после удаления большого количества файлов.

Чтобы увидеть насколько разрослась MFT, можно запустить встроенный в Windows дефрагментатор. Я сделаю это через консоль:

дефрагментатор windows 7

Ключевая на данный момент запись — Основная таблица файлов (MFT). Пример немного неудачен — я показал свой системный том, где порядок я навёл (показатель использования MFT у меня 100%). Но не верь глазам своим… И потому лучше обратиться к утилите проверки диска в той же консоли. Вы уже знаете о ней — это chkdsk. На втором рисунке статьи размер, занимаемый NTFS, в поле «ХХХХХХ используется системой». Выход: упоминаемая мной не раз программа CCleaner, в частности, умеет исправлять и этот «косяк» системы, который, признаться, от пользователя мало -то и зависит. Если она — программа — у вас установлена, при очередной генеральной чистке системы пометьте вот этот пункт:

hard-drive-space-recover

Предупреждаю. Выполнение этой задачи отнимет НЕИМОВЕРНО много времени (и чем больше диск по объёму, тем дольше время ожидания). Не забудьте снять переход системы в спящий режим и обеспечьте питание к ноутбуку от внешнего БП. Но результат порой того стоит.

Настроить дефрагментацию из контекстного меню

Неправильно отображается дисковое пространство. Чередующиеся потоки данных.

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

  • проводник Windows и команда dir в консоли не будут сообщать о таких данных как о части размера файла или включать в статистику тома. Вместо того, они будут отображать количество байт первоначального потока
  • итоговые данные утилиты chkdsk точно сообщат о занимаемом пространстве данных файлов пользователя, в том числе и альтернативными потоками данных

Неправильно отображается дисковое пространство. Повреждение файловой системы.

Здесь всё просто. Метафайлы $MFT или $BITMAP NTFS повреждаются по поводу и без. А это вызывает видимое сокращение дискового пространства. Это легко вычленить и поправить с помощью команды в консоли:

chkdsk /f

направленной на нужный вам раздел диска или конкретный том. Утилита найдёт свободное неразмеченное место на диске, и самостоятельно внесёт поправки в файловую систему.

Успехов.

Запись опубликована в рубрике Ошибки Windows. Добавьте в закладки постоянную ссылку.

2 комментария на «Неправильно отображается дисковое пространство»

  1. Владимир говорит:

    Всё супер — очень интересная статья.. только она мне не помогла..
    У меня системный диск — SSD на 256(238) ГБ
    Винда 10-ка

    Столкнулся с проблемой нехватки места (как я думал)..
    200МБ оставалось.. нашёл что можно перенести — Окулус 19ГБ
    . замечательно — создал линк на папку в другом диске — всё круто — 19ГБ свободно..
    на днях что-то хотел сделать — БАЦ — места нет.. нифига себе, подумал я.. начал искать проблему.. оказалось, что свободного места 300МБ, а файлами на диске занато только 190ГБ из 238.. ?! то есть, в свойствах диска сказано что капец, всё занято.. а если выделить всё на этом диске, то ещё где-то 45ГБ должно быть. Нашёл твою статью. .Вот, думаю, круто.. и каждый метод всё лучше и лучше по идее должен был быть..
    1) Дефрагментация.. Окзалось, фрагментация 0% и она у меня раз в неделю проходит..
    2) SpaceSniffer — отличная прога.. (я даже нашёл 25ГБ резервных файлов телефона — перенесу на другой диск). . но он тоже нифига не показал как надо.. говорит О:238ГБ.. и дальше типа три папки 60ГБ, 70ГБ, 60 ГБ. ну да. . 190ГБ .. а ГДЕ ОСТАЛЬНОЕ? что допихивает до этих 238ГБ, что система ругается???
    3) Скрытые файлы итд итп.. всё как в статье сделал — файл гиперфил и подкачки — они на минимуме.. 4ГБ. всего лишь. но они показываются!
    4) Кластеры — где-то 800МБ лишних — некритично..
    5) MBF 100% использование — норм
    6) SystemVolume… итд — проверил(доступ себе в безопасности предоставил) — 25МБ у меня там всего лишь.. всякое резервирование отключено.
    Чек диск говорит что всё прекрасно.. проги по инфе дисков тоже все говорят, что битых секторов нет и что всё супер..

    что делать — не пойму.. ну освобожу я сейчас 25гб удалив резерв телефона.. а что если завтра опять допихает до 238 и мне уже нЕчем крыть будет. . ?? вообще не понятно. П.С. в залинкованной папке пробовал удалять файлы — места свободного не прибавлялось (

    • GodKnowses говорит:

      1. В последнем абзаце ключевой момент появился. Система постоянно «допихивает» файлы к свободному пространству? Не вот эта ли проблема:
      Windows занимает много места
      2. Информация по MFT из системной консоли после дефрагментации — бабушка надвое сказала. Прогоните CCleaner-ом всё-таки с указанным пунктом, потратьте время. Тоже касается и самой службы defrag — она часто тупо ошибается в результатах анализа: дефрагментация и всё тут.
      3. Жёсткий диск разбит на разделы? Если да, сколько их? В консоли управления дисками не затесался ли неустановленный раздел?
      4. Есть ещё пара хороших программок для вашей Windows 10: WinDirStat и TreeSize, их попробуйте. Я также не видел карты диска от SpaceSniffer, но знаю, что 10-ка, например, любит резервировать под себя очень много места. Посмотрите, есть ли у вас файл WindowsImageBackup и сколько весит? По необходимости понизьте квоты в свойствах локального диска. Далее. Я добавил немного информации в абзаце про неправильные имена файлов, посмотрите.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре × три =