NTFS - описание, возможности, уловки

14 July 2019

NTFS - описание, возможности, уловки

Начну с интриги:

В ролике видим флешку, на которой сохранён один файл, содержащий следующие строки:

Александр Пушкин
***
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...

Он занимает большую часть места. Ожидаемо не удаётся создать его же собственную копию на этом носителе. Попытка скопировать на другой накопитель через проводник также не увенчалась успехом. А вот Total Commander выполняет копирование, но неспешно, как будто файл действительно "весит" больше 30 Гб. При этом внизу виден его размер - 168, а в конце ролика после внесения изменений в текст - 184 байта. Ответ будет пояснён в этой статье, как и другие нюансы файловой системы, которая на данный момент встречается чаще всего на рабочих станциях - NTFS.

Разработка NTFS была обусловлена необходимостью расширения самого понятия "файл", которое становилось чем-то большим, чем просто переименованная область информации. "Старый файл", включающий в себя собственно информацию, имя и несколько атрибутов больше не удовлетворял требованиям, предъявляемым к файлам в операционных системах с разграничением доступа, квотированием, версионированием и многими другими новыми тогда веяниями. Файл должен был стать метаконтейнером, способным вместить в себя буквально всё. По сути заменял собой папку, а каждый атрибут мог повторяться многократно. В частности у "нового файла" могло быть несколько имён.

NTFS - это изделие Microsoft, которое было реализовано на базе их совместного с IBM проекта - HPFS для операционной системы OS/2. После "ссоры" Microsoft стал реализовывать свои идеи самостоятельно, и NTFS - одна из них. Помимо поддержки хранения метаданных, о которой было сказано выше, эта файловая система расширяла возможности своей предшественницы FAT практически по всем параметрам, включая и максимальный размер файла, и их максимальное количество на носителе, и разрешённые в именах символы, и многое другое.

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


Свойства: документы (Собственный скриншот)

Свойства: документы (Собственный скриншот)

Больше 10% места сэкономлено благодаря встроенным возможностям файловой системы. Можно и больше, но на практике NTFS не рекомендуется для использования на сменных носителях, т.к. одно из свойств файла здесь - это время последнего доступа, стоит вам просто посмотреть файл или даже даже его свойства, часть информации будет перезаписана. Можно было бы этим пренебречь, но также EFI не работает с NTFS, а для медийных целей хватает и exFAT. Но это я отвлёкся. Хватит говорить о прописных истинах, пора уделить пару слов тому, что многие упускают из вида, хотя эти возможности не менее задокументированы.

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

Жёсткую ссылку в NTFS можно рассматривать, как второе (третье/четвёртое...) имя файла. Это часто удобно для организации быстрого доступа к файлам из разных папок, ведь при передаче такого пути он передаётся именно в оригинале, а не меняется, как в случае с ярлыком. Забавно, вплоть до Windows Vista операционные системы Microsoft не умели нормально работать с символическими ссылками. В случае удаления одной из них Проводник удалил бы данные, а все остальные ссылки стали бы неверными. Теперь Проводник показывает ссылки и точки монтирования NTFS. Одним из самых наглядных примеров может быть папка Documents and Settings, которая лишь ссылается на Users.

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

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


Одна из утилит для TC (Собственный скришот)

Одна из утилит для TC (Собственный скришот)

Секрет стихотворения Пушкина

Как уже наверняка догадался внимательный читатель приведённый в начале текстовый файл содержит помимо основной информации - стихотворения Александра Сергеевича ещё много чего. В качестве иного в файловые потоки было добавлено несколько художественных фильмов. Просто для демонстрации возможности. На практике таким образом можно прятать в файлах дополнительную информацию, которую обычными средствами не так-то просто оттуда извлечь. Это могут быть любые другие файлы с собственными именами. Для работы с файловыми потоками NTFS в Total Commander используются плагины, относящиеся к сетевым. Один из них - NTFS - streams. Благодаря нему вы открываете любой файл, как папку, где поток ::$data - это собственно данные файла, и помимо него могут существовать любые другие потоки.


NTFS - streams (Собственный скриншот)

NTFS - streams (Собственный скриншот)

Если понравилась статья, то ставьте ЛАЙК 👍, делитесь в социальных сетях, ПОДПИСЫВАЙТЕСЬ на канал, оставляйте комментарии.