Как известно, все люди делятся на два типа: те, кто уже делают бекапы и те, кто еще не делают бекапы, но скоро будут их делать. Как часто по ошибке вы удаляли файлы, или хотели откатить сделанные в файле изменения назад? Если такое желание возникало у вас хотя бы один раз, эта статья для вас и, как говорится, добро пожаловать.
Для вашего удобства статья разделена на разделы, перемещаться между которыми вы можете из оглавления ниже.
Оглавление
- Немного теории
- Включение защиты системы
- Ручное создание теневых копий
- Автоматическое создание теневых копий
- Извлечение файлов из теневых копий
Немного теории
Конечно, мы всегда сможем скопировать важные нам данные на флешку, внешний жёсткий диск, или облако и данные будут в относительной безопасности, хоть и требует от нас стратегия резервного копирования хранить несколько копий файла в разных местах. Но как же быть, если, например, мы редактировали какой-то файл, а потом уже после сохранения захотели отменить всё назад?
Большинство приложений поддерживают отмену последнего редактирования и даже нескольких редактирований, но, как правило, это можно сделать только до сохранения файла. Если файл уже сохранён, зачастую, отменить последнее изменение уже невозможно.
И вот в таких случаях нам на помощь приходит служба теневого копирования тома.
Служба теневого копирования тома, давайте для краткости будем называть её просто VSS, )от Английского Volume Shadow copy Service)) – это встроенный в Windows механизм инкрементального резервного копирования. Почему инкрементального, мы поговорим ниже, а пока вкратце посмотрим, за что же отвечает VSS:
- Создание точек восстановления системы в ручную, а так же с регулярными интервалами;
- Создание, собственно, теневых копий тома;
- Восстановление из точек восстановления системы.
Лучше всего VSS работала в Windows 7, достаточно было в параметрах системы на вкладке “защита системы” включить для всех дисков параметр “восстановление системы и предыдущих версий файлов”, после чего выделить нужное количество свободного места на диске и на этом всё. В точку восстановления системы при этом попадали не только изменившиеся системные файлы, которые и восстанавливались по умолчанию, но и вообще совершенно все файлы на томе, которые можно было вытащить из теневой копии в ручную. Восстановить же предыдущую версию файла, скажем, после неудачного редактирования, можно было в его свойствах на вкладке “Предыдущие версии”, правда только в том случае, если была включена защита системы. Хочется заметить, что по умолчанию в семёрке была включена только защита системы без предыдущих версий файлов и только на системном диске. Соответственно, если ваш файл находился на диске d:, то по умолчанию для него не создавались версии, потому что служба теневого копирования просто не рассматривала никакого диска, кроме системного.
В новых версиях Windows, начиная с Windows 10, Microsoft что-то поломала в теневых копиях. Теперь все изменённые файлы по-прежнему попадают в теневую копию, но при попытке их ручного восстановления мы получаем файлы, забитые нулями, то есть совершенно непригодные к использованию. На вкладке “Предыдущие версии”, пропавшей в Windows8 и снова появившейся в Windows10, так же пусто, то есть оттуда извлечь ничего тоже не удастся. Сама же Microsoft настоятельно рекомендует пользоваться “Историей файлов”, появившейся еще в Windows8, но этот механизм не имеет ничего общего с теневыми копиями тома и службой VSS, кроме того, он очень неэкономно расходует дисковое пространство. К счастью на момент публикации статьи этот досадный баг ещё можно обойти, на сколько долго это проработает, я не знаю.
Вдумчивый читатель, наверное, уже готов задать вопрос: “Если в теневую копию попадают все файлы всего тома, не произойдёт ли такого, что диск очень быстро переполнится, ведь фактически придётся хранить двойной, а то и тройной объём информации?”. Нет, всё будет хорошо.
Выше я уже писал, что VSS создаёт так называемый инкрементальный бекап, иначе говоря, в бекапе будут храниться только изменённые части файла. Например:
- у нас был файл размером 1 мб;
- После изменения файл стал размером 1.5 мб.
В теневую копию при этом попадёт не весь файл, а только 0.5 мб изменившихся данных, кроме того, файлы, которые не редактировались с момента создания предыдущей резервной копии в новую резервную копию вообще не попадут. Таким образом VSS даёт нам возможность хранить несколько версий одного и того же файла и при необходимости откатываться на любую из них.
Теперь настроим автоматическое создание теневых копий системного, или всех наших томов, а чуть ниже научимся извлекать из них данные в случае необходимости, но для начала проведём некоторые необязательные подготовительные работы, которые позволят нам обеспечить не только извлечение прошлых версий файлов, но и в случае необходимости производить откат системы к нужному нам состоянию.
Включение защиты системы
Начиная с Windows8, защита системы больше не позволяет нам восстанавливать предыдущие версии файлов, но всё ещё может вернуть систему к стабильному состоянию, например, после сбоя, поэтому совершенно не лишним будет ее включить. Владельцы твердотельных накопителей, начитавшиеся горе умников, могут не волноваться: включение защиты системы практически никаким образом не отразится на ресурсе вашего твердотельного накопителя. И так, поехали:
- Откроем меню “Выполнить”, нажав win+r;
- В открывшийся диалог вставляем скопированную строку:
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,4
после чего нажимаем Enter; - В списке ваших дисков находим системный раздел и нажимаем кнопку “Настроить”;
- В группе радиокнопок выбираем “Включить защиту системы”;
- Ползунком “Максимальное использование” зададим максимальный процент дискового пространства, который может быть задействован для механизма теневого копирования;
- Нажмём кнопку “Ок”;
- Теперь таким же образом задайте необходимый объём для других дисков вашего компьютера. Защиту системы на них включать не имеет смысла, почему, смотрите выше;
- Сохраните все настройки.
Теперь с определёнными интервалами система будет создавать точки восстановления. Как правило, это происходит перед установкой, или удалением драйверов и программ, а так же в случае простоя компьютера через достаточно большие интервалы времени, в Windows10 и выше 3 суток и более. Подчеркну ещё раз, что не смотря на то, что в эти точки восстановления войдут и версии файлов, восстановить их нам не получится. Чтобы иметь возможность восстановить версии файлов, необходимо в ручную запустить процесс создания теневой копии нужного тома. Из такой теневой копии, то есть созданной в ручную, версии файлов извлекаются корректно.
Ручное создание теневых копий
В ручную создать теневые копии можно двумя способами.
Первый способ через графический интерфейс наиболее простой, но с помощью него будут созданы только теневые копии тех томов, на которых включена защита системы:
- Нажмите win+r, чтобы открыть меню “выполнить”;
- Вставьте в строку редактора команду для вызова диалога защиты системы, которую я писал выше;
- В открывшемся диалоге нажмите кнопку создать;
- Дайте имя точке восстановления.
Второй способ подразумевает использование командной строки с правами администратора:
- Откройте командную строку с правами администратора;
- В командной строке введите:
wmic shadowcopy call create Volume=’C:\’
для создания теневой копии системного диска; - После выполнения команды введите:
wmic shadowcopy call create Volume=’D:\’
для создания теневой копии диска D при его наличии; - Повторите команду для всех остальных дисков на вашем компьютере, если они, разумеется, есть.
Хочется заметить: если том смонтирован в папку, то вместо буквы диска нужно указывать полный путь к папке, являющейся для тома точкой монтирования. Например, наш том смонтирован в папку media на диске d, тогда для создания теневой копии этого тома нужно использовать команду:
wmic shadowcopy call create Volume=’D:\media’
Таким образом из командной строки мы всегда можем создать теневые копии тома перед значительными изменениями и при случае восстановить все изменённые данные.
Автоматическое создание теневых копий
После того, как мы научились создавать “правильные” теневые копии, из которых мы всегда сможем извлечь нужные нам данные, было бы неплохо автоматизировать этот процесс. Думаю, сообразительные уже догадались, что делать мы будем это через планировщик заданий.
Открыть планировщик заданий можно несколькими способами:
- Написать “планировщик” без кавычек в поисковой строке меню “пуск” и выбрать “планировщик заданий из результатов поиска;
- Открыть меню “Выполнить”, нажав win+r, и в открывшемся диалоге ввести:
taskschd.msc - В любом случае у вас откроется оснастка планировщика заданий, в которой мы и будем работать. Будьте аккуратны, не удаляйте ничего из этой оснастки, современные версии Windows очень активно используют планировщик заданий.
Очень рекомендую создать в планировщике свою папку и все задания делать в дальнейшем именно в ней, это позволит избежать путаницы:
- находясь в дереве планировщика найдите раздел “библиотека планировщика заданий”;
- Откройте контекстное меню;
- В открывшемся меню выберите пункт “Создать папку”;
- Укажите имя новой папки, кириллица допускается;
- Подтвердите создание папки;
- Теперь найдите только что созданную папку в дереве планировщика и нажмите клавишу tab.
Вы перейдёте в пустой список, в котором мы и будем создавать нужные нам задачи.
Есть два мастера создания задачь: простая задача, дающая минимум настроек и сложная задача, в которой можно сразу все настроить. Мы будем создавать сразу сложную задачу, потому, как наша задача будет запускаться по нескольким условиям сразу, чтобы гарантировать создание теневых копий.
- Находясь в пустом списке только что созданной вами папки, нажмите контекстное меню и выберите пункт “Создать задачу”. Это же контекстное меню можно открыть и стоя непосредственно на папке;
- В открывшемся диалоге мастера в поле “Имя” укажите понятное для вас имя задачи, например “создание теневых копий”;
- Поле “Описание” можно не заполнять;
- В группе радиокнопок укажите “Выполнять для всех пользователей”;
- Отметьте флаг “Выполнить с наивысшими правами, чтобы задание всегда запускалось от имени администратора. Если у вас отключен контроль учётных записей, будьте готовы к сюрпризам.
Мы указали основные настройки для создаваемой задачи, но она пока еще “не умеет” запускаться самостоятельно, да и вообще, мы пока еще ничего не запускаем, так что продолжим.
- Перейдите на вкладку “Триггеры”;
- Нажмите кнопку “Добавить”;
- В открывшемся диалоге выберите радиокнопку “Ежедневно”;
- В редакторе “Повторять каждые” вы можете указать число дней, через которые задача будет повторяться, по умолчанию 1 день;
- В выпадающих списках укажите дату и время первого выполнения вашей задачи, например, завтрашнее число в полдень;
- Не трогая остальных настроек, нажмите “Ок” в диалоге настроек триггера.
Теперь у нашей задачи есть название, по крайней мере один триггер, то есть наша задача будет выполняться каждый день в полдень, но пока еще собственно неизвестно, что же именно наша задача будет выполнять. Пора исправлять эту досадную ошибку:
- Перейдите на вкладку “действия” и нажмите кнопку “Создать”;
- В открывшемся окне в строку “Программа, или сценарий” вставьте:
wmic - В строку “Добавить аргументы (не обязательно)” вставьте:
shadowcopy call create Volume=’C:\’ - Нажмите “Ок”, чтобы закрыть диалог.
Тут же можно добавить и создание теневой копии для диска D::
- Нажмите кнопку “Создать”;
- В открывшемся окне в строку “Программа, или сценарий” вставьте:
wmic - В строку “Добавить аргументы (не обязательно)” вставьте:
shadowcopy call create Volume=’D:\’ - Проделайте вышеописанные операции, заменяя буквы дисков, для всех ваших жёстких дисков, или просто нажмите “ок”.
Наша задача почти готова. При необходимости вы можете добавить для неё новые триггеры, например, чтобы теневые копии создавались каждый раз при включении компьютера. Особенно это будет полезно для тех, кто, как и я, вместо выключения довольно часто отправляет компьютер в сон, или гибернацию. Нам же нужно навести окончательный лоск на нашу задачу.
Чтобы наша задача работала исключительно, как мы хотим, проведём дополнительные настройки:
- Перейдите на вкладку “Параметры”;
- Поставьте флаг “Немедленно запускать задачу, если пропущен плановый запуск”, что позволит не пропустить создание теневой копии даже, если вы долго не включали компьютер. Хочется заметить, что при пропущенном времени выполнения задачи она выполнится не сразу, а в случайном интервале в течение 15 минут;
- Поставьте флаг “Останавливать задачу, выполняемую дольше” и в появившемся комбинированном списке выберите значение, например, 1 час, что позволит вам прибить зависшую задачу в автоматическом режиме, если вдруг что-то пойдет не так;
- В комбинированном списке “Не запускать новый экземпляр” выберите “поставить новый экземпляр задания в очередь”, что будет полезно, если в одном задании вы собираетесь создавать теневые копии сразу для всех ваших дисков;
- Нажмите “Ок”;
- Введите имя пользователя и пароль, это необходимо, чтобы система корректно выполнила задание с повышенными правами. Вводите те же имя и пароль, под которыми вы создавали задание. В большинстве случаев вам придётся ввести только пароль, имя пользователя подставится автоматически.
Ваше задание создано и готово к работе, теперь при наступлении события триггера оно запустится и выполнится, например, у меня оно выполняется каждый день в полдень и каждый раз при включении компьютера, благо много места теневые копии не занимают. Совсем забыл сказать, что файл подкачки не попадает в теневую копию, как и файлы, не изменившиеся с момента создания последней копии, в прочем, об этом я уже говорил.
Теперь мы можем чуть больше быть спокойными за свои данные, ведь почти всегда мы сможем их извлечь даже в случае полного удаления, минуя корзину. О том, как их извлечь, мы поговорим в последней части этой статьи.
Извлечение файлов из теневых копий
Если у вас по каким-то неведомым причинам до сих пор ещё Windows7, то для извлечения предыдущей версии из теневой копии вам надо совсем немного:
- Найти файл, предыдущую версию которого вы хотите восстановить;
- Открыть диалог свойств этого файла и перейти на вкладку “Предыдущие версии”;
- В списке выбрать версию, которую вы хотите восстановить.
Дальше вы можете сохранить эту версию под новым именем, или заменить ей существующий файл.
Начиная с Windows8 сделать так в клиентских операционных системах больше не получится. Вкладка “Предыдущие версии”, исчезнувшая в Windows8 и появившаяся в Windows10, нам в этом деле не поможет. Кроме того, в Windows10 нам ненавязчиво намекают на то, что для восстановления предыдущих версий нам надо использовать очень неэкономно расходующую дисковое место историю файлов.
К счастью, мы легко можем восстанавливать предыдущие версии с помощью сторонней программы Shadow Explorer. Вот вам, как всегда, инструкция, как это сделать:
- Скачайте программу по этой ссылке;
- Распакуйте архив и установите программу;
- Запустите программу;
- В выпадающем списке выберите букву диска, на котором находится файл, предыдущую версию которого вы хотите восстановить;
- В следующем выпадающем списке выберите теневую копию, из которой будете восстанавливать файл;
- Далее так же, как в проводнике, найдите нужный вам файл;
- Откройте контекстное меню файла и выберите пункт “Extract (извлечь)”;
- Укажите новое место для сохранения файла.
Внимание! Не стоит записывать извлекаемый файл поверх существующего, такое работало корректно только в диалоге свойств файла, приложение Shadow Explorer может повредить исходный файл при восстановлении старой версии поверх.
На этом у меня на сегодня всё. Надеюсь, эта статья позволит вам в случае необходимости восстановить предыдущую версию вашего файла и, быть может, побудит вас чаще делать резервные копии, ведь теневое копирование – далеко не панацея, и стандартные бекапы никто не отменял.