Как ускорить ntfs через реестр
Опубликовал сначала в своем блоге как ответ на вот этот топик. Спасибо доброму хабравчанину borisko, подарившему возможность перенести сюда.
Данный материал — компиляция (полная настолько, насколько это было возможно) из нескольких источников (см. ссылки внизу поста). Буду благодарен за ответы на вопросы (они в тексте), которые у меня возникли в процессе подготовки этого материала.
С тех пор как приобрел IBM Lenovo ThinkPad X61s (это такой маленький и удобненький лаптопик с диагональю 12 дюймов), всегда хотел его использовать в автобусе, пока еду на работу — ну и на обратном пути тоже. Однако в автобусе так трясет, что за жесткий диск становится просто страшно — его там покрошит в мелкий порошок. В связи с чем был приобретен Solid State Disk (примерно то же, что и обычная флашка, только по взрослому) фирмы OCZ, который (на тот момент) стоил безумно дешево и давал возможность попробовать все прелести SSD на собственном опыте. Был приобретен экземпляр OCZ Solid Series OCZSSD2-1SLD30G 2.5" 30GB SATA II MLC Internal Solid state disk (SSD) за фантастические по тем временам 220 долларов (все остальное начиналось с 400) и торжественно воткнут в вышеупомянутый лаптоп. Поскольку диск этот был одним из первых, так называемого первого поколения, то производительность на нем до сих пор оставляет желать лучшего. Но кое-что для улучшения как скорости работы, так и продления жизни диска, можно было сделать.
Многие твики для Vista так же прекрасно работают на Windows 7.Кстати, при установке семерки сразу на SSD многие настройки из приведенных ниже сразу оказались в нужных положениях.
1. Отключить prefetch в Windows XP и оба prefetch/superfetch в Windows Vista. Prefetch/superfecth используется Windows для того, чтобы кэшировать информацию о файлах, необходимых для запуска программ. Подробнее можно прочитать в статье Руссиновича тут. Оптимизация работает для обычного диска, но для SSD не имеет смысла, так как скорость доступа к разным частям диска одинакова, плюс prefetching добавляет работы системе (собственно сам prefetching overhead, который только замедляет работу).
XP:
Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на Enableprefetcher… выбрать modify, поменять 3 на 0, подтвердить нажав OK
Vista:
prefetch: Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на Enableprefetcher… ыбрать modify, поменять 3 на 0, подтвердить нажав OK
superfetch: Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на EnableSuperfetch… ыбрать modify, поменять 3 на 0, подтвердить нажав OK
2. Поменять некоторые параметры «этажом выше», в ветке Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management (XP/Vista):
ClearPageFileAtShutdown — изменить с 0 на 1 (у меня на Windows XP производит противоположный эффект, сильно замедляет shutdown, поэтому лично я не рекомендую трогать этот флаг)
Как было выяснено путем несложного поиска в Гугле это вредный совет — он замедляет процесс shutdown-а компьютера и вдобавок производит лишний проход перезаписывая ячейки, занятые неактивными страницами page-файла.
LargeSystemСache — изменить с 0 на 1 — по поводу этого параметра ничего выяснить не удалось, продолжаем работу.
SecondLevelDataCache — изменить с 0 на размер кэша второго уровня на вашем конкретном компьютере, убедитесь, что вы меняете десятичное значение. Что это такое и зачем это надо можно посмотреть на MSDN, для современных систем не должно быть актуально (разве что вы используете какой-то неизвестный процессор).
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem (XP/Vista):
NtfsDisable8dot3nameCreation — изменить с 0 на 1. Если такого ключа нет, то его нужно создать (DWORD) или можно выполнить команду из командной строки: fsutil behavior set disable8dot3 1 — отключает создание классических имен вида 8.3 для совместимости с FAT16. Имеет смысл оставлять если у вас до сих пор бегают какие-то древние DOS-программы.
NtfsMemoryUsage — изменить значение на 2. Если такого ключа нет, то его нужно создать (DWORD). Эта настройка увеличивает пул страниц, доступных для кэширования файловых операций чтения/записи. Особенно помогает любителям запускать сразу дофига приложений или открывать десятки вкладок в браузере.
(только XP): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction — поменять Y на N. Эта настройка заставляет систему дополнительно оптимизировать область загрузки на диске (перетащить файлы один к другому), что не имеет особого смысла на SSD.
3. Отключить Indexing на диске через Administrative Tools -> Services. Если у вас уже установлен Live desktop (поиск по локальной машине от Microsoft) — мои соболезнования, но я бы попытался его снести. Аналогично Google Desktop. Вообще любые программы которые висят в памяти и что-то пишут на диск рекомендуется отключить. Особо отважные могут так же отключить либо не устанавливать резидентный антивирус.
4. Включить кэширование записи на диск через Hardware или Device manager -> Disk Drives -> ваш SSD -> Properties -> поставить галочки в полях Enable write caching on disk и Enable advanced performance (если есть это поле).
Поскольку запись — самая медленная операция для SSD, а чтение — самая быстрая, то есть смысл включать все возможные варианты кэширования записи и отключать кэширование чтения. Эта настройка будет выставлена по умолчанию если вы установили систему сразу на SSD.
5. Отключить swap-file. Сделать это можно через System Properties -> Advanced Tab -> Settings в рамке Performance. В открывшемся окне Performance Options выбрать таб Advanced, в самом низу будет в рамке Virtual Memory нажать Change, выбрать No Paging File, нажать Set, выбраться из лабиринта окон нажимая Ok и перезагрузить машину.
Этот пункт поначалу показался мне самым спорным. Однако, опробовав его и на Windows XP и на Windows 7 могу точно сказать что на моем лаптопе с 3 гигабайтами памяти единственная программа, которая падает от недостатка свопа — это GIMP. Visual Studio 2010 под Windows 7 ругается на недостаток памяти, но все равно работает, хоть и медленно.
Для ленивых — в том же разделе Performance Options можно выбрать Optimize for performance, в первой вкладке (Visual Effects). Система сама попытается подстроится под ваше железо. Лично я того же (или лучшего) эффекта достигаю регулируя те же самые настройки вручную. Но я «айтишнег», мне так нравится :)
6. Отключить hibernation. Основная причина для отключения — это сохранение ресурса диска: поскольку hibernation file лежит на одном и том же физическом месте, то ячейки используемые под его хранение вырабатывают свой ресурс быстрее. Для профилактики можно раз в месяц удалять файл, проводить дефрагментацию (ее все равно не рекомендуется проводить чаще раза в два-три месяца для SSD дисков) и пересоздавать файл. Почти наверняка он появится в новом месте, чего и требовалось.
7. Для владельцев Windows XP существует утилита RAMDisk, крайне рекомендованная к употреблению. Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ и перенаправил туда кэш браузеров Internet Explorer и Firefox. Таким образом почти все временные файлы лежали на виртуальном диске и благополучно херились при каждом перезапуске.
К сожалению на данный момент сайт с программой недоступен, поэтому буду рад за ссылки на похожие (и желательно проверенные) продукты в комментариях.
Internet Explorer 7: Tools -> рамка Browsing Settings -> Settings -> Move Folder.
Firefox: открыть пустую вкладку, набрать about:config, нажать Enter, найти (если нет — создать) ключ browser.cache.disk.parent_directory, в качестве значения указать путь к родительской папке, где будет лежать ff_cache.Перезапустить браузер. Кстати, для Firefox есть еще один твик, который одновременно с вышеперечисленными радостями еще и ускоряет скорость работы браузера. Надо перейти в Tools->Options->Privacy и отключить редко используемые пункты в этом меню. Для каждого из них (например keep my history for..) Firefox создает отдельные записи для каждой страницы на которую вы зашли сразу в нескольких таблицах SQLite. По информации с форума владельцев eeePC отключение этих опций значительно ускоряет процесс брожения по интернету.
Аналогичным образом есть смысл настроить TEMP фолдер для самой Windows. Кликаем правой кнопкой мыши на My Computer, выбираем Properties->Advanced->Environment Variables — и в разделе User Variables выставляем для нужных фолдеров пути на виртуальный диск.
8. Если вы не используете специализированных программ для дифференцированного бэкапа, то можно отключить last access time stamp (специальная маркировка, указывающая когда файл открывали последний раз). Из командной строки это можно сделать командой fsutil behavior set disablelastaccess 1 (вернуть обратно можно выполнив ту же команду и поменяв единичку на нолик).
9. Отключить журналирование в NTFS. Решать вам, стоит это делать или нет, выполняется из командной строки: fsutil usn deletejournal /d
11. Если вы не используете этот функционал — отключите Windows System Restore.
12. Если вы используете почтовые клиенты (Outlook, Thunderbird) — постарайтесь переложить файлы или папки с файлами почты на не-SSD диски. Если же у вас в системе только один диск — рекомендую поступать так же, как и со свопом, периодически перенося файл в новое место на диске.
13. Актуально только для Vista — в Windows Vista/Windows 7 дефрагментация включена по умолчанию (из моего опыта — даже при установке на SSD). В принципе SSD диски можно не дефрагментировать вообще (поскольку скорость чтения из разных частей диска одинакова). Однако тут не все так просто. Некоторые контроллеры нарочно фрагментируют файлы с целью распределения нагрузки на все ячейки, некоторые этого не делают, поэтому однозначный совет дать сложно — зависит от производителя диска и производителя контроллера. «В среднем по больнице» рекомендуется дефрагментировать диск в не чаще раза в два месяца, при условии что свободного места на нем менее 40% и более 60% файлов так или иначе перезаписываются файловой системой (т.е. если у вас, например, 60% от занятого объема — лог файлы, которые постоянно обновляются). Это дает возможность избежать «переутомления» у тех ячеек, которые постоянно заняты под изменяющиеся файлы.
14. По информации из разных источников (можно посмотреть в статье на AnandTech, ссылка ниже) настоящей дефрагментацией для SSD является низкоуровневое форматирование. Процесс форматирования возвращает все ячейки в исходное состояние и позволяет добится того же уровня производительности, как и на новом диске. Информация непроверенная (не так много людей жаждут форматировать свои диски на низком уровне), поэтому do at your own risk.
Ссылки для дополнительного чтения на форуме OCZ: раз, два, три и на форуме владельцев eeePC: раз.
Информация сильно пересекается, но есть и различия.
UPD: Дополнительная информация:
UPD 2: Добавил описание настроек, спасибо комментаторам.
UPD 3: В комментариях серьезный спор по поводу переноса swap-file в RAMdisk. Можно заглянуть сюда за мнением от Microsoft Support Engineer (не много, но все же). Как вариант — из моих личных экспериментов было видно, что субъективно (т.е. точных замеров я не производил) производительность заметно возрастала. То есть по ощущениям компьютер начинал бегать значительно быстрее и шуршал диском значительно реже.
Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
Текущие права доступа к любому объекту на NTFS томе можно вывести так:
Команда вернет список пользователей и групп, которым назначены права доступа. Права указываются с помощью сокращений:
Перед правами доступа указаны права наследования (применяются только к каталогам):
С помощью icacls вы можете изменить права доступа на папку.
Чтобы предоставить группе fs01_Auditors домена resource права чтения и выполнения (RX) на каталог, выполните:
icacls 'C:\Share\Veteran\' /grant resource\fs01_Auditors:RX
Чтобы удалить группу из ACL каталога:
icacls 'C:\Share\Veteran\' /remove resource\fs01_Auditors
С помощью icacls вы можете включить наследование NTFS прав с родительского каталога:
icacls 'C:\Share\Veteran\' /inheritance:e
Или отключить наследование с удалением всех наследованных ACEs:
icacls 'C:\Share\Veteran\' /inheritance:r
Также icacls можно использовать, чтобы изменить владельца файла или каталога:
icacls 'C:\Share\Veteran\' /setowner resource\a.ivanov /T /C /L /Q
Бэкап (экспорт) текущих NTFS разрешений каталога
Перед существенным изменением разрешений (переносе, обновлении ACL, миграции ресурсов) на NTFS папке (общей сетевой папке) желательно создать резервную копию старых разрешений. Данная копия позволит вам вернуться к исходным настройкам или хотя бы уточнить старые права доступа на конкретный файл/каталог.
Для экспорта/импорта текущих NTFS разрешений каталога вы также можете использовать утилиту icacls. Чтобы получить все ACL для конкретной папки (в том числе вложенных каталогов и файлов), и экспортировать их в текстовый файл, нужно выполнить команду
icacls 'C:\Share\Veteran' /save c:\ps\veteran_ntfs_perms.txt /t /c
Примечание. Ключ /t указывает, что нужно получить ACL для всех дочерних подкаталогов и файлов, ключ /c – позволяет игнорировать ошибки доступа. Добавив ключ /q можно отключить вывод на экран информации об успешных действиях при доступе к объектам файловой системы.В зависимости от количества файлов и папок, процесс экспорта разрешений может занять довольно продолжительное время. После окончания выполнения команды отобразится статистика о количестве обработанных и пропущенных файлов.
Откройте файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как вы видите, он содержит полный список папок и файлов в каталоге, и для каждого указаны текущие разрешения в формате SDDL (Security Descriptor Definition Language).
К примеру, текущие NTFS разрешения на корень папки такие:
Данная строка описывает доступ для нескольких групп или пользователей. Мы не будем подробно углубляться в SDDL синтаксис (при желании справку по нему можно найти на MSDN, или вкратце формат рассматривался в статье об управлении правами на службы Windows). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:
A – тип доступа (Allow)
OICI – флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)
FA – тип разрешения (SDDL_FILE_ALL – все разрешено)
S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID учетной записи или группы в домене, для которой заданы разрешения. Чтобы преобразовать SID в имя учетной записи или группы, воспользуйтесь командой:
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value
Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.
Восстановление NTFS разрешений с помощью iCacls
С помощью ранее созданного файла veteran_ntfs_perms.txt вы можете восстановить NTFS разрешения на каталог. Чтобы задать NTFS права на объекты в каталоге в соответствии со значениями в файле с резервной копией ACL, выполните команду:
icacls C:\share /restore c:\PS\veteran_ntfs_perms.txt /t /c
Примечание. Обратите внимание, что при импорте разрешений из файла указывается путь к родительской папке, но не имя самого каталога.По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов:
С учетом того, что в резервной копии ACL указываются относительные, а не абсолютные пути к файлам, вы можете восстановить разрешения в каталоге даже после его перемещения на другой диск/каталог.
Сброс NTFS разрешений в Windows
С помощью утилиты icacls вы можете сбросить текущие разрешения на указанный файл или каталог (и любые вложенные объекты):
icacls C:\share\veteran /reset /T /Q /C /RESET
Данная команда включит для указанного объекта наследование NTFS разрешений с родительского каталога, и удалит любые другие права.
Копирование NTFS прав между папками
Вы можете использовать текстовый файл с резервной копией ACL для копирования NTFS разрешений с одного каталога на другой/
Сначала создайте бэкап NTFS разрешений корня папки:
icacls 'C:\Share\Veteran' /save c:\ps\save_ntfs_perms.txt /c
А замет примените сохраненные ACL к целевой папке:
icacls e:\share /restore c:\ps\save_ntfs_perms.txt /c
Это сработает, если исходная и целевая папка называются одинаково. А что делать, если имя целевой папки отличается? Например, вам нужно скопировать NTFS разрешения на каталог E:\PublicDOCS
Проще всего открыть файл save_ntfs_perms.txt в блокноте и отредактировать имя каталога. С помощью функции Replace замените имя каталога Veteran на PublicDOCS.
Затем импортируйте NTFS разрешения из файла и примените их к целевому каталогу:
icacls e:\ /restore c:\ps\save_ntfs_perms.txt /c
Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'
Предыдущая статья Следующая статьяВозможно ее вывод разрешений и проще чем у icacls, но вот экспорт, импорт разрешений и рекурсию она все же не поддерживает.
А что если путь к файлу превышает 256 символов, как обойти ограничение?
icacls не сохраняет ВЛАДЕЛЬЦЕВ, банально в SDDL-строках отсутствует O:S-1-……… как можно заметить, а при /restore тогда «Отказано в доступе!». А с cacls и подавно…
Когда в свойствах файла во вкладке Безопасность такое:
«У вас нет разрешения на просмотр текущих разрешений для этого объекта»;
Не удалось отобразить текущего владельца.
Большинство администраторов и пользователей Windows при работе с файлами, так или иначе сталкивались с ошибкой “path too long”. Эта ошибка возникает при превышении полного пути к файлу (вместе с его именем) значения 260 символов. Многие приложения, в том числе проводник Windows, неправильно работают с такими длинными именами файлов, оказываясь их открывать, перемещать и удалять. Это ограничение не файловой системы NTFS, а библиотеки Win32 API (подробнее о проблеме и обходных способах ее решения рассказано здесь).
В новой сборке Windows 10 Insider Preview Build 14352 доступной участникам программы Windows Insider, появилась новая возможность отключить ограничение на максимальную длину пути.
Отключить ограничение MAX_PATH можно двумя способами: с помощью редактора групповых политик или через реестр. Рассмотрим оба:
При использовании домашней версии Windows 10, в которой отсутствует редактор GPO, это же изменение можно внедрить с помощью редактора реестра.
Также вы можете включить эту функцию одной командой PowerShell:Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -Value 1
Для вступления изменений в силу в обоих случаях требуется перезагрузка компьютера. После перезагрузки пользователи и программы смогут без ограничений работать с файлами, длина пути к которым превышает 260 символов. Теперь на файлы будет действовать только ограничение файловой системы NTFS – 32767 символов .
Этот функционал доступен всем пользователям Windows 10, начиная с Anniversary Update (1607), и в Windows Server 2016.
Прочитал топик «У вас 2-3 HDD? Ускорим загрузку и реакцию Windows и программ» который и сподвиг рассказать о моем методе ускорения винды. Началом послужило приобретение SSD SLC диска TS16GSSD25S-S и 4Гб памяти (в то время у меня стояла WinXP 32bit) и желание выжать из системы максимум. Данный метод тестировался мной полгода на XP и столько же на 7.
Итак цели:
1. Защита SSD диска (есть куча мнений о их «живучести», если ставить на них винду и файл подкачки);
2. Ускорение реакции винды на действия пользователя;
3. Ускорение работы приложений и служб системы;
4. Использования памяти свыше 3Гб (в случае если винда ее не видит).
Методы и инструменты:
- + единожды измененный файл (например файл реестра пользователя NTUSER.DAT) будет хранится в памяти и все обращения будут идти уже к его копии в памяти, тем самым увеличивая скорость системы
- + вся запись на диск происходит в память — увеличивая скорость системы
- + можно включить отложенную запись на один конкретный раздел диска
- + можно по команде пользователя «скинуть» все изменения на диск (например при установке тяжелого ПО)
- — вся запись на диск происходит в память — потеря питания приводит к потери данных (а точнее к потере изменений за сессию)
- — ограничен размер буфера в памяти 512Мб — при его полном заполнении СИСТЕМА ВИСНЕТ НАГЛУХО с потерей всех изменений за сессию (в версии Windows Embedded Standard 7 это ограничение увеличено до
- + не надо чистить каталог TEMP на RAM диске (при каждой перезагрузке данные в них будут теряться)
- + некоторое ускорение системы
- + некоторые утилиты допускают создание RAM диска в памяти свыше 3Гб, тем самым можно задействовать «недоступную» память
- + избавление SSD диска от хранения временных файлов
- — ограниченный размер TEMP папки (для некоторого ПО 500-800Мб мало)
- — некоторое ПО скидывает в TEMP каталог данные нужные ей после перезагрузки, естественно после оной их там не окажется
- + ускорение доступа к файлу подкачки
- + создание RAM диска в недоступной памяти свыше 3Гб
- + избавление SSD диска от хранения файла подкачки
- + фрагментация файла подкачки больше не важна
- — ограниченный объем файла подкачки
5. Метод — не храните личные данные на диске с системой и уж тем более на рабочем столе.
Все «Мои документы», фильмушки, фотки и т.д. советую хранить НЕ на системном разделе диска. Можно назвать причиной замедление работы, особенно это объективно когда все хранится на рабочем столе, но главная причина — сохранность данных. Лично я давно перешел на использование сервера в домашних условиях — все данные в семье хранятся там, это надежно и дает возможность доступа к ним с любого компа, ноутбука и КПК. Он всегда включен, всегда доступен, а на вопрос зачем держать сервер только для этого — у меня NAS сервер только лишь часть реализованных им возможностей. В связи с проблемой недоступности данных «вне дома» — верю вы придумаете решение (моим решением является VPN соединение, и не более 10 файлов на ноутбуке/кпкашке с собой). Еще есть чувство «безнаказанности», помню в 96г обливался потом, поняв что рухнул важный раздел на харде, сейчас же изгаляюсь над виндой как хочу, с уверенностью что при проблеме восстановлю ее из образа Acronis-ом за 10 минут (на том же сервере лежат порядка 10 образов на разные компы и ноуты и с разными ОС под них). Еще плюс — мне достаточно харда в 16Гб для работы под Win7.
6. Метод — перенос пользовательских папок на RAM диск.
Сильно не бейте — у меня были причины так поступить. Сначала я включил режим EWF на системный диск, спустя какое-то время мне стало не хватать буфера в 512Мб для комфортной работы (приходилось перезагружать комп раз в 1-2 дня, а обычно он у меня неделями находился в «режиме сна» и перезагружался крайне редко). Проанализировав какие файлы чаще всего меняются (отжирая при этом буфер EWF) пришел к выводу что это в меньшей степени сами файлы винды в папках WINDOWS и Program Files и в большей степени папка текущего пользователя. Решено было разнести на разные диски папку пользователя (в моем случае два пользователя) и файлы винды/программ.
Программа минимум — сделать 2 логических диска — на первом винда, на втором две папки пользователей из Documents and Settings. Для каждого диска включить EWF, тем самым общий максимальный буфер увеличится до 1Гб.
Программа максимум — перенести папку пользователя на сохраняемый RAM диск — получим очень приличный прирост в скорости, но сохранять образ этого диска надо на раздел БЕЗ EWF, а то есть риск переполнить буфер и получить зависание при перезагрузке системы в момент сохранения образа RAM диска. Плюсы и минусы:
- + ощутимый прирост в скорости (ярлыки, часть реестра, рабочий стол — все это теперь в памяти)
- + отклик системы на действия пользователя просто изумительный.
- + буфер EWF теперь не так быстро уменьшается (можно поработать без перезагрузки 3-5 дней)
- — тот же риск потерять изменения за сессию при зависании/потере питания
- — ограничен размер (иногда папка пользователя может быть просто огромной)
7. Метод — правильная разметка SSD диска.
Достаточно логична проблема, когда логический блок данных (равный, к примеру, одному физическому блоку на диске) располагается на диске со смещением. Следствие этого — при чтении/записи одного логического блока данных происходит работа с «двумя половинками», а фактически с двумя, физическими блоками на диске. В теории при форматировании диска под Win7 таких проблем не должно возникать, но желательно все таки это проверить, например с помощью Paragon Alignment Tool.
Итак, берем картину мироздания и тупо смотрим что к чему.
Постараюсь попонятнее обрисовать то, что у меня получилось и последовательность действий для достижения этого.
Начинал я с Windows XP 32bit
Структура дисков должна получится следующая:
реальные разделы или диски (NTFS)
С: — желательно первый на быстром диске, на нем винда (за вычетом папки TEMP и папок пользователей из Documents and Settings) и «самый важный» софт. EWF включен в режиме отложенной записи.
D: — второй раздел в системе, без каких-либо ускорителей — тут главное надежность. Хранятся личные документы, проинсталлированные игрушки, некоторый софт, так же сюда сохраняется образ RAM диска при выключении.
рам-диски (FAT32)
E: — рам диск, с сохранением данных в образ на диск D, на котором расположены перенесенные профили пользователей. Ориентировочный размер 300-400Мб.
F: — рам диск без сохранения данных, в корне находится файл подкачки, папка TEMP для хранения временных файлов. 500-600Мб.
Можно обойтись без букв E и F если подключать тома RAM дисков как «пустые NTFS папки». К примеру диск E подключить как папку c:\Documents and Settings\имя пользователя\ и отменив букву диска, а F прикрутив так же к каталогу windows/temp с отменой буквы диска, но при этом SWAP придется кидать в туже под папку, а не в корень. Для SuperSpeed RamDisk Plus это можно выполнить через виндовское «Управление дисками», для Gavotte RAMDisk придется работать через командную строку непосредственно с утилитой. Данный метод более предпочтительный т.к. не приходится заморачиватся с «символьными ссылками» (папками, указывающими на другой каталог или диск) и не создается множество дисков в системе.
Теперь к реализации.
Допустим у нас есть диск (SSD или простой HDD), на нем два раздела, C: под систему и D: под данные пользователей.
Отключаем индексацию файлов на всех NTFS томах (для SSD это зло), файл подкачки, восстановление системы, спящий режим (к сожалению придется пользоваться только ждущим режимом).
Чистим папки c:\WINDOWS\Prefetch и c:\Windows\system32\dllcache\.
Выполняем в командной строке sfc /cachesize=0.
Устанавливаем SuperSpeed RamDisk, кидаем в Program Files программу Gavotte RAMDisk. Для использования ими недоступной памяти у SuperSpeed в настройках нужно поставить несколько галочек (подробнее гуглить), у Gavotte — прописать в реестре [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RRamdisk\Parameters] «UsePAE»=dword:00000001 (обычно в комплекте есть reg файл).
Создаем RAM диск SuperSpeed-ом, ставим режим сохранения образа при выключении (место хранения — диск D). Он создаст диск с буквой.
Перезагружаемся и входим под Администратором (если таковой не виден — отображение администратора при запуске [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList] параметр типа dword «Adminus»=«00000001»). Ручками перемещаем все из c:\Documents and Settings\имя пользователя\ на вновь созданный RAM-диск (папка — исходник должна стать пустой) и идем в Мой компьютер — Управление — Управление дисками. Находим RAM-диск, удаляем букву диска и создаем путь, указав папку пользователя на диске C. Все, теперь можно перезайти под собой и проверить стабильность работы — ваши данные хранятся в памяти и записываются в образ на диске D при перезагрузках.
Теперь создаем рам диск с помощью Gavotte RAMDisk, указываем размер, удаляем букву диска (бэкспейсом) и нажимаем «применить». Далее монтируем диск как папку, выполнив rdutil link C:\windows\temp (придварительно ее почистив). Также необходимо переписать пути переменных среды tmp и temp на этот путь (изначально используется папка temp внутри профиля пользователя).
Теперь нужно подключить SWAP-файл, причем в ту же папку temp — выполняем addswap C:\windows\TEMP\pagefile.sys 384 384. Проверить подхватывается ли файл при запуске можно перезагрузившись и попробовав удалить его из temp (система должна не позволить), также в корне диска C не должно быть ни pagefile.sys, ни hiberfil.sys.
Самым последним этапом перезагружаемся в безопасном режиме, копируем файлы для EWF и выполняем reg файл (обычно с ним в архиве идет). При применении reg файла он обязательно должен ответить что ВСЕ данные перенесены. Далее перезагружаемся и активируем режим отложенной записи.
Так же желательна некоторая оптимизация винды — привожу листинг reg файла, который я запускаю при каждой установке XP для каждого! пользователя. Он не претендует на супер правильность, так что советую проанализировать каждый пункт и решить нужен ли он лично вам.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
«EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
«Enable»=«N»
«OptimizeComplete»=«No»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
«EnableAutoLayout»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
«NtfsDisable8dot3NameCreation»=dword:00000001
«NtfsDisableLastAccessUpdate»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
«DisablePagingExecutive»=dword:00000001
«LargeSystemCache»=dword:00000001
«IOPageLockLimit»=dword:03e80000
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl]
«Win32PrioritySeparation»=dword:00000005
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
«BootExecute»=""
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl]
«IRQ8Priority»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
«Posix»=-
«Optional»=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
«Auto»=«0»
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoRecentDocsHistory»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Desktop]
«MenuShowDelay»=«50»
«FontSmoothing»=«2»
«FontSmoothingType»=«2»
«FontSmoothingOrientation»=«1»
[HKEY_CURRENT_USER\software\microsoft\windows\currentversion\explorer\advanced]
«TaskbarGroupSize»=dword:00000006
«SeparateProcess»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Keyboard]
«InitialKeyboardIndicators»=«2»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
«WaitToKillServiceTimeout»=«10000»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoFavoritesMenu»=dword:00000001
«NoRecentDocsMenu»=dword:00000001
«NoSMHelp»=dword:00000001
«MemCheckBoxInRunDlg»=dword:00000001
«NoActiveDesktop»=dword:00000001
«NoLowDiskSpaceChecks»=dword:00000001
«NoSharedDocuments»=dword:00000001
Теперь про Windows 7 32bit
С этой виндой будет работать хр-шный EWF, но получилось достать новую версию от Windows 7, у которой буфер отложной записи около 1300Мб. В связи с этим отпадает необходимость переносить папку пользователя из Documents and Settings (к тому же последняя разрослась до неприличных размеров) и все манипуляции сводятся к включению EWF, добавлению RAM-диска с помощью Gavotte RAMDisk и перемещения туда файла подкачки. Reg файл также более скромный т.к. в актуальности многих параметров я не уверен, то оставил только некоторые из них.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
«EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
«Enable»=«N»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
«EnableAutoLayout»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
«NtfsDisableLastAccessUpdate»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
«LargeSystemCache»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Desktop]
«MenuShowDelay»=«150»
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
«BootExecute»=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
«Auto»=«0»
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoRecentDocsHistory»=dword:00000001
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
«WaitToKillServiceTimeout»=«10000»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«MemCheckBoxInRunDlg»=dword:00000001
«NoLowDiskSpaceChecks»=dword:00000001
Для удобства пользования EWF у меня на рабочем столе лежат два батника. Первый сбрасывает буфер на диск и выключает EWF до следующей загрузки системы (актуально при установки ПО). Второй в вкратце показывает сколько израсходовано буфера:
EWF сброс памяти.bat
ewfmgr c: -commitanddisable -live
ewfmgr c: -enable
pause
EWF состояние.bat
@ewfmgr -all | find «Volume Name»
@ewfmgr -all | find «State»
@ewfmgr -all | find «Boot Command»
@ewfmgr -all | find «Memory used for data»
pause
Читайте также: