Próbuję uruchomić Hyper-v 2016 z USB

10

Próbowałem przetestować Hyper-v 2016 tego popołudnia, ale nie mogę uruchomić R630 z USB, który skonfigurowałem, wykonując następujące instrukcje https://technet.microsoft.com/library/ee731893(ws.10).aspx

Użyłem dokładnie tego samego przewodnika w Hyper-v 2012 R2 bez problemów.

Czy ktoś ma z tym szczęście?

Mr. Raspberry
źródło
1
Windows Server 2016 nie jest systemem Windows Server 2008 R2, Windows Server 2012 ani Windows Server 2012 R2. Co sprawia, że ​​uważasz, że to powinno / działałoby? Nie mogę znaleźć żadnej dokumentacji MS, która sugerowałaby, że jest to możliwe.
joeqwerty
3
ponieważ Microsoft ma opóźnienia w aktualizowaniu dokumentacji, myśląc o wszystkich problemach z samym systemem, trudno jest aktualizować wszystkie dokumenty online, będzie tam po prostu trochę czasu ....... nie ma powodu, dla którego to nie działałoby jak że ......
Michał

Odpowiedzi:

8

Znalazłem informacje o wdrażaniu systemu Windows Server 2016 TP3 na karcie SD.

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

W tym temacie opisano wdrażanie systemu Windows Server na karcie SD, ale był to TP3. Wydaje mi się, że możesz wykonać te same czynności w wersji wydania.

Możesz także wziąć pod uwagę SATA DOM.

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

Jest to tania i niewielka opcja dla Ciebie. Możesz wdrożyć na nim dowolny system operacyjny. Jest to więc również opcja.

Stuka
źródło
3

Ostatnio napotkałem ten problem i po kilku dniach debugowania odkryłem problem i go naprawiłem.

Proszę o werble:

Po zainstalowaniu serwera Hyper-V Server 2016 użyj narzędzia offline (np. Windows PE), aby zamontować gałąź SYSTEM nowej instalacji i zmień DWORD ControlSet001 \ Control \ BootDriverFlags z 0x04 na 0x1c. (Prawdopodobnie powinieneś również zmienić wersję ControlSet002 dla zachowania dobrej ostrożności i możesz upiec zmiany w swoim install.wim, aby uniknąć konieczności robienia tego po każdej instalacji).

(Ponieważ oczywiście zajmuje to tydzień i debugger jądra, aby dowiedzieć się, że wymaga tylko dwóch bitów zmiany w niejasnym i całkowicie nieudokumentowanym polu bitowym.)

Dlatego.

Moduł ładujący Windows używa wbudowanych procedur UEFI do znalezienia instalacji Windows i ładuje jądro i sterowniki rozruchowe do pamięci RAM przed wywołaniem ExitBootServices. Po wykonaniu tej czynności i przekazaniu kontroli do jądra, jądro nie może uzyskać dostępu do woluminu rozruchowego, chyba że odpowiednie sterowniki są już obecne w pamięci RAM.

Oto kicker: winload.efi nie jest wystarczająco skomplikowany, aby wyliczyć sprzęt i ustalić, jakie sterowniki są rzeczywiście wymagane. W starszych wersjach ładowałoby tylko rzeczy ustawione na Boot Start. Jednak ładowanie obcych sterowników powoduje obniżenie wydajności, a ponieważ system Windows zaczął obsługiwać więcej klas urządzeń rozruchowych, potrzebny był lepszy system.

Wprowadź wartość BootFlags na poszczególnych sterownikach i ogólnosystemową wartość BootDriverFlags. Jeśli (BootFlags & BootDriverFlags)! = 0, sterownik zostanie załadowany, nawet jeśli nie jest ustawiony na Boot Start. Każdy bit wartości powinien odpowiadać innemu typowi sprzętu, więc wartość BootDriverFlags określa, z jakiego rodzaju sprzętu można uruchomić komputer.

Kiedy ten mechanizm został wprowadzony, Bit 3 został wyznaczony dla urządzeń rozruchowych USB, ale uruchamianie z urządzeń USB nie było obsługiwane w standardowym systemie Windows. Wersja Hyper-V Server 2008 R2 dodała konkretną obsługę rozruchu z USB, ustawiając tę ​​wartość na 0x04, a wartość ta została ustawiona w każdej wydanej wersji serwera Hyper-V.

Ogólne ulepszenia wprowadzone od tego czasu w celu obsługi funkcji Windows To Go oznaczają, że nie musisz używać sztuczki rozruchu do VHD zalecanej dla poprzednich wersji serwera Hyper-V zainstalowanego na urządzeniach USB. Zmieniają jednak także znaczenie wartości BootDriverFlags. Urządzenia USB 3 otrzymały osobny bit, a karty SD otrzymały jeszcze jeden bit.

W wersji 2016 oznacza to, że wartość 0x04 umożliwia teraz uruchamianie tylko z dysków USB2, które nie są kartami SD. Wszystkie wersje serwera 2016 oprócz serwera Hyper-V są dostarczane z domyślną wartością 0x1c, która umożliwia rozruch z USB2, USB3 i karty SD; jednak wartość 0x04 jest nadal ustawiona na serwerze Hyper-V, ponieważ została dodana jako przesłonięcie w procesie kompilacji obrazu dla wersji 2008R2. Jednak zamiast dodawać funkcję, ta wartość teraz ją usuwa.

To wyjaśnia, dlaczego niektóre poprzednie rozwiązania tego problemu zalecały wyłączenie USB3 i uruchamianie z pamięci USB zamiast karty SD: to wymusiłoby kategorię urządzenia rozruchowego jako coś, co jest nadal objęte bardziej ograniczoną definicją „USB” "bit w BootDriverFlags.

Reid Rankin
źródło
Listę wartości flag i ich znaczenia można znaleźć tutaj: docs.microsoft.com/en-us/windows-hardware/drivers/install/…
RJ Cuthbertson
@RJCuthbertson Very nice!
Reid Rankin
1

Postępowałem zgodnie ze wskazówkami do litery (z jedynym wyjątkiem, że są to litery dysków) dla Hyper-V Server 2016 i działało idealnie dla starego serwera Dell PowerEdge T710. Działa teraz na wewnętrznym porcie USB. Jednak jednostka Dell może powiedzieć systemowi, że wewnętrzny USB powinien wyglądać jak dysk twardy. To mogła być różnica. Ale mogę powiedzieć, że tak, możesz ekstrapolować instrukcje dla 2008 R2 i zastosować je dobrze na serwerze HyperV 2016.

DOS_Vader
źródło