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

10

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

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

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

Мистер малина
источник
1
Windows Server 2016 не является Windows Server 2008 R2, Windows Server 2012 или Windows Server 2012 R2. Что заставляет вас думать, что это должно / будет работать? Я не могу найти документацию MS, чтобы предположить, что это возможно.
Joeqwerty
3
из-за того, что у Microsoft действительно есть задержки в обновлении документации, думая обо всех проблемах с самой системой, трудно поддерживать все онлайн-документы в актуальном состоянии, они будут там только время ....... нет никаких причин, почему это не будет работать как что ......
Михал

Ответы:

8

Я нашел информацию о развертывании 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

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

Штука
источник
3

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

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

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

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

Вот почему

Загрузчик Windows использует встроенные процедуры 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, поставляются со значением по умолчанию 0x1c, что позволяет загружать USB2, USB3 и SD-карту; однако значение 0x04 по-прежнему установлено в сервере Hyper-V, поскольку оно было добавлено в качестве переопределения в процессе построения образа для версии 2008R2. Однако вместо добавления функции это значение теперь удаляет ее.

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

Рейд Ранкин
источник
Список значений флагов и их значений можно найти здесь: docs.microsoft.com/en-us/windows-hardware/drivers/install/…
RJ Cuthbertson
@RJCuthbertson Очень мило!
Рейд Рэнкин
1

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

DOS_Vader
источник