Pull to refresh

Comments 23

UFO just landed and posted this here
Пруф или не было
Пишу на оба ресурса. Ссылки, вроде, назад на Хабр не прикрутили. Этот вопрос поднимался несколько раз здесь, и я так и не нашел на него ответа.
Только вот, здесь мне уже заметили, что в Vista/W7 таки есть встроенный бакап, и я статью подправил. А там пока не заметили, и статья, соотвественно, пока не обновлена. Так что это не кросспост — теперь это форк :)

Если у вас есть дельное решение по поводу кросспоста — с радостью к нему прислушаюсь. На ko.com.ua точно так же не любят ссылки. Не писать же вот такое: habrahabr.ru/post/135357/?
Можно так. Можно поосто скрипт в автозапуск системы ( не автозагрузку пользователя). Да в nt6+ вполне можно wbadmin на отдельный каталог натравить.
По умолчанию в Windows 7 реестр копируется каждые 10 дней в папку %WinDir%\System32\Config\RegBack, смотрите в планировщике задачу Microsoft\Windows\Registry\RegIdleBackup.
А здесь опубликовано аналогичное решение для WinXP без использования сторонних программ.
Вот поэтому полезно общаться с живыми людьми! Я копал интернеты полдня и ни одного упоминания не нашел… Тем не менее, пользовательского хайва в RegBack нет. Подправлю статью немного.
Что-то у меня фирменный сервис на Win7 x64 ставиться не хочет.

P.S.: Registry это ок, но почему тогда бакап (бастрад факапа и бэкапа? :))
Предпочитаю британский акцент :)
Фирменный сервис, вроде, x64 не поддерживает.
Это очень интересно про отсутствие встроенных средств резервирования реестра. Если у вас включен System Restore, то можете наблюдать 100500 копий реестра в %systemdrive%\System Volume Information.

Правда там лежит только SYSTEM и SOFTWARE, пользовательского там быть не должно.
Это вы про XP или Vista/7? Т.к. в вистоподобных ОС system restore иначе работает. В XP все было проще, в Win7 выручает nicbedford.co.uk/software/systemrestoreexplorer/
Когда у меня слетел профайл — я много где искал… ntuser.dat не нашел нигде, а в указанном вам каталоге, единственное похожее на реестр было syscache.hve и два .log-файла (ну и базы System Restore).
Да, вы правы, это справедливо по отношению к XP. Это они любили «помереть» с побитым реестром. Утилита интересная, спасибо.

А вы не пробовали просто Windows Backup натравить на папку «Users», он и будет периодически делать копии и реестра, и всего остального. Нет?
И да, действительно, утилита которая открывает снепшоты System restore, подтверждает в них наличие и файлов ntuser.dat, что логично, поскольку это просто снепшот тома.
Ну вот а меня файла ntuser.dat не было!
NTUser.dat.log были (2 шт), regrans-ms — были, а ntuser.dat — не было. Если бы был — не было бы этой статьи. :)
Как выяснилось, есть ряд косяков, когда в Windows Restore попадает не все. Причины понятны не до конца.
У меня, например, C:\Users перенаправляется в D:\Users, и System Restore честно сбакапила symlink, не попытавшить его прорезолвить. По большому счету, я сам виноват. Можно было и Винду кастомизировать при инсталляции, сразу указав D:\Users (но помню, что влез в какие-то проблемы с этим позже), и забыл, что это уже не XP, где System Restore работал на файловом уровне.
В других случаях, какие-то программки держат дескрипторы реестра настолько цепко, что NTuser.dat не попадает в Shadow Copy, и соотв в System Restore. Или просто глюкает Shadow Copy. В общем, факт остается фактом.

Утилиту Windows Backup я использую только с одним параметром — System Image. Все остальное жутко долго. Плюс, моя папка Users тоже нашпигована sym/hard-link'ами.
Я может чего не понимаю, но на фига нужен этот System Restore Explorer, когда Windows Explorer и сам все умеет:
Это Volume Shadow Copy. System Restore тоже им пользуется, но это несколько иная штука.
System Restore и создает VSS снепшоты каждый раз, когда его просят создать Restore Point. Я (как и все) могу ошибаться, но не могли бы Вы привести пример, когда снепшот, созданный в System Restore недоступен через «Previous Versions»?
Покопал матчасть и, похоже, таки вы правы. Хочется придумать и потестить какой-то пример с перенаправлением на другие диски (symlinks, junctions, DFS), т.к. System Restore, если я правильно помню, следит только за C:, но VSS работает на блочном уровне, так что не выйдет. :)

Польза от System Restore Explorer в том, что он монтирует shapshot в каталог (доступный не только через Explorer, но и другим программам). Через Previous Version такой фокус не удается. По крайней мере у меня.
Сейчас нет под рукой вин7, но насколько я помню System Restore работает для всех дисков, для которых включен (а для не системных он по умолчанию не включен). Работает как фильтр над volume manager-ом. То есть таки да — на блочном уровне, но файловая система которая над ним этого вообще не знает и ей, по большому счету, все равно. Снепшоты просматриваются не эксплореровским неймспейс экстеншеном (как, например, всякие панели управления и мои компьютеры), а сетевым редиректором (как сетевые шары и shared folders в большинстве виртуалок). То есть можно кликнуть в адресной строке и скопировать оттуда полный путь. Причем эти снепшоты доступны не только всем приложениям, но и ядру (правда с немного другим синтаксисом).
Registry, каким мы его знаем, впервые появился в Win95

Плохая, негодная историческая справка. Реестр появился в NT за несколько лет до Win95.

Ну и как водится «как начнешь — так и проведешь»: остаток статьи — какие то дикие мифы, а то и просто глупости.
Согласен, нужно было начать «Реестр появился в Win31 для хранения информации о COM-компонентах»… Или еще лучше — начать с INI-файлов. Win95 выбрана т.к. именно с нее начались повальные проблемы связанные с порченным реестром.
Если у вас есть дельные комментарии для улучшения статьи — с радостью выслушаю. Уже полсотни человек добавили статью в Избранное — сделаем им хорошо, развеяв все «мифы и глупости».
Реестр появился как централизованное хранилище конфигурации (его внутреннее название в ядре NT — Configuration Manager) как специализированная база данных, оптимизированная для хранения и поиска большого количества небольших значений (собственно, конфигурации). COM использует его для регистрации потому что это логично.

TxR (transactional registry) не имеет никакого отношения к целостности реестра. Реестр испокон веков был журналируемым и сам следил за целостностью метаданных — TxR нужен для обеспечения целостности (а вернее ACID) ДАННЫХ. Соответственно, «убитый» реестр я видел всего раз в жизни и вскрытие показало, что «умерла» файловая система.

Перед тем, как отключать реестр винда прибивает все программы (предварительно дав им немного времени на сохранение состояния). В ходе убиения процесса, автоматически закрываются все его хендлы. Сервисы могут заставить винду ждать до трех минут если неправильно обрабатывают события. Никакого отношения к «открытому» реестру это не имеет. Обычные приложения кажется тоже могут заблокировать перезагрузку при помощи WM_SHUTDOWN/WM_QUERYSHUTDOWN, но на них винда довольно быстро жалуется и предлагает пользователю прибить их принудительно. Опять же, никакого отношения к открытым ключам не имеет. Напротив, ВСЕ процессы в системе ВСЕГДА держат открытыми десятки ключей реестра. В этом легко убедиться при помощи ProcessExplorer/ProcessHacker. User Profile Hive Cleanup чистит хендлы не тех приложений, которые были в убиваемой сессии (те то как раз прибиваются автоматом), а те, которые держат открытым юзерский профайл из другой сессии (вот в частности сервисы) и мешают они не перегружаться (тогда бы их тоже прибили — так или по таймауту), а именно полноценному разлогиниванию пользователя. И опять таки никакого отношения к целостности реестра не имеют.

Для бекапа в винде с доисторических времен был FILE_FLAG_BACKUP_SEMANTICS, который позволяет пользователям со включенными SeBackupPrivilege/SeRestorePrivilege открывать практически любые файлы в системе (и встроенные бекапилки начиная с ntbackup всю жизнь вполне успешно этот флаг использовали). Проблема как раз была в другом: такая штука хорошо работает для отдельных файлов, но очень плохо если нужно сбекапить систему, в которую прямо во время бекапа вносятся изменения. Именно для того, чтобы обеспечить «атомарный» бекап и были введены теневые копии.
Sign up to leave a comment.

Articles