Последняя версия гипервизора Microsoft Hyper-V 2012 (Hyper-V 3.0) доступна в двух редакциях: в обычной версии Windows Server 2012 (в которой функционал Hyper-V активируется как отдельная роль) и в редакции Hyper-V Server 2012. Hyper-V Server 2012 – это бесплатная версия гипервизора Microsoft , предоставляющая тот же функционал, что и полноценная версия Hyper-V в Windows Server 2012. Из остальных отличий Hyper-V Server 2012 стоит выделить отсутствие графической консоли управления (только cli), возможность запуска только роли Hyper-V (DNS, AD, DHCP и прочие серверные роли запустить на нем не получится), а также лицензионными ограничениями на запуск гостевых ОС Windows.
Hyper-V Server 2012 устанавливается на жесткий диск компьютера (сервера) как обычная ОС. Однако не всем известен факт, что Hyper-V Server 2012 можно установить прямо на USB – флеш накопитель.
В этой статье мы расскажем о том, как можно установить Hyper-V Server 2012 на USB –флешку, чтобы в дальнейшем можно было загрузить систему непосредственно с нее.
Требования для создания загрузочной флешки с Hyper-V 2012
- Usb флешка или флэш-карта (SD/MMC) емкостью не менее 8 Гб
- Компьютер (сервер), соответствующий системным требованиям Hyper-V (подробнее рассматривались в статье RemoteFx в Windows 2012), с контроллером USB 2.0 или выше, с поддержкой загрузки с USB девайсов
- Клиент Windows 7 (или выше) с установленным пакетом WAIK (Windows Automated Installation Kit), на котором будет создаваться загрузочная флешка
- Дистрибутив Microsoft Hyper-V Server 2012 в формате ISO или инсталляционного диска
Кратко процедура создания загрузочной флешки с Hyper-V 2012 выглядит так:
- Создание VHD файла с образом Hyper-V 2012
- Установка файла Install.WIM на VHD диск с помощью утилиты ImageX
- Подготовка USB флешки: форматирование, монтирование в систему, создание загрузочной флешки с помощью DISKPART
- Настройка загрузчика на флешке утилитами BOOTSect and BCDBoot
- Отключение файла подкачки
Рассмотрим все операции немного подробнее:
Создание виртуально VHD диска
На компьютере с Windows 7 создадим две локальные папки
- C:\WIM – здесь будет хранится WIM файл
- C:\HyperV – каталог для VHD файла
Откройте дистрибутив Hyper-V Server 2012, и из папки Sources скопируйте файл Install.WIM в каталог C:\WIM на жестком диске.
Откройте командную строку с правами администратора. Создадим виртуальный VHD ( в дальнейшем мы запишем на него файлы системы Hyper-V 2012) размером 7 Гб, назначим ему букву диска Z:\ и отформатируем его.
diskpart
create vdisk file=C:\HyperV\hyperVBoot.vhd maximum=7000
select vdisk file=C:\HyperV\hyperVBoot.vhd
attach vdisk
create partition primary
assign letter=Z
format quick fs=ntfs label=hyperVDisk
exit
Распаковка файла образа Install.WIM на VHD диск
Распакуем образ Hyper-V 2012 на созданный нами виртуальный VHD с помощью утилиты ImageX (входит в состав WAIK):
cd /d "C:\program files\Windows AIK\tools\AMD64"
ImageX /apply C:\WIM\Install.WIM 1 Z:\
Процесс применения образа Hyper-V 2012 займет некоторое время (10-20 мин).
С помощью DISKPART отключим (отмонтируем) виртуальный диск:
diskpart
select vdisk file=C:\HyperV\hyperVBoot.vhd
detach vdisk
exit
Подготовка загрузочной USB флешки
Далее нужно подготовить загрузочную флешку и скопировать на нее созданный нами VHD файл с установленным на нем Hyper-V 2012.
Определим номер диска, присвоенный в системе USB флешке.
diskpart
list disk
Предположим, что USB диску соответствует номер диска 3. Создадим на USB флешке новый раздел, отформатируем его и назначим букву диска J:\ (команды выполняются в контексте утилиты diskpart).
select disk 3
clean
create partition primary
select partition 1
active
format quick fs=ntfs
assign letter=J
exit
Скопируйте VHD диск (C:\HyperV\hyperVBoot.vhd) на USB драйв, которому назначена буква диска J:
Обновление MBR с помощью BOOTSECT
Чтобы сервер мог загрузить ОС с флешки, необходимо с помощью утилиты BOOTSect (также входит в состав WAIK) создать на флешке загрузочный сектор:
cd /d "C:\program files\Windows AIK\tools\PETools\AMD64\"
BOOTSect /nt60 J: /force /MBR
Затем с помощью DISKPART смонтируем виртуальный диск VHD, который находится на флешке.
diskpart
select vdisk file=J:\HyperVBoot.vhd
attach vdisk
exit
Создаем BCD загрузчик
Далее необходимо на флешке создать загрузчик, который бы загружал ОС (гипервизор Hyper-V 2012) с нашего VHD диска. Для этого на USB флешке создадим хранилище BCD (Boot Configuration Data). Для этого понадобится очередная утилита WAIK – BCDBOOT, которая скопирует на флешку все необходимые загрузочные файлы:
BCDBOOT Z:\windows /s J:
Флешка почти готова к работе, осталось выполнить последний штрих.
Отключаем файл подкачки
ОС Hyper-V Windows Server 2012 это по сути просто урезанная версия Windows 2012 со всеми специфичными для нее вещами, в том числе такими как файл подкачки. Файл подкачки по умолчанию хранится на загрузочном разделе, и в том случае если система имеет достаточное количеством оперативной памяти, его можно отключить, особенно исходя из того, что файл подкачки активно используется системой для записи в него вытесняемых страниц из оперативной памяти, что может отразиться на сроке службы флеш-накопителя (количество циклов записи на которые является конечным числом).
Использование файла подкачки можно отключить с помощью реестра. Для этого загрузим реестр, установленного на флешке Hyper-V и удалим параметр, задающий параметры файла подкачки.
REG load HKLM\HyperVReg Z:\windows\system32\config\system
REG add "HKLM\HyperVReg\ControlSet001\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "" /f
REG delete "HKLM\HyperVReg\ControlSet001\Control\Session Manager\Memory Management" /v ExistingPageFiles /f
REG unload HKLM\HyperVReg
И, наконец, отмонтируем VHD диск.
Diskpart
select vdisk file=J:\HyperVBoot.vhd
detach vdisk
exit
Осталось извлечь флешку и подключить ее к компьютеру, который планируется использовать в качестве сервера Hyper-V. В BIOS или среде UEFI поменяйте порядок загрузки системы, выбрав в качестве первого загрузочного устройства USB флешку.
При первой загрузке Hyper-V Server 2012 система попросит указать новый пароль администратора. После входа запустится знакомая утилита sconfig, позволяющая задать базовые параметры системы (имя, сетевые настройки, время и т.д.), чтобы затем подключится к серверу с другого клиента с помощью графической консоли Hyper-V Manager.
Важное замечание:в официальной документации Microsoft нигде не указано, что Windows Server 2012 Hyper-V поддерживает работу с USB флешки.А указанный сценарий поддерживается только в OEM решениях вендоров (Dell, HP и т.д.).
Т.е. несмотря на то, что такая система будет полностью работоспособна, однако с точки зрения Microsoft это unsupported configuration…
Какова скорость загрузки?
Статья написана довольно давно (Hyper-V разворачивался в виде тестового стенда, на данный момент уже разобранного)- точного времени загрузки уже и не помню — вроде бы обычное.
Если есть возможность проверить, сообщите будет ли время загрузки в такой конфигурации отличаться от стандартной инсталяции.
Что-то эта инструкция, хоть и является копией с сайта M$,
не даёт результата на 2012 R2.
После некоторого времени прогресс-бара загрузки (когда кружки в кольце бегают), получаем BSOD: INACCESSIBLE_BOOT_DEVICE.
Даже проверял реестр на PollBootPartitionTimeout, что указано в оригинальной статье и здесь опущено, но она в отличии от 2008 R2 как раз имеет сразу правильное значение в 2012 R2 (как и в 2008, откуда взята оригинальная инструкция).
Кто-то победил сею проблему?
Ошибка Inaccessible Boot Device обычно говорит о том, что есть проблемы/отсутствует драйвер жесткого диска (в нашем случае usb флешки)
Какова аппаратная конфигурация Вашего стенда?
Во-первых респект за оперативный ответ!
На счёт конфигурации — в том то и дело, что самое массовое на данный момент из покупаемого под такие задачки не в промышленных масштабах — обычный 1150 сокет на H87 чипсете.
Собственно сама ошибка может быть и из-за M$-овских обновлений, судя по гуглению, и лечится она KB2966870. Пошаманил, интегрировал этот хотфикс в Install.WIM, не помогло.
Но видимо дело и правда в железе, несмотря на его стандартность и появление раньше, чем 9600 сборка iso с сервером Hyper-V 2012 R2: воткнул флешку в систему на 1156 сокете. Всё загрузилось.
Получается что в последней сборке Hyper-V сервера нету поддержки самого масс-маркетого на данный момент сокета и его чипсетов? Дайте совет, что влепить в Install.WIM, чтобы заработало 🙂 Специально mini-ITX сервачёк собрал, и вот такая беда, хоть XEN bare metal hypervisor ставь 🙁
Скорее всего нужно интегрировать в образ Hyper-V драйвера чипсета и дискового контроллера. Мануал как интегрировать драйвера в образ есть тут: https://winitpro.ru/index.php/2013/04/08/kak-integrirovat-drajvera-v-obraz-windows-server-2012/
Решение в любом случае не продакшн, и скажем так, на любителя. Возможно, на самом деле не стоит биться головой о стену и подумать о ESXi или XEN.
Да, драйверы уже в install.wim интегрировал — аж 200+ штук. Не помогло. По линку кстати ещё идёт boot.wim, но он вроде в процедуре создания установки на USB флешку вообще не участвует и интеграция в него бессмысленна?
Единственное у меня сомнения про драйверы — интегрировал-то я всё что было распакуемое на сайте вендора материнки, но тот же USB3.0 драйвер идёт только для Win 8. для Win 8.1, на котором построен 2012 R2 он уже не нужен и его нет (хотя интегрировал на всякий случай). А последние драйверы чипсетов интел вообще идут сейчас как SetupChipset.exe, и ключи уже не позволяют их вынуть как раньше. IRST интегрировал, но они на мой взгляд не нужны — т.к. к USB отношения не имеют, да и на том же 1156 тоже был IRST, хоть и более старый, и заработало без интеграции.
Может подскажите что на Ваш взгляд нужно интегрировать? Допустим те же драйверы интела — они теперь не извлекаемые, не считая (интеграция не помогла):
mb_driver_intel_irst_8series.exe
mb_driver_intel_bootdisk_irst_64_8series.exe
mb_driver_intel_irst_8series.exe
mb_driver_intel_irst_hotfix_8series.exe
Если же извлечь SetupChipset.exe ручками, то там тупо файлы u* без расширений…
Сколько вижу уже в сети подобные статьи и мучает вопрос следующий. Может я чего недопонимаю, но для чего такие пляски с виртуальным диском? Что мешает сделать ImageX /apply прям на саму флешку и после с нее грузиться? Или скопировать на нее содержимое установочного диска, сделать ее загрузочной при помощи Boosect.exe (т.е. стандартной загрузочной флешкой), а после с нее произвести загрузку/установку? Ну или вообще тупо производить установку гипервизора с компакта на флешку, как это делается с ESXi.
По поводу плясок с виртуальным диском не скажу(не пробовал, но возможно попробую), а вот поставить Hyper-V 2012 R2 напрямую на флэшку не позволяет сам установщик, только на винт(решения на флэшках отданы на откуп ОЕМ вендорам) 🙂
Хотелось бы отметить ещё один момент. Ставил гипервизор на HP MicroServer Gen8 на microSD(есть там слот на мамке). Готовил карту естественно через переходник на ноуте. И конечно же после установки в сервер загрузка не пошла 🙂
Так как там уже стоял HV2012R2 на винтах(для теста), то пришлось повторить пункты «Обновление MBR с помощью BOOTSECT» и «Создаем BCD загрузчик» непосредственно на рабочем железе(предварительно закинув туда необходимые утилиты). После этого всё завелось.
Да тоже пробовал и то и другое. Причем установщик позволяет ставить на флешку в 16 гигов (у меня именно такая была), но все так медленно происходит, просто ужас. Не заявлена самим производителем (в отличии от VMWare) установка на флешку, оттуда и пляски. Бросил эту затею. 🙂 Дабы был просто интерес, а не нужда.
C:\Program Files\Windows AIK\Tools\PETools\amd64>BOOTSect /nt60 J: /force /MBR
This tool can only be run on systems booted using a PC/AT BIOS. This system
was booted using EFI or some other firmware type.
Инструкция для классических компьютеров с BIOS и MBR. А у вас компьютер с UEFI. Нужно исопльзовать другой гайд (у меня нет такого), либо включить в настройках UEFI режим совместимости (Legacy/CSM)
У меня HP ProLiant DL360e Gen8. Долго искал информацию по установке Hyper-V 2019 на карту SD. В итоге установил всё, как указано в этой статье, с небольшой корректировкой, о которой писали выше в комментарии — пункты «Обновление MBR с помощью BOOTSECT» и «Создаем BCD загрузчик» необходимо повторить непосредственно на рабочем железе.
Под Windows 10 обновление MBR не выполнить из-за UEFI, фактически этот пункт можно отложить до запуска на рабочем железе.
Скорость работы Hyper-V с карты SD зависит от её характеристик, что логично )) Я использовал Sandisk Ultra 16Gb Class 10 SDHC-I — самую быструю из тех, что были под рукой, предварительно проверив скорость записи/чтения программой ATTO Disk Benchmark. Скорость r/w у нее получилась по тесту — 45/47 MB/s, меня устраивает вполне.
Забыл поблагодарить автора за полезную статью! ))
Дополнение: 1. На борту DL360e Gen8 медленный слот SD, скорость чтения всего 16-18 MB/s! Недостатка скорости для себя пока не вижу, разве что обновления будут долго устанавливаться.
2. Предложенную инструкцию чуть скорректировал и создал виртуальный диск в VHDX из соображений лучшей защиты данных этого формата от повреждения.