stringtranslate.com

Точка повторной обработки NTFS

Точка повторной обработки NTFS — это тип объекта файловой системы NTFS . Он доступен с NTFS v3.0, установленной в Windows 2000 или более поздних версиях. Точки повторной обработки позволяют расширить файловую систему NTFS. Точка повторной обработки содержит тег повторной обработки и данные, которые интерпретируются драйвером фильтра файловой системы , идентифицируемым этим тегом. Microsoft включает несколько тегов по умолчанию, включая символические ссылки NTFS , точки соединения каталогов , точки монтирования томов и сокеты домена Unix . Кроме того, точки повторной обработки используются в качестве заполнителей для файлов, перемещаемых системой иерархического хранения удаленного хранилища Windows 2000 . Они также могут действовать как жесткие ссылки , но не ограничиваются указанием на файлы на одном томе: они могут указывать на каталоги на любом локальном томе . Особенность [ какая? ] наследуется от ReFS . [1]

Драйвер NTFS-3G с открытым исходным кодом реализует встроенную поддержку точек повторной обработки типа ссылки, а именно символических ссылок и точек соединения. Доступна система фильтров подключаемых модулей для обработки дополнительных типов точек повторной обработки, позволяющая читать файлы с дедупликацией фрагментов, файлы, сжатые системой, а также файлы OneDrive . [2]

Состав

Точка повторной обработки имеет следующую общую структуру в форме структуры C:

структура REPARSE_BUFFER { uint32_t ReparseTag ; uint32_t ReparseDataLength ; uint16_t Зарезервировано ; uint8_t DataBuffer []; // гибкий член массива }           

Тег повторной обработки [3] уникален для каждого типа точки повторной обработки. Он определяет, какому обработчику точки повторной обработки (обычно драйверу фильтра файловой системы) диспетчер ввода-вывода делегирует обработку. [4] Microsoft предоставляет документацию по некоторым «общедоступным» типам тегов. [5]

Типы

Точки подключения тома

Точки монтирования тома аналогичны точкам монтирования Unix , где к каталогу прикрепляется корень другой файловой системы. В NTFS это позволяет монтировать дополнительные файловые системы, не требуя для каждой отдельной буквы диска (например, или ).C:D:

После того как том смонтирован поверх существующего каталога другого тома, содержимое, ранее указанное в этом каталоге, становится невидимым и заменяется содержимым корневого каталога смонтированного тома. [ нужна цитация ] Подключенному тому по-прежнему может быть присвоена отдельная буква диска. Файловая система не позволяет взаимно монтировать тома друг на друга. Точки монтирования тома можно сделать либо постоянными (перемонтируются автоматически после перезагрузки системы), либо непостоянными (необходимо перемонтировать вручную после перезагрузки). [ нужна цитата ]

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

Замещающие имена точек монтирования томов используют форму пространства имен NT \??\DeviceName\. [6] [7] [4] Соединения обычно используются \??\<drive>:\для ссылки на том с существующей буквой драйвера, тогда как настоящие точки подключения тома используются \??\Volume{<guid>}для ссылки на любой том. UNC-пути недопустимы для соединений. [8]

Соединения каталогов

Соединения каталогов определяются с использованием точно такого же механизма (и тега повторной обработки: IO_REPARSE_TAG_MOUNT_POINT), что и точки монтирования тома. Единственное отличие состоит в том, что их замещающие имена указывают на подкаталог другого тома, которому обычно уже присвоена буква диска. Эта функция концептуально аналогична символическим ссылкам на каталоги в Unix , за исключением того, что целью в NTFS всегда должен быть другой каталог (типичные файловые системы Unix допускают, что целью символической ссылки может быть файл любого типа). [4]

Например, каталог C:\exampledirс атрибутом соединения каталогов, содержащим ссылку на, D:\linkeddirбудет автоматически ссылаться на каталог D:\linkeddir, когда к нему обращается приложение пользовательского режима. [9]

Соединения каталогов (которые можно создать с помощью команды MKLINK /J junctionName targetDirectoryи удалить с помощью RMDIR junctionNameкомандной строки консоли) являются постоянными и разрешаются на стороне сервера, поскольку они используют одну и ту же область безопасности локальной системы или домена, в которой смонтирован родительский том, и одинаковы настройки безопасности его содержимого как содержимого целевого каталога; однако сам перекресток может иметь отдельные настройки безопасности. Отмена соединения каталогов не приводит к удалению файлов в целевом каталоге.

Некоторые соединения каталогов устанавливаются по умолчанию в Windows Vista для совместимости с предыдущими версиями Windows, например, Documents and Settingsв корневом каталоге системного диска, который ссылается на Usersфизический каталог в корневом каталоге того же тома. Однако по умолчанию они скрыты, а их параметры безопасности настроены так, что Проводник Windows отказывается открывать их из командной консоли или большинства приложений, за исключением локального встроенного пользователя СИСТЕМА или локальной группы администраторов (оба пользователя учетные записи используются установщиками системного программного обеспечения). Это дополнительное ограничение безопасности, вероятно, было сделано для того, чтобы пользователи не находили очевидные дубликаты файлов в объединенных каталогах и не удаляли их по ошибке, поскольку семантика соединений каталогов не такая же, как для жестких ссылок; подсчет ссылок не используется для целевого содержимого и даже для самого контейнера, на который ссылаются. [ нужна цитата ]

Соединения каталогов представляют собой программные ссылки (они сохранятся, даже если целевой каталог будет удален), работающие как ограниченная форма символических ссылок (с дополнительным ограничением на местоположение цели), но это оптимизированная версия, позволяющая ускорить обработку точка повторной обработки, с помощью которой они реализованы, с меньшими издержками, чем новые символические ссылки NTFS, и могут быть разрешены на стороне сервера (когда они находятся в удаленных общих каталогах). [ нужна цитата ]

Символические ссылки

Символические ссылки (или программные ссылки) были представлены в Windows Vista. [10] Символические ссылки разрешаются на стороне клиента. Таким образом, при совместном использовании символической ссылки на цель распространяются ограничения доступа на клиенте, а не на сервере. [ нужна цитата ]

Символические ссылки могут быть созданы либо на файлы (созданные с помощью MKLINK symLink targetFilename), либо на каталоги (созданные с помощью MKLINK /D symLinkD targetDirectory), но (в отличие от символических ссылок Unix) семантика ссылки должна быть обеспечена созданной ссылкой. Однако цель не обязательно должна существовать или быть доступной при создании символической ссылки: когда будет осуществлен доступ к символической ссылке и цель будет проверена на доступность, NTFS также проверит, имеет ли она правильный тип (файл или каталог); он вернет ошибку «не найдено», если существующая цель имеет неправильный тип. [ нужна цитата ]

Они также могут ссылаться на общие каталоги на удаленных хостах или на файлы и подкаталоги в общих каталогах: их цель монтируется не сразу при загрузке, а только временно по требованию при открытии их с помощью OpenFile()или CreateFile()API. Их определение сохраняется на томе NTFS, где они созданы (все типы символических ссылок можно удалить, как если бы они были файлами, с помощью DEL symLinkкомандной строки или пакета). [ нужна цитата ]

Данные символической ссылки аналогичны данным точки монтирования, поскольку оба используют путь пространства имен NT. Разница в том, что символические ссылки принимают пути UNC , но не монтируют Volume{guid}. [8]

Распределенное отслеживание ссылок (DLT)

Отслеживание распределенных ссылок позволяет приложениям отслеживать файлы, ярлыки оболочки или ссылки OLE, даже если они были переименованы или перемещены на другой том в пределах того же компьютера, домена или рабочей группы. [11] Отслеживание реализовано в виде системной службы, которая использует индекс идентификатора объекта (OID), хранящийся в метафайле . [12] Когда приложение запрашивает отслеживание файла или каталога, служба отслеживания создает запись OID, которая указывает на файл, а операция переименования, копирования или перемещения файла на том NTFS v3 также копирует идентификатор объекта. Это позволяет службе отслеживания в конечном итоге найти целевой файл.

Дедупликация данных

Если в нескольких каталогах есть разные, но похожие файлы, некоторые из этих файлов могут иметь идентичное содержимое. Хранилище единого экземпляра , доступное в Windows Server 2000 и Windows Storage Server 2008, позволяет объединять идентичные файлы в один файл и создавать ссылки на этот объединенный файл. SIS состоит из фильтра файловой системы, который управляет копированием, изменением и объединением файлов; и служба пользовательского пространства (или groveler ), которая ищет файлы, которые идентичны и требуют слияния. SIS в основном был разработан для серверов удаленной установки, поскольку они могут иметь несколько установочных образов, содержащих множество одинаковых файлов; SIS позволяет объединять их, но, в отличие, например, от жестких ссылок, каждый файл остается отдельным; изменения в одной копии файла оставят без изменений другие. Это похоже на копирование при записи — метод, при котором копирование памяти на самом деле не выполняется до тех пор, пока не будет изменена одна копия. [13]

Начиная с Windows Server 2012, существует новый механизм дедупликации данных на основе фрагментов (тег 0x80000013), который позволяет дедуплицировать файлы со схожим содержимым, если они содержат фрагменты идентичных данных. [2] Этот механизм более мощный, чем SIS. [14] Начиная с Windows Server 2019, эта функция полностью поддерживается в ReFS. [15]

Иерархическое управление хранилищем (HSM)

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

Собственное структурированное хранилище (NSS)

NSS — это технология хранения документов ActiveX , выпуск которой с тех пор был прекращен Microsoft. [ нужна цитация ] Это позволило документам ActiveX храниться в том же многопоточном формате, который ActiveX использует внутри себя. Фильтр файловой системы NSS был загружен и использовался для прозрачной для приложения обработки нескольких потоков, а когда файл был перенесен на дисковый том, не отформатированный в NTFS, он также перенес несколько потоков в один поток. [16]

Доменный сокет Unix (сокет)

В Windows 10, сборка 17063 (для стабильной версии 1803), Microsoft представила в Windows доменные сокеты Unix. Это реализуется с помощью драйвера ядра afunix.sys и новой точки повторной обработки в файловой системе. Сокеты домена Unix распространены в системах BSD и Linux и могут рассматриваться как стандарт межпроцессного взаимодействия в этих системах; поэтому их внедрение в Windows позволит упростить внедрение кода и обеспечить межплатформенную переносимость. [17]

Сжатие системы

В Windows 10 представлены алгоритмы сжатия CompactOS только для чтения для файловой системы NTFS, взятые из формата Windows Imaging Format (WIM); они предназначены для сжатия системных файлов Windows и уменьшения использования дискового пространства. [18]

Внутри сжатый файл записывается как точка повторной обработки с тегом IO_REPARSE_TAG_WOF (0x80000017), где WoF означает фильтр наложения Windows, [19] , а фактические данные сохраняются в альтернативном потоке данных с именем «WofCompressedData», который обрабатывается WOF. фильтр файловой системы . [20] [21] [2]

CompactOS — это улучшенный вариант WIMBoot из Windows 8.1 , где системные файлы могут храниться в сжатом образе WIM в скрытом разделе диска , [22] и драйвер фильтра WOF распаковывает содержимое файла из этого файла WIM; использование альтернативных потоков данных вместо изображений WIM, доступных только для чтения, позволяет CompactOS повторно сжимать системные файлы, когда их необходимо перезаписать с использованием обновленной версии. [23]

Один диск

OneDrive помечает файлы и каталоги, загруженные в локальное хранилище, тегом 0x9000001a как точку повторной обработки. Фактические данные сохраняются нормально. [2]

Известные риски

Stuxnet в рамках серии эксплойтов Win32 использует точки соединения NTFS как часть своего общего режима работы. [ нужна цитата ]

Смотрите также

Рекомендации

  1. ^ " Руководство по настройке клиента Microsoft Windows Vista " Wiley Publishing, Inc. 2007 стр.285
  2. ↑ abcd Андре, Жан-Пьер (1 марта 2019 г.). «NTFS-3G: точки соединения, символические ссылки и точки повторной обработки». jp-andre.pagesperso-orange.fr .
  3. ^ «Теги точек повторной обработки» . Проверено 12 декабря 2019 г.
  4. ^ abc «Ссылки NTFS, соединения каталогов и ярлыки Windows». www.flexhex.com .
  5. ^ "[MS-FSCC] Повторная обработка тегов" . Проверено 12 декабря 2019 г.
  6. ^ «Именование файлов, путей и пространств имен/пространств имен NT». Центр разработки Microsoft Windows . Проверено 12 декабря 2019 г.
  7. ^ "winapi - Всегда ли строка "SubstituteName" в PathBuffer структуры REPARSE_DATA_BUFFER начинается с префикса "\??\", и если да, то почему?". Переполнение стека . Проверено 4 октября 2019 г.
  8. ^ Марк Руссинович . «Внутри Win2K NTFS, часть 1». Сеть разработчиков Microsoft . Проверено 18 апреля 2008 г.
  9. ^ «Символические ссылки (Windows)» . MSDN.
  10. ^ «Отслеживание распределенных ссылок и идентификаторы объектов» .
  11. ^ «Клиент отслеживания распределенных ссылок (системные службы для семейства Windows Server 2003 и операционных систем Windows XP)» . Архивировано из оригинала 07 марта 2016 г. Проверено 26 августа 2017 г.
  12. ^ Болоски, Билл; Корбин, Скотт; Гебель, Дэвид; Дусер, Джон (январь 2000 г.). Единое хранилище экземпляров в Windows 2000 (PDF) . Материалы 4-го симпозиума USENIX по Windows-системам. Сиэтл, Вашингтон: Microsoft Research и Balder Technology Group.
  13. ^ FileCAB-Team (10 апреля 2019 г.). «Введение в дедупликацию данных в Windows Server 2012». Техническое сообщество Microsoft .
  14. ^ «Взаимодействие дедупликации данных» . docs.microsoft.com .
  15. ^ Сэвилл, Джон (дата неизвестна). Что такое собственное структурированное хранилище? Windows ИТ-специалист. Получено из статьи «Что такое собственное структурированное хранилище?». Архивировано из оригинала 27 сентября 2007 г. Проверено 3 декабря 2007 г..
  16. ^ «AF_UNIX приходит в Windows» . Инструменты командной строки Windows для разработчиков . Проверено 3 июля 2018 г.
  17. ^ «Компактная ОС, одноэкземплярное копирование и оптимизация изображений» . Майкрософт . Проверено 1 октября 2019 г.
  18. ^ «Что такое WofCompressedData? Означает ли WOF, что Windows — собака?» 18 июня 2019 г.
  19. ^ «Re: [ntfs-3g-devel] Экспериментальная поддержка файлов Windows 10, сжатых системой» . sourceforge.net . Проверено 1 октября 2019 г.
  20. Биггерс, Эрик (29 апреля 2019 г.). «ntfs-3g-system-compression: плагин NTFS-3G для чтения файлов, сжатых системой». Гитхаб . Проверено 1 октября 2019 г.
  21. ^ Обзор загрузки файла образа Windows (WIMBoot)
  22. ^ Раймонд Чен. Что такое WofCompressedData? Означает ли WOF, что Windows — собака? Блоги разработчиков Microsoft.

Внешние ссылки