Попытка запустить Hyper-v 2016 с USB-накопителя

Этим днем ​​я пытался протестировать Hyper-v 2016, но мне не удалось загрузить свой R630 с USB, который я настроил, используя следующие инструкции https://technet.microsoft.com/library/ee731893 (ws.10) .aspx

Я без проблем использовал точно такое же руководство для Hyper-v 2012 R2.

Кому-нибудь повезло с этим?

10
задан 23 November 2016 в 15:11
3 ответа

Я нашел информацию об установке Windows Server 2016 TP3 на SD-карту.

https://www.danielstechblog.info/how-to-deploy-windows-server-2016-tp3-onto-an-sd-card/

Эта тема описывает установку Windows Server на SD-карту, но это был TP3. Полагаю, что вы можете выполнить те же действия, что и в версии релиза.

Также вы можете принять во внимание SATA DOM.

https://www.supermicro.com/products/nfo/SATADOM.cfm

Это дешевый и небольшой вариант для вас. Вы можете установить на него любую операционную систему. Так что это тоже вариант.

8
ответ дан 2 December 2019 в 22:08

Я выполнил инструкции к букве (за исключением букв дисков) для Hyper-V Server 2016, и это отлично работало для старого сервера Dell PowerEdge T710. Теперь он работает на внутреннем USB-порту. Однако блок Dell может сообщить системе, что внутренний USB-порт должен отображаться как жесткий диск. Возможно, в этом была разница. Но я могу сказать, что да, вы можете экстраполировать инструкции для 2008 R2 и применить их к серверу HyperV 2016 года.

1
ответ дан 2 December 2019 в 22:08

Я обнаружил эта проблема недавно, и после нескольких дней отладки я обнаружил проблему и исправил ее.

Барабан, пожалуйста:

После установки Hyper-V Server 2016 используйте автономный инструмент (например, Windows PE) чтобы смонтировать куст SYSTEM новой установки, и измените DWORD ControlSet001 \ Control \ BootDriverFlags с 0x04 на 0x1c. (Вероятно, вам также следует изменить версию ControlSet002, и вы можете записать изменения в свой install.wim, чтобы не делать этого после каждой установки.)

(Поскольку , конечно , требуется неделя и отладчик ядра, чтобы выяснить, что для этого просто требуется двухразрядное изменение в неясном и полностью недокументированном битовом поле.)

Вот почему.

Загрузка Windows loader использует встроенные процедуры UEFI для поиска установленной Windows и загружает ядро ​​и загрузочные драйверы в оперативную память перед вызовом ExitBootServices. После того, как это сделано и передано управление ядру, ядро ​​не сможет получить доступ к загрузочному тому, если соответствующие драйверы уже не присутствуют в ОЗУ.

Но вот неприятность: winload.efi недостаточно сложен, чтобы перечислить оборудование и определить, какие драйверы действительно требуются. В более старых версиях он загружал только то, что установлено на Boot Start. Однако загрузка посторонних драйверов влечет за собой снижение производительности, и поскольку Windows начала поддерживать больше классов загрузочных устройств, потребовалась лучшая система.

Введите значение BootFlags для отдельных драйверов и значение BootDriverFlags для всей системы. Если (BootFlags & BootDriverFlags)! = 0, драйвер загрузится, даже если для него не задано значение Boot Start. Предполагается, что каждый бит в значении соответствует разному типу оборудования, поэтому значение BootDriverFlags устанавливает, с какого типа оборудования можно загружаться.

Когда этот механизм был представлен, бит 3 был назначен для загрузочных устройств USB, но загрузка с USB-устройств не поддерживалось в стандартной Windows. Версия Hyper-V Server 2008 R2 добавила особую поддержку загрузки с USB, установив для этого значения 0x04, и это значение было установлено в каждой версии Hyper-V Server, выпущенной с тех пор.

С тех пор были внесены общие улучшения для поддержки Функция Windows To Go означает, что вам не нужно использовать уловку загрузки с VHD, рекомендованную для предыдущих версий Hyper-V Server, установленных на USB-устройствах. Однако они также меняют значение значения BootDriverFlags. Устройства USB 3 получили отдельный бит, а SD-карты - еще один бит.

В версии 2016 года это означает, что значение 0x04 теперь разрешает загрузку только с дисков USB2, которые не являются SD-картами. Все версии Server 2016, кроме Hyper-V Server, поставляются со значением по умолчанию 0x1c, что позволяет загружать USB2, USB3 и SD-карту; однако значение 0x04 по-прежнему установлено на сервере Hyper-V, поскольку оно было добавлено в качестве переопределения в процессе построения образа для версии 2008R2. Однако вместо добавления функции это значение теперь удаляет ее.

Это объясняет, почему некоторые предыдущие решения этой проблемы рекомендовали отключать USB3 и загружаться с USB-накопителя вместо SD-карты: это приведет к принудительному назначению категории загрузочного устройства быть чем-то, что все еще охвачено теперь более ограниченным определением бита «USB» в BootDriverFlags.

3
ответ дан 2 December 2019 в 22:08

Теги

Похожие вопросы