Перенос сервера в среду виртуализации Hyper-V часть 2

Перенос сервера в среду виртуализации Hyper-V часть 2 — в этой части будет рассмотрен перенос сервера Windows 2008 R2, который установлен на систему с UEFI BIOS.

В прошлый раз сервер под управлением Windows 2008 переносился в виртуальную среду Hyper-V средствами Acronis Backup Advanced. И основные проблемы были связаны с настройкой самой ОС Windows под гипервизор.


Почему снова статья про перенос?

Уже сравнительно давно идёт бум виртуализации и сопутствующий ему стремительный массовый переезд серверов с физики в виртуальную среду - это выгодно, ведь плотность использования железа при этом возрастает - "..а семь шапок сможешь?", что-то вроде того. Перенос серверов в среду виртуализации и сейчас, и в обозримом будущем - актуальная задача.


Что не так с UEFI?

UEFI - развитие стандартного BIOS, система с новыми возможности и лучшей поддержкой оборудования:

  • Инициализация оборудования происходит параллельно при UEFI и последовательно при обычном BIOS;
  • Windows умеет использовать драйверы UEFI;
  • UEFI поддерживает красивую оболочку с использованием мыши;
  • UEFI знает где лежит загрузчик на диске.

Вот с последним и будем бороться. Особенность установки Windows на чистый UEFI без поддержки совместимости или с отключенной поддержкой совместимости, заключается в том, что:

  1. Программа установки подружится только с GPT жестким диском;
  2. В процессе установки будут созданы - 100Mb системный EFI раздел, 128Mb необходимый для GPT MSR раздел (Microsoft System Reserved) - при просмотре невидим и доступен только специализированным средствам, загрузочный раздел с Windows, уже такого размера как вы выберете. Windows 8-10 создадут ещё и раздел восстановления, но у 2008 R2, как будет далее видно на скриншоте, его нет;
  3. При последующей загрузке с диска BIOS UEFI сначала ищет на диске EFI раздел, а затем пытается исполнить файл по строго фиксированному адресу на этом разделе: /EFI/boot/bootx64.efi

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

Проблема характерна для серверов с Windows 2008 R2, установленных на UEFI-платформу. Когда мы создадим клон диска сервера - виртуальный жесткий диск и добавим его к виртуальной машине 1 поколения, так как с машиной 2 поколения Windows 2008 R2 работать не умеет, то при старте машины:

  1. Обычный BIOS не сможет загрузиться с GPT (без довольно-таки кривых и сложных средств);
  2. Обычный BIOS не умеет работать с EFI разделом.
Решение

Проводить эксперименты с живым сервером в продакшене - занятие неблагодарное, значит изначально хоть что-то делать с диском сервера, кроме сдувания пылинок - от этого отказываемся сразу, будем копировать диск сервера как он есть и потом уже все операции производить на виртуальном клоне, если что-то будет испорчено в процессе, ничего страшного, ведь сервер не пострадает. Схема следующая:

  • Получаем виртуальный диск с помощью disk2vhd с сервера;
  • Удаляем EFI раздел загрузчика;
  • Получаем виртуальный диск с обычным загрузчиком с другого сервера 2008 без UEFI;
  • Копируем раздел загрузчика с одного виртуального диска на другой;
  • Переводим диск в MBR;
  • Стартуем машину и проверяем.
Работа с EFI разделом

Потребуется второй сервер - благо у меня их много, ОС умеющая цеплять к себе виртуальные диски - у меня это Windows 10 и средства для копирования партиций - у меня это Acronis Disk Director, наверное как-то и по-другому можно, у меня так.

Вот так выглядит диск на исходном сервере:

Перенос сервера в среду виртуализации Hyper-V часть 2

и никаких средств для работы с ним Windows не предлагает. Получаем виртуальный диск.

А вот та же картинка с сервера-донора:

Перенос сервера в среду виртуализации Hyper-V часть 2

Запускаем на доноре disk2vhd и отмечаем только Зарезервировано системой (остальные партиции будут присутствовать в созданном диске, но в виде неотформатированных разделов RAW):

Перенос сервера в среду виртуализации Hyper-V часть 2

Оба виртуальных диска копируем на Windows 10 и подсоединяем их через Управление дисками для работы:

Перенос сервера в среду виртуализации Hyper-V часть 2

Разделы RAW можно удалить, но вот удалять EFI раздел оснастка не умеет и Acronis не умеет это делать. Воспользуемся встроенной утилитой diskpart, запустив командную строку от имени Администратора:

Перенос сервера в среду виртуализации Hyper-V часть 2

Запускаем опять Управление дисками и проверяем:

Перенос сервера в среду виртуализации Hyper-V часть 2

Копируем загрузчик, делаем это с помощью Acronis Disk Director:

Перенос сервера в среду виртуализации Hyper-V часть 2
Работа с GPT диском

Воспользуемся проверенным методом. Всё подробно описано, повторяться не буду, скажу лишь вкратце: удаляем все разделы через встроенную оснастку Windows, переводим диск в MBR с её же помощью, ищем разделы внешней программой.

К сожалению статью с описанием метода пришлось удалить, так как 3 человек пожаловались, что с помощью этого метода потеряли данные. Пишу статьи чтобы люди пользу получали, а не вред. Поэтому так. 

Единственное отличие в том, что в этот раз пользовался утилитой Acronis Recovery Expert из комплекта Acronis Disk Director для поиска разделов, а не Paragon Partition Manager, но в целом разница невелика.

Перенос сервера в среду виртуализации Hyper-V часть 2

После преобразования в MBR получился виртуальный диск с характерной "дыркой от GPT" 🙂 , там был раздел MSR, её можно убрать тем же Acronis, сдвинув партицию. Не стал тратить на это время.

Перенос сервера в среду виртуализации Hyper-V часть 2

Машина ожила, но загрузчик конечно же поврежден. Лечим его в автоматическом режиме с помощью любого ISO дистрибутива 2008 R2 или Windows 7 x64 - вся процедура меньше минуты. И, наконец, получаем полностью работоспособную виртуальную машину. Рассказывать подробно про само восстановление тоже не стану, весь интернет набит одинаковыми статьями с описанием как это сделать.

Пара замечаний по материалу:

  • А если бы это была 2012 R2, к примеру? - Самому интересно, но без реальной задачи мотивации нет;
  • Если не копировать раздел с загрузчиком с другого сервера, а как-то пересоздать его? - Копировать проще, всего пара минут, был бы сервер.

Прикладываю виртуальный жесткий диск, в котором только 100Mb раздел загрузчика Windows 2008 R2 на всякий пожарный.

2 thoughts on “Перенос сервера в среду виртуализации Hyper-V часть 2”

  1. Роман

    Двс! Занимаюсь сейчас переносом на HVS2012r2 машины у которой стоит управление UPS в случае сбоя по питанию. Не приходилось сталкиваться с задачей корректного "тушения" ВМ и HVS (там проброс COM-портов. средства управления UPS)?

    1. Андрей

      Нет, с таким аспектом сталкиваться не приходилось, APC 5000 рулят 🙂 Наверное копал бы в сторону вот чего:
      некий сервер в той же сети управляется ИБП и перед выключением софт ИБП запускает скрипт удаленного выключения HVS.
      Если, конечно, такая схема уместна.

      //manaeff.ru/forum/viewtopic.php?f=13&t=954

Leave a Comment

Scroll to Top