Ускоряем Windows на USB Flash с помощью EWF (Enhanced Write Filter). Ускоряем Windows на USB Flash с помощью EWF (Enhanced Write Filter) Какой из фильтров использовать и почему их два

Прочитали: 4607 Комментариев: 76 Рейтинг: 97

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

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

Помимо теневых копий в Windows 8 и 10 имеется фильтр записи файловой системы – UWF (Unified Write Filter ). При включенном и настроенном фильтре все изменения с файлами и каталогами на дисках производятся в оперативной памяти, без записи на диск. После перезагрузки система всегда возвращается к исходному состоянию на момент включения фильтра UWF – никакие изменения на защищаемых дисках не сохраняются.

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

Внимание! К сожалению, данный функционал доступен только в редакциях Windows 10 Enterprise (в том числе LTSB) и Windows 10 Education .

UWF по умолчанию выключен. Его включение производится через Панель управления (Control Panel -> Programs and Features -> Turn Windows Features On or Off -> Device Lockdown -> Unified Write Filter ).

После установки компонента управлять параметрами фильтра можно с помощью утилиты uwfmgr.exe , запустив консоль с правами администратора. Чтобы запустить консоль с таким правами, в строке поиска наберите Command Prompt и, щелкнув правой кнопкой мыши, выберите Run as administrator.

Посте установки UWF-фильтра его нужно включить, выполнив команду uwfmgr.exe filter enable . После этого компьютер необходимо перезагрузить.

Внимание! При включении фильтра автоматически отключаются операции, записывающие данные на диск в фоновом режиме: файл подкачки, точки восстановления, индексирование файлов, дефрагментация и т. д.

Чтобы включить защиту от записи для конкретного диска системы, необходимо выполнить команду uwfmgr.exe volume protect c: - и также перезагрузить компьютер. В данном случае ”с” – буква диска, для которого включена защита от записи.

Определенные файлы, каталоги или ветки реестра можно добавить в список исключений фильтра UWF. Изменения для этих объектов будут записываться непосредственно на диск, а не в оверлей. Некоторые каталоги и файлы нельзя добавить в исключения, в частности:

  • файлы реестра в каталоге \Windows\System32\config\;
  • корень дисков;
  • каталоги \Windows, \Windows\System32, \Windows\System32\Drivers.

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

Uwfmgr.exe file add-exclusion c:\student

Чтобы разрешить запись изменений в ключ реестра:

Uwfmgr.exe registry add-exclusion “HKLM\Software\MyRegKey”

Для применения исключений нужно перезагрузить компьютер.

При обслуживании системы (установка обновлений, обновление антивируса, копирование новых файлов) необходимо перевести компьютер в специальный сервисный режим:

Uwfmgr.exe servicing enable

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

В компактных контроллерах серии CX, в качестве жесткого диска используется флэш-память, у которой есть ограничение на количество перезаписей: 100 000 раз записал и всё. Дальше возможны неприятности и потери.

А еще есть такая операционная система Windows Embedded XP и даже Windows Embedded Standart 7. Они круче чем компактные версии CE, т. к. по сути это те же самые "настольные" операционки. Компьютеры, на которых они установлены, выключаются через меню "Пуск", иначе возможны коллизии интересов: пользователь хочет дернуть рубильник и пойти домой, а операционная система хочет культурного общения и дополнительного времени на выключение (что-то она там себе сохраняет и возможно, даже, что-то важное).

Все это как бы и не имеет отношения к TwinCAT: в первом случае можно записывать пореже, а во втором выключать аккуратнее или бить оператора по рукам, но и тут о нас позаботилась.

На старших контроллерах CX, с установленными операционными системами типа Standart, существует фильтр записи на диск, а иногда даже два:

Эти два фильтра установлены на каждом контроллере с операционной системой Windows Embedded Standart 7. И как я подозреваю, будут встраиваться в следующие операционные системы.
При включенном фильтре (одном из) операционная система думает, что запись идет на диск. Тем временем запись идет в оперативную память, файлы на диске остаются нетронутыми, а операционной системе каждый раз подсовываются файлы из оперативной памяти. После перезагрузки все файлы как бы возвращаются к своему изначальному состоянию, ведь на самом деле они и не изменялись, а изменялись их копии в оперативной памяти.
Об этом стоит помнить. Если вам нужно обновить информацию на контроллере, а фильтр включен (нужно проверить), то сначала выключите фильтр, перезагрузьте контроллер и только затем обновляйте. По окончании, не забудьте включить фильтр обратно. Ресурс флэш-диска не бесконечный.

Какой из фильтров использовать и почему их два?

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

Основная причина использовать FBWF, это возможность установить (или снять) ограничение на конкретные файлы, а лучше на специально выделенные каталоги. Например, каталог TwinCAT\Boot автоматически вносится в исключительный список и всегда доступен для записи:

Если все-таки любопытно, то фильтром EWF поддерживаются следующие функции NTFS (и, соответственно, не поддерживаются фильтром FBWF) :

  • блокировка и разблокирование файлов;
  • идентификаторы файлов в NTFS;
  • точки повторной обработки;
  • квоты;
  • жесткие связи;
  • нежесткая блокировка;
  • шифрование файлов;
  • поддержка множественных оверлеев;
  • поддержка дисковых оверлеев;
  • фиксация и выключение в режиме реального времени.
На разных томах можно одновременно использовать два разных фильтра. На одном томе можно использовать только один из фильтров или выключить фильтры совсем.
В случае с жестким диском, фильтр помогает сохранять целостность информации при внезапных отключениях ПЛК. Дернули рубильник, затем повторно включили и получили то же самое, что было до отключения: все изменения пропали, никаких ошибок записи или не оконченных операций с жестким диском не осталось.

EWF – это дополнительный модуль операционной системы, изначально входит в состав Microsoft Windows XP Embedded и Windows Embedded Standard 7 , которая применяется в различной встраиваемой технике. Например, используется в банкоматах, терминалах оплаты, игровых автоматах, различных системах «умный дом», где очень часто используется SSD или USB Flash память для уменьшения энергопотребления, тепловыделения и шумности работы.

В каких случаях применяется EWF.
1. В системах использующих SSD и CompactFlash накопители. Для сокращения числа обращений к диску при записи информации, что даёт возможность продлить срок службы этих накопителей.
2. Для ускорения работы Windows (все операции записи на диск происходят в оперативной памяти).
3. Для лёгкого возврата к первоначальному состоянию при перезагрузке Windows.

Как работает EWF.
У EWF существуют несколько режимов работы (более подробную информацию о всех режимах EWF можно получить на сайте msdn.microsoft.com/en-us/library/ms912915.aspx), нас интересует только режим EWF RAM Reg Mode.

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

Это дает несколько преимуществ:
1. Систему можно сделать полностью «стерильной» - например, установили все ПО, запустили EWF, отключили сохранение изменений, и каждый раз после перезагрузки вы получаете «чистую» ОС.
2. Вместо записи на диск все пишется в RAM, а это дает значительный прирост производительности даже на обычных HDD, не говоря уже о SSD и Flash.

Есть и минусы:
1. Отъедается оперативная память пропорционально количеству изменений, но это можно обойти, настроив сохранение части информации на других дисках не защищённых EWF фильтром.
2. Увеличивается время выключения/перезагрузки компьютера до 3-5 минут при записи изменений на диск из буферной зоны.
3. Если вся оперативная память будет заполнена (изменениями и модификациями файлов) – при попытке записи вы получите сообщение о нехватке памяти и система может просто «зависнуть».
Поэтому, если вы собираетесь копировать на защищенный диск что-то массивное, убедитесь, что у вас достаточно оперативной памяти для новых данных или временно отключите EWF (ewfmgr c: -commitanddisable –live).

Устанавливаем EWF.
Загружаем , распаковываем архив. Для простой установки используем программу EWFTool.exe из каталога ewf_tool. Нажимаем «Install EWF Support» и «Minimize Disk Writes», или запускаем install.bat из каталога ewf_install после этого нужно перезагрузить систему. Если при загрузке операционная система вылетит в BSOD (синий экран) то для отмены EWF нужно восстановить файл ntldr в корне диска C: из файла ntldr.bak. В директории command находятся командные файлы управления EWF.
Для установки можно воспользоваться сборкой включающую драйвер EWF и утилиту управления режимами работы драйвера.

Замечание.
По умолчанию EWF устанавливается на диск C. Работа с файлами на других дисках осуществляется как обычно.

Описание команд управления EWF.

Ewfmgr c: -enable – включение EWF при следующей перезагрузке
ewfmgr c: -commitanddisable – отключение EWF при следующей перезагрузке и сохранение всех изменений на диск при выключении/перезагрузке системы.
ewfmgr c: -commitanddisable -live – отключение EWF без перезагрузки системы, при этом информация на диск сохраняется непосредственно после выполнения команды
ewfmgr c: -commit – сохранить все изменения на диск при выключении/перезагрузке компьютера. Не использование этой команды ведёт к безвозвратной потере всего, что вы сделали за сеанс работы Windows! По этому, эту команду лучше всего поместить в автозагрузку или выполнять её вручную после внесения изменений

Несколько вариантов использования.

Первый вариант, если нужно ускорить работу операционной системы:

1. Запускаем EWF (ewfmgr c: -enable), помещаем команду ewfmgr c: -commit в автозагрузку или запускаем эту команду вручную и перезагружаемся.
Теперь все операции записи на диск С: будут производится в оперативной памяти, а при перезагрузке все изменения будут записываться на диск. Обратите внимание, что при нажатии на Reset или сбое питания изменения не сохранятся!
В результате значительно ускоряется работа системы. Сокращается число обращений к накопителю (SSD или Flash) на запись, продлевая срок его службы.

Второй вариант используется для сохранения изначального состояния системы. При перезагрузке все изменения данных на диске С: не сохраняются.
1. Останавливаем EWF, выполняем команду ewfmgr c: -commitanddisable –live (при этом сохраняются все изменения до выполнения команды, отключается EWF);
2. Вносим изменения (устанавливаем программы, записываем данные);
3. Выполняем команду запуска EWF ewfmgr c: -enable (этим мы фиксируем новое состояние системы);
4. Перезагружаемся.

В итоге получаем систему защищённую от любых изменений на диске С.

Опытные пользователи наверняка знакомы с программами, позволяющими как бы замораживать Windows, перенаправляя запись операций в оперативную память. Благодаря этим программам при следующей перезагрузке все изменения в файловой системе сбрасываются, и Windows возвращается в исходное состояние. Но мало кто знает, что операционная система Windows 8.1 и 10 обладает собственной функцией «заморозки» , по умолчанию отключённой.

Называется она Unified Write Filter или Фильтр записей, сокращённо UWF . Если фильтр включён, все записи, производимые в ходе операций с файлами и папками, будут записываться не на физический диск, а в особую область оперативной памяти. То есть, если вы перезагрузите компьютер, все произведённые вами или программным обеспечением изменения в файловой системе будут отменены. Функция доступна не во всех редакциях Windows, а лишь в Education , Enterprise и LTSB , а также встроенных системах (Embedded) , используемых в терминалах, банкоматах и других подобных устройствах.

Сразу нужно отметить, что UWF не идеален, поэтому мы бы не советовали использовать его на практике. Если вы всё же решите им воспользоваться, необходимо будет внести в его работу определённые изменения. В Windows фильтр записи представлен отдельным компонентом в Панели управления (апплет «Программы и компоненты») . Чтобы его активировать, откройте окошко включения и отключения компонентов Windows, найдите и разверните элемент и установите галочку в пункте .

Сохраните настройки, нажав «OK» и перезагрузите компьютер.

Включить фильтр можно также с помощью PowerShell или консольной утилиты Dism , выполнив в запущенной с повышенными привилегиями консоли CMD команду:

DISM.exe /Online /enable-Feature /FeatureName:client-UnifiedWriteFilter

DISM . exe / Online / enable - Feature / FeatureName : client - UnifiedWriteFilter

Управление установленным компонентом производится с помощью командной строки, а именно встроенной утилиты . Включается фильтр записей командой uwfmgr.exe filter enable , отключается командой uwfmgr.exe filter disable .

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

uwfmgr.exe volume protect C:

Исключение составляют внешние накопители (USB-диски) , по всей видимости, защита для них отключена на программном уровне, хотя её можно и обойти. Как проверить, включена ли защита? Командой uwfmgr.exe get-config .

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

А теперь внимание. При использовании фильтр записей некоторые службы могут начать работать некорректно. Чтобы этого избежать, их нужно будет добавить в список исключений. Список исключаемых подсистем вы можете скачать по ссылке yadi.sk/i/0-X7WdAh3NX5GL . Чтобы добавить в исключения папку/файл или ключ реестра, необходимо выполнить такие команды:

Uwfmgr.exe file add-exclusion C:\Путь_к_папке\файлу
Uwfmgr.exe registry add-exclusion «ключ_реестра»

Изменения вступают в силу после перезагрузки. Для этого правила действуют свои исключения. Так, вы не можете отключить защиту UWF для системных каталогов Windows и важных ключей реестра (см. Скриншот «ошибка отказано в доступе») . При отключении UWF командой uwfmgr.exe filter disable все правила будут удалены . Защиту также можно отключить для конкретного раздела, например, фильтр записей для диска C отключается командой uwfmgr.exe volume unprotect C: .

При работе с Unified Write Filter у вас может возникнуть необходимость временно отключить защиту, например, для установки обновлений системы или антивируса. В этом случае полное отключения фильтра необязательно, вместо этого его можно перевести в сервисный режим , выполнив команду Uwfmgr.exe servicing enable .

После перезагрузки вы можете устанавливать обновления. Повторная автоматическая перезагрузка восстановит обычный режим UWF .

И последнее.

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

Команда| Параметр| Описание
Get-Config| | Отображение параметров конфигурации UWF для текущего и следующего сеанса.
Filter| |Настройка основных параметров UWF
| Help или?|Отображение параметров конфигурации UWF для текущего и следующего сеанса
| Enable| Включает защиту UWF в следующей сессии после перезагрузки системы.
| Disable| Отключение защиты UWF в следующей сессии после перезагрузки системы.
| Enable-HORM| Включение режима HORM
| Disable-HORM| Выключение режима HORM
| Reset-Settings| Сброс всех настроек в UWF в исходное состояние
Volume|| Задание параметров для томов, защищенных UWF
| Help или?| Вывод в командной строке справки для uwfmgr.exe команд для работы с томом.
| Get-Config { или all} |Показывает параметры конфигурации и исключения файлов для указанного тома, или все тома. Отображение информации как для текущей и следующей сессии.
| Protect { или all}| Добавляет указанный том к списку томов, защищенных UWF. UWF начинает защиту после следующего перезапуска системы, когда фильтр UWF включен.
| Unprotect |Удаляет указанный том из списка томов, защищенных UWF. UWF перестает защищать том после следующего перезапуска системы.
File|| Задание параметров исключаемых файлов для UWF.
| Help или? |Вывод в командной строке справки для uwfmgr.exe команд для работы с файлами.
|Get-Exclusions { или all}| Отображает все файлы и каталоги в списке исключений для указанного тома, или все тома, если все указано. Отображение информации как для текущей, так и для следующей сессии.
| Add-Exclusion |Добавляет указанный файл в список исключений файла тома защищенного UWF. UWF начинает исключать файл из фильтрации после перезапуска системы.
|Remove-Exclusion |Удаляет указанный файл из списка исключений файла тома защищенного UWF. UWF перестает исключать файл из фильтрации после перезапуска системы.
| Commit | Подтверждает изменения в указанном файле для UWF-защищенного тома (нужны права администратора).
Registry|| Настройка параметров реестра параметры исключения для UWF.
|Help или? |Вывод в командной строке справки для uwfmgr.exe команд для работы с реестром.
| Get-Exclusions |Отображает все ключи реестра в списке реестра исключений. Отображение информации как для текущей, так и для следующей сессии.
| Add-Exclusion |Добавляет указанный ключ реестра в списке исключений реестра для UWF. UWF начинает исключать раздел реестра из фильтрации после перезапуска системы.
| Remove-Exclusion |Удаляет указанный ключ реестра из списка исключений реестра для UWF. UWF перестает исключать раздел реестра из фильтрации после перезапуска системы.
|Commit | Фиксирует изменения в указанный ключом и значением (нужны права администратора)
Overlay|| Задание параметров для оверлея UWF.
| Help или? |Вывод в командной строке справки для uwfmgr.exe команд для оверлея.
| Get-Config |Параметры конфигурации экрана для оверлея UWF. Отображение информации как для текущей, так и для следующей сессии.
| Get-AvailableSpace| Отображает объем пространства, который доступен для оверлея UWF
| Get-Consumption |Отображает объем пространства, используемого в настоящем оверлее UWF
|Get-Files { или }| Показывает список файлов тома, которые в кэше в UWF оверлея. Том может быть определен либо как буква диска, либо имя тома. Эта команда предназначена для использования в качестве диагностического инструмента
|Set-Size | Устанавливает максимальный размер оверлея UWF, в МБ в следующей сессии после перезагрузки системы.
|Set-Type {RAM или DISK} |Устанавливает способ хранения оверлея (оперативная память или жесткий диск). Чтобы установить оверлей на диск UWF должен быть отключен в текущей сессии.
|Set-WarningThreshold |Устанавливает размер оверлея в МБ, при которой выдается предупреждающее уведомление для текущей сессии.
| Set-CriticalThreshold | Устанавливает размер оверлея, в МБ, при которой выдается критическое уведомление о текущей сессии.
Servicing|| Задание параметров для режима обслуживания UWF.
| Enable| Включает режим обслуживания в следующей сессии после перезапуска (нужны права администратора).
| Disable| Выключает режим обслуживания в следующей сессии после перезапуска (нужны права администратора).
| Update-Windows| Команда устройству для обновления Windows (нужны права администратора). Microsoft рекомендуем использовать эту команду для обслуживания UWF-защищенного устройства когда это возможно.
| Get-Config |Отображает UWF информацию о режиме обслуживания для текущей и следующей сессии.
| Help |Справка о режиме обслуживания UWF.