December 5, 2020

Файловая система NTFS – хитрости и секреты для пользователя Windows

В Windows файловая система NTFS отвечает за управление файлами, папками и дисковым пространством. Очевидно, что существует не только файловая система NTFS, но именно New Technology File System, уже не являющаяся такой «новой», так как была задумана Microsoft ещё в 1993 году, – до сих пор является наиболее широко используемой в среде Windows. Её преемником считается ReFS, но NTFS продолжает оставаться предпочтительным выбором в большинстве случаев.

Многие говорят о файловых системах, которые в будущем могли бы занять их место, но до сих пор многие не знают о продвинутой (и скрытой) функциональности NTFS. Фактически файловая система NTFS позволяет сохранять и восстанавливать «скрытые данные» (называемые альтернативным потоком данных), при необходимости экономить место на диске, сохранять файл таким образом, чтобы он находился в нескольких папках и многое другое.

Альтернативный поток данных (ADS)

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

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

Откройте Командную строку с правами администратора и введите dir /r, чтобы получить список ADS, используемых в текущей папке.

Следующая команда, например, позволит вам получить список ADS, используемых на всём устройстве C: (выполнение операции может занять несколько минут):

dir C:\ /r /s | find ":$DATA" > %userprofile%\ads.txt && notepad %userprofile%\ads.txt

Затем файл ads.txt можно удалить из папки %userprofile%.

Например, мы предлагаем вам перейти в папку Загрузки Windows, затем, удерживая клавишу SHIFT, щелкнуть правой кнопкой мыши свободную область и выбрать Открыть окно PowerShell.

Попробуйте ввести cmd, а затем dir /r. Вы найдете несколько файлов с суффиксом :Zone.Identifier:$DATA. Это просто файлы с ADS.

Например, при вводе more <filename.zip:Zone.Identifier будет прочитано содержимое ADS для указанного файла.

Как вы можете видеть, ADS не только указывает, что файл был загружен из интернета (ID 3 относится именно к интернету), но также включает URL-адрес и полный адрес, с которого файл был загружен.

Чтение содержимого ADS также можно выполнить с помощью PowerShell с помощью команды Get-Content namefile.zip -Stream Zone.Identifier.

С Remove-Item вы можете удалить ADS. Удалять их вслепую – не очень хорошая идея: просто подумайте, что клиент Dropbox хранит, используя ADS, информацию о файлах, синхронизированных с его облачными серверами.

Сжатие файлов с NTFS

Чтобы сэкономить место на любом диске, файловая система NTFS может сжимать файлы.

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

Сколько места можно сэкономить, зависит от типа данных: в простых текстовых файлах явно достаточно места для маневра, но со сжатыми архивами (например, .zip, .7z или .rar) или с изображениями JPEG вы не получите преимуществ, наоборот, операция может быть контрпродуктивной.

Однако, в файловой системе NTFS пользователь может щелкнуть правой кнопкой мыши папку, содержащую данные, затем нажать Другие в разделе Атрибуты и установить флажок Сжимать содержимое для экономии места на диске.

Из командной строки вы можете использовать команду compact для запроса сжатия содержимого папки. Введите compact /? чтобы получить полный список используемых ключей.

Жесткие ссылки и символические ссылки

Один и тот же файл может быть доступен на диске NTFS с несколькими именами и даже в нескольких папках, не занимая дополнительного места.

Жесткие ссылки доступны только для файлов (не для папок) и всегда должны ссылаться на файлы одного и того же тома. Механизм прост и включает создание новой записи уровня файловой системы для файла, который уже существует. Кроме того, могут быть использованы следующие команды для создания жесткой ссылки. Первые две работают из обычной командной строки Windows, последняя – из PowerShell:

mklink /h hardlink.exe filesist.exe fsutil hardlink create hardlink.exe filesist.exe New-Item -ItemType HardLink -Name hardlink.exe -Value filesist.exe

В примере мы ссылались на гипотетический файл с расширением .exe, но, очевидно, можно ссылаться на любой тип файла; более того, filesist.exe – это имя файла, который уже существует (с относительным путём), а hardlink.exe – это имя ссылки, которая ссылается на этот файл.

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

Microsoft интенсивно использует жесткие ссылки во время установки Windows: многие системные файлы изначально попадают в подпапки Windows\WinSxS и оттуда они сортируются в реальные системные папки, такие как Windows и System32, используя иллюстрированный метод.

Мягкие или символические ссылки являются ещё одним инструментом, который иногда может быть очень полезен в системах Windows. Символические ссылки могут относиться как к файлам, так и к папкам. Кроме того, в отличие от жестких ссылок, пункт назначения, на который она ссылается, не обязательно должен находиться на том же диске, на котором создана ссылка. Кроме того, вы можете ссылаться на ресурсы, хранящиеся на диске, подключенном к локальной сети.

Символьные ссылки могут быть созданы с помощью следующих команд:

mklink softlink.exe filesist.exe (ссылка на файл) mklink /d softlink foldersis (ссылка на папку) New-Item -ItemType SymbolicLink -Name softlink -Value resurs (в случае PowerShell)

Управление квотами

Ещё одна малоизвестная особенность NTFS – это возможность управлять квотами или определять максимальное пространство, которое могут использовать различные учетные записи пользователей, настроенные на машине Windows.

Для этого просто нажмите комбинацию клавиш WIN + E, щелкните правой кнопкой мыши диск и выберите Свойства. Перейдите на вкладку Квота и нажмите кнопку  Показать параметры квоты. Установите галочку Включить управление квотами, чтобы определить пространство, которое каждый пользователь сможет использовать.

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