Что за утилита и почему ей нужны права
Fsutil — служебная программа Windows для работы с файловыми системами. Она умеет много, от создания файла заданного размера до управления параметрами тома, но в повседневной практике хватает нескольких запросов на чтение. Именно на них мы остановимся, а изменяющие подкоманды оставим в стороне.
Для большинства подкоманд нужна консоль, запущенная от имени администратора. Без неё вы получите сообщение о нехватке прав или о том, что операция требует повышения. Это нормально и связано с тем, что утилита обращается к низкоуровневым сведениям о томах.
Общая схема записи: fsutil группа подкоманда параметры. Группы называются volume, fsinfo, dirty, behavior, file и так далее. Справка по группе выводится командой fsutil группа, например fsutil fsinfo, и содержит перечень доступных подкоманд для вашей версии системы.
Стоит помнить и о различиях между версиями Windows: набор подкоманд и формат вывода отличаются, а часть возможностей появилась только в новых выпусках. Поэтому если подкоманда из чужой инструкции не находится, сверьтесь со справкой, которую выводит сама утилита.
Свободное место: fsutil volume diskfree
Запрос fsutil volume diskfree C: выводит несколько строк: общий объём свободного места, общий размер тома и объём, доступный текущему пользователю. Значения указаны в байтах, а рядом в зависимости от версии Windows может быть показан пересчёт в более крупные единицы.
Зачем это, если проводник тоже показывает свободное место? Ради скриптов и удалённой диагностики: вывод можно сохранить в файл или разобрать программой. Кроме того, строка про доступное пользователю место может отличаться от общей, если на томе включены квоты.
Если место уходит быстрее, чем вы ожидали, сама команда причину не назовёт. Для поиска крупных папок существуют другие средства, а советы по освобождению диска C собраны на странице раздела систем.
Ещё один способ получить ту же информацию без повышения прав дают средства PowerShell: Get-Volume выводит размер и свободное место томов в виде таблицы, и её удобно использовать, когда консоль администратора недоступна.
Диски и файловая система
Список букв дисков: fsutil fsinfo drives. Для сведений о конкретном томе пригодится fsutil fsinfo volumeinfo C:. Среди прочего выводится имя тома, серийный номер, название файловой системы (NTFS, exFAT, FAT32 или другое) и флаги, описывающие её возможности, например поддержку сжатия и шифрования.
| Запрос | Что показывает |
|---|---|
| fsutil fsinfo drives | буквы доступных дисков |
| fsutil fsinfo volumeinfo C: | имя, серийный номер, файловую систему, флаги |
| fsutil fsinfo ntfsinfo C: | параметры тома NTFS, включая размер сектора и кластера |
| fsutil volume diskfree C: | свободное и общее место в байтах |
Тип файловой системы особенно важен для внешних носителей. Если флешку нельзя заполнить файлами больше определённого размера, причина обычно в FAT32. Как выбирать файловую систему для внешнего диска, разобрано в соответствующей статье раздела данных.
Кластером называют минимальную единицу выделения места на диске. Размер кластера влияет на то, сколько места занимают очень мелкие файлы: каждый файл занимает целое число кластеров. Эту величину и показывает ntfsinfo в строке про байты на кластер.
Если вы используете внешние диски, полезно сравнить вывод volumeinfo для нескольких носителей: так видно, какие из них поддерживают, например, имена файлов большой длины и права доступа на уровне файлов. Это объясняет, почему при копировании с одного диска на другой часть сведений пропадает.
Флаг dirty и что он говорит о состоянии тома
Запрос fsutil dirty query C: сообщает, помечен ли том как «грязный». Этот флаг система ставит, когда файловая система не была корректно закрыта, например при внезапном отключении питания. При следующей загрузке Windows может предложить проверить том.
Наличие флага не означает, что файлы повреждены, а его отсутствие ещё не говорит о полной сохранности данных. Это лишь сигнал о том, что проверка желательна. Для самой проверки используется chkdsk, подробности про которую есть на отдельной странице.
Не стоит пытаться управлять этим флагом вручную через подкоманды изменения. Если том помечен, пусть проверку выполнит штатный механизм: он знает, что именно нужно перепроверить.
Дополнительно подкоманда fsutil dirty query возвращает понятный результат только для существующего тома. Если вы укажете букву, под которой диск не подключён, утилита сообщит об ошибке, и это не признак неисправности. Проверьте букву через fsutil fsinfo drives.
Если Windows предлагает проверить диск при загрузке, не прерывайте проверку без причины: она работает с файловой системой, и преждевременная остановка может оставить проверку незавершённой, а том придётся проверять заново. После завершения запросите fsutil dirty query ещё раз, чтобы увидеть, что отметка снята.
TRIM и создание тестового файла
Запрос fsutil behavior query DisableDeleteNotify показывает состояние уведомлений об удалении, на которых строится TRIM для твердотельных накопителей. Значение 0 означает, что они не отключены, значение 1 что отключены. В новых версиях Windows вывод может содержать отдельные строки для NTFS и ReFS.
Для проверки скорости записи и места иногда нужен файл известного размера. Команда fsutil file createnew тест.bin 1048576 создаёт файл размером 1 мегабайт: размер указывается в байтах, а содержимое заполняется нулями. Имя файла и путь в примере условные: создавайте такие файлы только в тестовой папке на нужном диске, например в C:\Test, и удаляйте после проверки.
- Используйте запросы на чтение (query, diskfree, volumeinfo), если не уверены в подкоманде.
- Не меняйте параметры поведения файловой системы без причины.
- Перед изменением чего-либо сохраните исходные значения вывода в файл.
- Если вопрос про здоровье диска, смотрите SMART-данные и chkdsk, а не только fsutil.
Подкоманды fsutil различаются по степени риска. Просмотровые вроде query и diskfree безопасны, а подкоманды set и некоторые параметры файловых групп меняют поведение системы. Не используйте их, ориентируясь только на форумные советы; сначала прочтите справку к нужной подкоманде.