В прошлый раз вы узнали, как настроить историю файлов и выполнить их восстановление. Теперь я предлагаю вам посмотреть, как можно размотать клубок новой технологии резервного копирования файлов в Windows 8, потянув за одну ниточку.
Готовя статьи, я всегда использую достоверные сведения от разработчиков Microsoft – документацию MSDN/TechNet, блоги и презентации. Однако по Windows 8 такой информации пока немного – на данный момент это лишь видео конференции Build и блог создателей ОС, пересказывать который нет смысла – там все и так по-русски написано.
Эти источники не содержали сведений об истории файлов, но мне очень многое удалось выяснить, задействовав простые инструменты: диспетчер задач, текстовый редактор и утилиты Sysinternals. Как вы увидите через несколько минут, здесь нет ничего сложного!
Сегодня в программе:
- Как попасть в историю
- Что в «конфиге» тебе моем
- Тайны временного хранилища
- Если кто-то кое-где у нас порой
- Наша служба и опасна и трудна
- Все идет по плану
- Заключение
Как попасть в историю
У меня на планшете немного файлов, которые обновляются регулярно. Поэтому я закинул в планировщик заданий пару команд, обновляющих текстовые файлы на рабочем столе каждые 30 минут.
Структура папок
Распутывать клубок я начал с папки File History в корне внешнего USB-диска, на который выполнялось резервное копирование.
Из структуры папок можно сделать сразу несколько выводов:
- В одной папке могут храниться резервные копии с нескольких компьютеров, например, домашней группы. Таким образом, несколько членов семьи могут использовать один сетевой диск для хранения истории своих файлов с любого домашнего компьютера. При этом их общие файлы хранятся в единой папке Public.
- История изначально подразделяется не по компьютерам, а по учетным записям пользователей. Папка ICONIA-WIN8 названа по имени планшета и входит в папку vadikan – под этой учетной записью я настраивал историю файлов.
- Для каждого компьютера полностью воспроизводится структура папок, включенных в историю.
Кстати, интересно будет проверить на досуге, отображаются ли в интерфейсе восстановления файлов сразу все данные одного пользователя с разных систем.
Содержимое папок
Давайте посмотрим, что Windows 8 скопировала с рабочего стола, где регулярно обновлялись текстовые файлы.
Первый и самый очевидный вывод – для архивации файлов не используется сжатие, на что ранее намекали результаты поиска по истории. Это не слишком экономно с точки зрения дискового пространства, но сильно упрощает навигацию и просмотр файлов при восстановлении.
Вряд ли стоит пенять Microsoft на нерациональное использование места на диске, поскольку терабайтные носители ныне совсем недороги. Хотя из-за наводнения в Таиланде цены на HDD сейчас сильно подскочили, к выходу Windows 8 это пройдет.
Второй интересный момент заключается в том, что в имени каждого файла содержится дата в формате UTC (отставание от московского времени на 4 часа). В имени файла указана дата создания резервной копии, при этом последнее изменение файла отражено в столбце проводника «Дата изменения».
На рисунке выше выделен файл, который был сохранен 27 октября в 02:40 по московскому времени. Его резервная копия была создана девятью минутами позже, 27 октября 02:49:04 (в имени файла это 26 октября в 22:49 UTC + 4 часа разницы между поясами).
По сравнению с предыдущими версиями файлов из теневых копий в Windows 7, регулярное копирование в Windows 8 обеспечивает более точную историю версий.
Пусть вас не смущает такое большое количество копий моих файлов – ведь я изменял их каждые полчаса, а резервное копирование выполнялось ежечасно. Поэтому в каждую версию истории включалась обновленная версия файла. Если бы с момента создания первой версии мои файлы ни разу не обновлялись, Windows 8 сохранила бы только по одной копии.
Что в «конфиге» тебе моем
Для каждого компьютера помимо пользовательских папок создается папка Configuration с параметрами резервного копирования.
В файлах каталогов с расширением EDB как минимум содержатся пути и имена файлов для отображения в окне просмотра истории. Это предположение я проверил двумя путями.
- Разместил в папке с историей произвольный файл и выяснил, что он не виден при просмотре или поиске в истории файлов.
- Выполнил поиск при отключенном внешнем диске и увидел в результатах «несуществующий» путь.
При попытке открыть такой файл сообщается, что он уже был скопирован на другой диск и предлагается подключить его.
Если вдуматься, параметры архивации должны храниться где-то еще. Ведь мы изучаем диск, на котором не может быть никаких архивных данных до создания первой резервной копии. Ответ на этот вопрос содержится в конфигурационном XML-файле, который можно открыть в любом текстовом редакторе!
Владея английским, нетрудно догадаться о назначении того или иного узла в XML-файле без всякой документации.
Большинство узлов соответствует настройкам резервного копирования в графическом интерфейсе панели управления. А вот название узла StagingArea можно перевести как «промежуточное хранилище».
<StagingArea> <StagingAreaPath>C:\Users\vadikan\AppData\Local\Microsoft\Windows\FileHistory\Data</StagingAreaPath> <StagingAreaMaximumCapacity>1073741824</StagingAreaMaximumCapacity> <StagingAreaWarningThreshold>805306368</StagingAreaWarningThreshold> </StagingArea>
Сразу становится понятно, где хранилище расположено в профиле пользователя на локальном диске, а также выясняется его лимит в 1 Гб и порог предупреждения в 768 Мб. Судя по «круглым» цифрам, размер хранилища не привязан к объему системного раздела. По крайней мере, в разных системах на разделах 32 и 120 Гб размер параметры дискового пространства были одинаковыми.
Тайны временного хранилища
Я предположил, что эту папку Windows 8 использует для временного хранения данных на случай, если недоступен внешний или сетевой диск, на который должны копироваться файлы. Отсоединив диск, я убедился: в параметрах резервного копирования указано, что оно работает, хотя диск отключен.
В локальном хранилище обнаружилась примерно такая же структура папок, как и на внешнем диске. Однако в папке Data находились пронумерованные папки, каждая из которых соответствует одной версии и содержит только файлы, изменившиеся с момента создания предыдущей версии.
Версии создавались регулярно, поскольку файлы на рабочем столе обновлялись по заданиям планировщика в то время, кода планшет был включен. Внутри каждой папки воспроизводится уже знакомая вам структура включенных в историю расположений, начиная с корня локального диска, при этом файлы имеют свои обычные имена.
Спустя неделю, я подключил внешний диск и вскоре на него скопировались все версии измененных файлов. Одновременно очистилось временное хранилище, в котором осталась лишь самая последняя версия истории.
Подчеркну, что на внешний диск были перенесены файлы, но не структура временного хранилища. Ведь в постоянном хранилище все версии каждого файла собраны в одной папке и отличаются штампом времени в именах.
Итак, механизм истории файлов стал абсолютно понятен. Осталось выяснить, на какие процессы возложена черновая работа.
Если кто-то кое-где у нас порой
Из своего сундучка я извлек утилиты Sysinternals и приступил к исследованию. Отследить приложение, записывающее файлы на диск, было делом техники. Я настроил Process Monitor на слежение за папкой File History на внешнем диске, исключив фильтрами проводник и встроенный в Windows 8 антивирус (защитник Windows = Microsoft Security Essentials).
В течение часа Process Monitor поймал за руку процесс svchost.exe.
Как известно, процессы с таким именем обеспечивают работу служб Windows (svc – service, host – хозяин). Зная PID процесса, с помощью нового диспетчера задач Windows 8 было несложно выяснить, что резервное копирование обеспечивает новая служба File History.
Наша служба и опасна и трудна
Делясь первыми впечатлениями о Windows 8, я предположил, что история файлов работает на основе службы теневого копирования тома. Как видите, подробный разбор полетов показал ошибочность этого суждения. В Windows 8 резервное копирование файлов не только возложено на новую службу, но она еще и никак не связано с теневым копированием.
Открыв свойства процесса svchost в Process Explorer и перейдя на вкладку Services (слева на рисунке), я узнал, что работа службы File History обеспечивается библиотекой fhsvc.dll.
Все идет по плану
Белых пятен в истории не осталось, но напоследок я решил заглянуть в планировщик заданий, на который в каждой новой ОС Microsoft возлагается все больше и больше фоновых задач. Действительно, там обнаружилась папка File History, а в ней одно обслуживающее задание.
В описании задания сказано, что оно выполняет резервное копирование файлов в то время, когда пользователь не взаимодействует с системой. Однако у меня есть сомнения в правильности описания, т.к. для задания не поставлено условие запуска только при бездействии. Кроме того, даты выполнения задания ни разу не совпали со временем создания очередной версии или очистки временного хранилища.
Трудно сказать, зачем нужно это задание, поскольку триггеры и выполняемые действия надежно скрыты от любопытных глаз. Ясно, что оно применяется ко всем пользователям, поскольку запускается от имени системной учетной записи вне зависимости от того, выполнен ли кем-либо вход в систему. Возможно, на задание возложено обслуживание временного хранилища.
Заключение
Напоследок я бы хотел свести вместе сведения об истории файлов, которые мне удалось собрать.
- Резервное копирование файлов в Windows 8 возложено на новую службу File History и сопутствующую ей библиотеку fhsvc.dll. Эта служба автоматически запускается вместе с Windows, но в отложенном режиме.
- Для настройки истории файлов используется новый элемент панели управления File History, который также можно запустить командой:
control /name Microsoft.FileHistory
- В соответствии с заданными параметрами истории файлов, процесс svchost инициализирует действия службы по резервному копированию файлов.
- Резервные копии файлов не сжимаются, что ускоряет навигацию и просмотр. Однако при большом количестве часто изменяемых файлов это диктует более высокие требования к объему дискового пространства, отведенного для истории.
- Просмотр файлов осуществляется в отдельной программе FileHistory.exe, которую можно вызвать из панели управления или запустить из системной папки.
- Если отключен диск, предназначенный для хранения истории файлов, они копируются в промежуточное хранилище в профиле пользователя. Для хранилища установлен лимит в 1 Гб, а предупреждение выводится при заполнении на 768 Мб.
- При подключении диска на него копируются версии файлов из промежуточного хранилища, после чего оно очищается.
А как у вас обстоят дела с резервными копиями файлов? Делаете ли вы бэкап нажитого непосильным трудом и как часто?
Oleg Krylov
Shadow Copy же, только в левой руке :)
okshef
Вадим, спасибо. Одно «но» — просмотри ссылки (что-то как-то кое-где порой ведут совсем не туда)
trzprg
по хорошему данный функционал надо было ещё в ХР реализовать.
Vadim Sterkin
Oleg Krylov, скорее, это гибрид теневых копий и резервного копирования, если смотреть снаружи. Теневые копии невозможно вынести на внешний или сетевой диск, а выделенное им пространство зачастую ограничено, что порождает нестабильное наличие копий отдельно взятого файла.
okshef, спасибо, поправил.
trzprg, а почему не в Windows 95? :)
Евгений
Ни один из пунктов в голосовании не могу выбрать :), делаю копии когда потребуется, а это может быть и раз в неделю, а может быть и в год.
trzprg
зря иронизируешь :)
в 95 у меня компьютер был вообще без харда
а требования к железу были по нашим меркам просто смешными
Official system requirements were an Intel 80386 DX CPU of any speed, 4 MB of system RAM, and 50-55 MB of hard drive space depending on features selected
в ХР уже была потребность и возможность по железу для бекапа
а всё что мы получили это system state
немного обидно :)
Vadim Sterkin
Потому что у вас скрипты режутся каким-то дополнением браузера или сторонним ПО — диагностируйте самостоятельно.
trzprg, я не иронизирую, а намекаю на то, что резервное копирование требует дискового пространства. Об этом в статье тоже речь идет.
И раз вы помните свой компьютер с 95, то наверняка вспомните, какой объем жесткого диска у вас был на XP. Если бы вам предложили тогда такую модель истории файлов, вы бы не стали ей пользоваться вообще.
Виталий
Или старого доброго Process Explorer. Давно пора его вместо стандартного поставить. Хотя новый диспетчер уже лучше, чем раньше.
Зато насколько я помню возможно создание копий файла, даже если в него совершается запись или его монопольно заняла какая- то программа.
Вот такой вопрос- что с правами доступа к резервным копиям? Может ли к ним получить доступ другой пользователь? Хотя даже если это запрещено через права доступа, то всё равно можно стать владельцем и прочитать файлы.
В общем минус данного способа в том, что доступ к резервным копиям может получить любой.
По опросу- по большому счёту, практически все файлы на моём ж/д восстановимы, ибо скачаны с торрентов, и перекачается при максимальной нагрузке канала дней за десять. Всё остальное- мелочь. Ну и ювелирно настроенная ХР мне тоже дорога.
Oleg Krylov
Что значит «зато»? Это и есть основная изюминка технологии. В Win8 к ней прикрутили дополнительный функционал от Windows Backup (кто помнит так было в XP, но с точностью до наоборот: бэкап блокированного файла делать было можно, но строго в bkf и без версионности и end-user restore)
Можно, если вы администратор компьютера, а в противном случае нельзя. В любом случае BitLocker ваш друг при таком раскладе.
Виталий
Я про то, что если бекап делается на сетевой диск или съёмный ЖД, то данные, которые судя по всему никак не защищены, уязвимы.
Скорее TrueCrypt. В общем понятно.
Vadim Sterkin
Виталий, разговор о правах применительно к внешнему диску выглядит более чем надуманным. По крайней мере, он не имеет отношения конкретно к Windows 8, да и вообще к Windows.
Как правильно заметил Олег, данные надо шифровать, если вас волнует, что кто-то получит к ним доступ.
Что же касается сетевого диска, то думаю, там при нбх можно разграничить права доступа.
Да, в PE можно посмотреть, какие службы работают под процессом. Но, если вы заметили, я рассказываю о Windows 8, и не вижу греха в том, чтобы продемонстировать параллельно и другие технологии новой ОС. Тем более, что они отвечают поставленной задаче.
Что касается вашего несколько безапелляционного совета, то я его отклоню. По той же причине, по которой не использую Photoshop для обрезания картинок.
Therion1966
Проголосовал «Мне не нужны резервные копии файлов»
Вот почему:
У меня основной комп реализован так:
Диск C:\ — System (SSD, Corsair, 40 Gb, системный (Винда, и наиболее часто используемые программы))
Диск D:\ — Data (RAID 1, 2×500 Gb WD RE, здесь, наверное, комментариев не надо? :-) )
Диск E:\ — Games (WD, 320 Gb — тут, думаю, комментарии тоже не нужны. :-) )
Balamutick
Очень начинаю волноваться, если бэкапа нет уже 10 минут.
Так что история файлов, это самое то, то что Билли прописал.
Представьте, вы пин код карты не помните, записали его в шифрованную базу. Через секунду винт умирает. Восстановить данные стоит 10 000+ рублей, пин код восстановить деньги плюс время…
Так что я бы сказал, что инкрементальный бэкап, мне нужен каждые 10 минут. Снимок раз в неделю или даже реже.
Евгений
Вадим, спасибо за (как всегда!) познавательную статью. Вы не знаете, как работает функция «рекомендовать этот диск» на более низком, чем пользовательский, уровне?
Vadim Sterkin
Евгений, не знаю, но какая разница реально?
Евгений
Vadim Sterkin,
Разумных причин и правда нет, но мне очень интересно :-)
Vadim Sterkin
Евгений, так а в чем вопрос? Там же написано — если ПК входит в домашнюю группу, можно рекомендовать выбранный вами на локальном ПК диск. Тут нет никаких секретов.
Евгений
Vadim Sterkin,
Каким образом оповещаются компьютеры домашней группы о рекомендуемом общем ресурсе. Есть ли какие-нибудь особенности у самого общего ресурса. И т.д.
Вот в этом вопрос.
Vadim Sterkin
Евгений, диск делается общим для домашней группы, вот и все. И я никак не возьму в толк, какая разница, как именно они оповещаются. Наверное, так же, как ваш ПК оповещается о том, что у него есть доступ к файлам другого ПК домашней группы. Но механизм не нужно знать, чтобы порекомендовать и использовать диск.
Евгений
Vadim Sterkin,
Александр [Маздайщик]
Попробовал я эту историю файлов и с удивлением обнаружил, что ограничения на доступ к папке вообще не ставятся! Так и остаются дефолтовые:
— прошедшие проверку — изменения,
— пользователи — чтение,
— система и администраторы — полный доступ.
Залазь и правь что хочешь. «Кто владеет прошлым, тот владеет будущим».
Так что или вручную ставить права, или класть бекап на BitLocker.
Александр [Маздайщик]
Вадим, вы не интересовались назначением папки $OF в \FileHistory\Username\COMPUTERNAME\? В ней находятся подпапки с именами, состоящими из цифр, в них разные файлы, тоже с именами из цифр, но с припиской времени в скобках.
Vadim Sterkin
Александр, по-моему, это разобрано в статье и даже есть на картинках. Конкретно $OF тогда не было — возможно, они что-то поменяли с того момента (статья была написана еще до выхода 8 RTM).
Александр
Столкнулся с попыткой восстановления из истории файлов. Стандартные библиотеки восстанавливаются в штатном режиме, но вот созданная мной, в которой находились файлы с диска D не восстанавливаются. Не подскажите в чем может быть проблема?
Vadim Sterkin
Александр, надеюсь увидеть ваши выводы из этого материала в данной теме форума. Попутно меня будет интересовать наличие искомых файлов в кэше и в структуре папок резервной копии.
Александр
Спасибо за быстрый ответ, извините что так сумбурно задал вопрос, на будущее буду следовать инструкции). Проблему частично решил сам.
Открыв историю файлов, нажал на «Воостановление в исходном расположении» нужной мне копии. После операции копирования система открыла и подсветила мне папки, которые были восстановлены. Но в них были только файлы находящиеся на диске C.
Нужную мне библиотеку удалось восстановить только вручную выбрав ее в интерфейсе истории файлов. Что странно, выбор всех папок библиотеки сразу тоже не сработал (восстановились только первые 4-5), пришлось прокликать (выбор папки — восстановление) по всем папкам поочередно.
В структуре папок резервной копии все нормально, я перед восстановлением скопировал всю папку в другую директорию, чтобы нужные файлы остались пусть даже с измененными именами.
Alexander Kuzin
Вадим, у меня такой вопрос по теме. Допустим, я сохранял таким образом историю и тут… мой комп накрылся. Настраиваю новый. Как восстановить актуальную версию дерева всех моих файлов?