понедельник, 18 июля 2016 г.

Windows 2008 R2 - Восстановление системы с помощью утилиты wbadmin


   Думаю, что написанное здесь будет актуально и для 2012\2012R2, а так же для 7,8 и 10, но проверялось на 2008 R2. Проблема возникла с восстановлением системы, для которой ранее была сделана резервная копия full-image. В целом, как и всегда во всех подобных статьях, следует указать, что процедура восстановления хорошо описана на Microsoft Technet, но есть нюансы, которые наверняка гуглятся, но я решил их собрать в одном месте для помощи гуглящим, тем более, что сам я даже не смог толком сформулировать запрос о возникшей проблеме, уж настолько она была не очевидна.

 

  Начальные условия


 Имеется сервер с установленным на нем гипервизором VMWare ESXi, на котором работает виртуальная машина с установленной гостевой операционной системой Windows 2008 R2. Сервер выполняет роль контроллера домена. Серверу выделен один диск под операционную систему. С помощью утилиты wbadmin было выполнено резервное копирование системы (полное, full-image) в сетевую папку на другом сервере.    

   Описание проблемы

  
   Решил воспользоваться бэкапом, нашел две хорошие статьи по восстановлению системы (ссылкараз, ссылкадва). Однако, а) у меня бэкап находится в доступной по сети папке, и б) когда я иду по шагам из первой ссылки, дохожу до пункта 5 в ней, то при точной уверенности в верности адреса папки с бэкапом и задания верного пользователя для доступа к папке, я не вижу ни одной доступной версии для восстановления.
   Причину такого поведения выявить не удалось. Вероятнее всего это связано с восстановлением системного раздела, идентификаторы которого отличаются в WinPE от тех, которые видно в самой ОС. Но это лишь мои догадки, подтверждения им я, кроме как на практике в описанном ниже случае, не нашел.
   Тем не менее восстановление удалось завершить, опираясь именно на догадку выше, и перестройку действий в соответствии с ней.

   Инструкция по восстановлению из full-image backup


   Ниже представлена пошаговая инструкция со скринами на каждый чих и описаниями действий.
   Для начала необходим прямой доступ к серверу через консоль гипервизора или iLo и его аналоги. Первые несколько шагов описывать не буду, т.к. тривиально: необходимо загрузиться с установочного диска, выбрать в первом меню язык установки, формат времени и раскладку клавиатуры, после чего нажать на ссылку Repair your computer.
   В открывшемся окне будет предложено либо выбрать операционную систему для исправления ошибок, либо восстановить систему с использованием образа, созданного ранее:
   Выбираем второй пункт и переходим в окно Re-image your computer:
   Для начала необходимо установить драйвер сетевого адаптера, т.к. иначе просто невозможно будет достучаться до сетевой папки. Как описано на различных форумах и сайтах, в случае с Hyper-V драйвер на сетевые адаптеры устанавливается автоматически. Во всех остальных случаях, таких как VMWare или физический сервер, необходимо установить драйвер самостоятельно. Для этого его необходимо как-либо передать в систему (например, на флешке) и выбрать для установки. В моем случае (VMWare с ранее установленными в систему Tools'ами) необходимый драйвер находился в: <SYSTEMDISK>\Program Files\Common Files\VMWare\drivers\vmxnet3. Для того, чтобы начать установку, необходимо нажать Advanced и выбрать Install a Driver:
   После выбираем драйвер:
 
    Далее закрываем окно Re-image your computer, в открывшемся окне System Recovery Options выбрать Command Prompt:
    Дальнейшую работу будем проводить здесь. Поскольку бэкап находится в сетевой папке, необходимо настроить сетевой адаптер для работы с сетью. Перед выполнением настройки сетевого адаптера вводим команду wpeinit - активируем утилиту, инициализирующую Windows PE. Далее с помощью команды netsh interface ipv4 show interface проверяем, видны ли адаптеры, для которых ранее мы установили драйверы, а так же узнаем параметры этих адаптеров:
   Полезной здесь будет колонка Name. Настраивать будем интерфейс с индексом 2. Для того, чтобы задать сетевые параметры данному интерфейсу, необходимо ввести следующую команду - netsh interface ipv4 set address name=”NAME” source=static address=<ServerAddress> mask=<Mask> gateway=<DefaultGateway>, где параметр NAME - имя адаптера, полученное в выводе прошлой команды, address, mask, gateway - сетевые адрес, макса и шлюз по умолчанию для восстанавливаемого сервера при условии, что параметр source - источник адреса - имеет значение static. В случае DHCP все остальные поля заполняются исходя из данных DHCP сервера.
   Опционально можно дополнительно задать параметры DNS. Для этого командой net start dnscache включаем службу DNS-клиента, а командой netsh interface add dns name="Name" address=<DNSServer> index=<NumberOfDNSAddressInList>.
   На этом вспомогательные действия для восстановления завершены. Далее в инструкциях рекомендуют закрыть командную строку и пройти по пути   System Rocovery Options --> System Image Recovery --> Re-image your computer --> Advanced --> Указать сетевую папку и логин\пароль для доступа к ней, но в моем случае после указанного действия не отображается ни одной доступной версии резервных копий при условии, что они гарантированно есть в папке, а так же что связь между восстанавливаемым сервером и папкой не блокируется межсетевыми экранами. Никаких предупреждений и ошибок не возникает. Справиться с этим не получилось, поэтому было принято решение перейти к CMD и восстанавливать сервер из нее.
   Вновь переходим к командной строке и с помощью утилиты wbadmin начинаем восстановление. Во-первых, с помощью команды wbadmin get disks определяем, какое дисковое пространство есть в нашем распоряжении. Поскольку я собираюсь восстанавливать бэкап на тот же сервер, на котором он и был сделан, отличие в конфигурации будет минимальное:
   На этом этапе меня смутило наличие раздела System Reserved раздела, который помечен буквой C. Возможно, именно этот раздел мешает восстановлению системы из графического режима, но утверждать это на 100% я не готов. Тем не менее видно, то будут отличия при восстановлении - основной раздел - это раздел D, поэтому восстанавливать необходимо на него.
   Далее проверяем наличие версий резервных копий и их идентификаторы. Для этого вводим команды wbadmin get versions с указанием параметров восстанавливаемой системы:
-machine:<DCSystemName> - имя восстанавливаемого сервера 
-backupTarget:<BackupSharedFolder> -  адрес сетевой папки, содержащей резервную копию
   Как видно из рисунка, в папке есть резервная копия для указанного мною сервера, несмотря на то, что в графическом режиме бэкап не отображался. осталось последнее действие: запуск процесса восстановления с помощью команды wbadmin start recovery с указанием следующих параметров:
-version:<VersionIdentifier> - значение версии резервной копии, полученное на предыдущем шаге;
-backupTarget:<BackupSharedFolder> - адрес сетевой папки, содержащей резервную копию контроллера домена;
-machine:<DCSystemName> - имя восстанавливаемого контроллера домена;
-itemtype:Volume – указать данный параметр для восстановления полной копии;
-item:C: - указать восстанавливаемую область – ранее созданную резервную копию диска С контроллера домена;
-recoveryTarget:D: - указываем место назначения восстанавливаемой резервной копии;
   После ввода команды и указания имени пользователя, имеющего доступ к папке с бэкапом, и его пароля, необходимо подтвердить восстановление вводом Y:

Комментариев нет:

Отправить комментарий