Zmuś system Windows Server 2008 do używania starszego programu ładującego BIOS zamiast EFI

12

Mamy serwery UEFI i natrafiliśmy na sytuację, w której musimy zmusić system Windows Server 2008 do uruchomienia za pomocą starszej metody BIOS zamiast przez UEFI.

Czy istnieje sposób, aby powiedzieć systemowi Windows Server 2008 (podczas instalacji lub po instalacji), aby zignorował fakt, że instaluje się na komputerze EFI, a zamiast tego instaluje i używa starszego programu ładującego BIOS?


Wypróbowałem kilka sugestii, które nie pomogły:

  • Przed instalacją systemu Windows sformatuj dyski jako partycje MBR

    Nie, system Windows odmawia instalacji:W systemach EFI system Windows można zainstalować tylko na dyskach GPT

  • Zainstaluj system Windows, migruj partycję na dysk MBR, napraw system

    Nie, konsola do naprawy systemu odmawia załadowania. Narzeka, że ​​nie rozpoznaje wersji systemu Windows, którą próbuję naprawić.

  • Wyłącz UEFI

    Gdybym mógł wyłączyć UEFI i uczynić system tylko starszym, zrobiłbym to. Jednak określone systemy, których używam (IBM HS22, x3690X5), są obsługiwane tylko przez UEFI ze starszą obsługą. Nie można po prostu wyłączyć na nich UEFI. Wymagałoby to pełnej implementacji systemu BIOS.


Rozwiązanie!

Jak podkreśla JdeBP, jedyną metodą używaną przez system Windows do ustalenia, czy użyć programu ładującego EFI / GPT, czy BIOS / MBR, jest metoda użyta do uruchomienia instalacyjnego dysku CD.

Połączenie tego z sugestią Weavera, aby stworzyć obraz .iso bez wpisu katalogu rozruchowego 0xEF (przy okazji, jest to znacznie łatwiejsze dzięki edycji szesnastkowej niż remasterowaniu obrazu), prowadzi do ładnej, zwięzłej odpowiedzi:

Wymuś uruchomienie nośnika instalacyjnego przez BIOS, a nie przez UEFI, ponieważ jest to jedyny wyróżnik, który używa Instalator Windows do określenia, którego schematu rozruchowego użyć.

MikeyB
źródło
Będzie to zależało od sprzętu. Może to pomóc, jeśli wspomnisz o sprzęcie i modelu. Niektórzy dostawcy oferują opcję trybu zgodności z BIOS-em na ekranie konfiguracji lub jako opcję rozruchu.
Tom Willwerth,
Powodem, dla którego nie wspomniałem o sprzęcie w tym pytaniu, był celowy wybór. Chcę wprowadzić tę zmianę po stronie systemu Windows, mówiąc, aby używał innego programu ładującego. Mój IBM x3690X5 ma już włączoną kompatybilność z BIOSem, więc wszystkie programy ładujące BIOS będą działać. Problem polega na tym, że W2K8 nie używa swojego modułu ładującego UEFI.
MikeyB,
2
@MikeyB: Dlaczego nie skorzystać z GPT?
tegbains 13.09.11
@tegbains: $ BIGCUSTOMER ma środowisko obrazowania, które wykorzystuje produkt, który nie obsługuje poprawnie GPT.
MikeyB
1
Gdyby dwa tygodnie nie wydobyły z ciebie tej bardzo ważnej informacji, moglibyśmy uratować Weavera wiele smutku. Sugeruję, abyś edytował swoje pytanie, aby odzwierciedlić rzeczywisty cel, ponieważ w tytule jest krok X, którego nie możesz zabrać do pracy, a twoje pytanie jest bardzo mylące.
JdeBP

Odpowiedzi:

6

Microsoft nie pozwoli ci osiągnąć twojego kroku; więc zamiast tego określ swój cel.

Microsoft błędnie łączy dysk twardy z partycją EFI z oprogramowaniem układowym EFI . Jest to oczywiście błędne. Całkiem możliwe - i w dzisiejszych czasach staje się coraz bardziej pożądane - mieć partycjonowaną płytę EFI na komputerze ze starym oprogramowaniem układowym innym niż EFI. W rzeczywistości - chociaż zajęło to dwa tygodnie, aby ludzie tutaj wykręcali z ciebie cel, a nie krok - chcesz rozmawiać. Chcesz mieć stary dysk partycjonowany MBR w stylu PC / AT na komputerze z oprogramowaniem układowym EFI. (Samo oprogramowanie EFI nie ma problemu z żadnym formatem tablicy partycji i jest rzeczywiście wymagane przez specyfikację EFI do zrozumienia obu. To Microsoft popełnia ten błąd.) I tego chcesz, ponieważ oprogramowanie innej osoby nie może zrozumieć tabeli partycji EFI.

Jedną z kilku konsekwencji błędu Microsoftu jest to, że instalator systemu Windows NT 6.1 musi zostać wywołany z nośnika instalacyjnego, który z kolei został załadowany ze starego oprogramowania PC98, aby zaakceptować pomysł instalacji systemu Windows NT 6.1 na dysku podzielony na partycje ze starym schematem partycjonowania PC / AT MBR. Niestety, jeśli dysk instalacyjny systemu Windows NT zostanie załadowany w nowym EFI, instalator pomyśli, że jest oprogramowanie układowe EFI, i dlatego zadeklaruje, że nie można go zainstalować na dyskach twardych bez partycji EFI.

Jak wskazał Weaver i jak wyjaśnia dokumentacja Microsoft , instalacyjny CD-ROM jest w rzeczywistości podwójnym bootowaniem. Jak wyjaśnia Rod Smith , można ręcznie skonstruować płytę instalacyjną systemu Windows NT 6.1, która uruchamia się w starym stylu PC98. Instalator Windows NT 6.1 pozwoli następnie na instalację na starym dysku twardym z partycją PC / AT MBR.

Jednak w systemach, w których nie ma modułu obsługi kompatybilności , jak mówisz, że twój system ma, nie pomoże to jednemu . Twój system będzie wymagał wersji EFI programu Boot Manager firmy Microsoft, zainstalowanego na partycji systemowej EFI, ponieważ w ten sposób oprogramowanie układowe spróbuje uruchomić system operacyjny. Ale gdy instalator systemu Windows NT 6.1 zostanie uruchomiony na oprogramowaniu układowym innym niż EFI, instaluje wersję Menedżera rozruchu firmy Microsoft inną niż EFI i nie utworzy partycji systemowej EFI. Taka instalacja nie uruchomi się na twoim komputerze i nie będziesz nawet w stanie ukończyć procedury instalacji. Rzeczywiście, ponieważ brakuje Ci CSM, nawet nie będziesz mógł zacząćprocedurę instalacji, ponieważ nie będzie można nawet uruchomić dysku instalacyjnego w stary sposób PC98. Microsoft nie pozwoli ci osiągnąć tego kroku dwa razy.

Zamiast tego skup się na swoim celu. Twoim celem jest umożliwienie klientowi wdrożenia systemu Windows Server 2008 na komputerach z oprogramowaniem układowym EFI z obrazu systemu. Dlatego prawidłowe pytanie, które powinieneś zadać - dostawcy oprogramowania - brzmi, jak naprawić to stare / uszkodzone oprogramowanie do tworzenia obrazów płyt, aby nie miało problemów z tabelą partycji EFI.

JdeBP
źródło
Och, w moim systemie nie brakuje trybu zgodności, to nie jest problem. Mówisz więc, że jedynym sposobem, w jaki instalator Windows wykrywa, czy system jest EFI, jest metoda, której użyto do ładowania? To nowe i ważne informacje - wypróbuję to.
MikeyB
Ach! To działa! Oto kluczowa informacja, której potrzebowałem: „Wymuś uruchomienie nośnika instalacyjnego przez BIOS, a nie przez UEFI, ponieważ jest to metoda, której używa Instalator Windows w celu ustalenia, którego schematu rozruchowego użyć”.
MikeyB,
@JdeBP +1 do Ciebie za wspaniałą odpowiedź.
Weaver
7

Krótko mówiąc, tak i nie z kilku różnych powodów. Jeśli system Windows uruchamia się z dysku GPT, musi to być system UEFI. Menedżer rozruchu systemu Windows i moduł ładujący nie mogą uruchomić się na dysk MBR z natywnego UEFI. Jeśli jednak interfejs UEFI jest skonfigurowany do uruchamiania starszego systemu BIOS, do rozruchu można użyć dysku MBR. Wynika to z trybu uruchamiania systemu Windows (BIOS z MBR lub UEFI z GPT), który jest zależny od środowiska, w którym jest wywoływany.

Czytaj dalej, aby zapoznać się z technologią -

Fizyczny sprzęt (lub sprzęt wirtualny, ale sprzęt) oprogramowanie układowe (BIOS / UEFI) zapewnia początkowe środowisko operacyjne (struktury danych i konwencje związane z uruchamianiem) oraz usługi oprogramowania układowego dostępne dla kolejnych etapów procesu uruchamiania systemu operacyjnego.

BIOS / MBR

W przypadku rozruchu systemu BIOS / MBR pierwszy sektor pierwszego dysku startowego - główny rekord rozruchowy (LBA 0) zawiera garść zestawu x86 (16 bitów 8088), następnie tablicę partycji, a następnie podpis). BIOS ładuje ten sektor do pamięci i zaczyna działać - BIOS zrzeka się własnej kontroli kodu programu, gdy tylko MBR się zaangażuje.

http://mbr.adamsatoms.com/

http://www.ata-atapi.com/hiwmbr.html

Zestaw x86 (Intel 8088 w większości MBR) w MBR analizuje tablicę partycji, szuka aktywnej partycji i przeskakuje do pierwszego sektora na tej partycji - zwanego rekordem rozruchu woluminu. Rekord rozruchowy woluminu zawiera plik jmp zestawu x86, blok parametrów BIOS (w ogóle nieużywany przez system BIOS, więc myląca nazwa) oraz kilka innych zestawów x86, które ostatecznie ładują moduł ładujący systemu operacyjnego (NTLDR lub BOOTMGR w środowiskach Windows ) z samego woluminu / partycji rozruchowej.

NTLDR lub BOOTMGR przestawiają procesor w tryb chroniony, sprawdzają konfigurację czasu rozruchu (odpowiednio boot.ini lub BCD, zarówno na woluminie / partycji rozruchowej), i ładują NTOSKRNL, gdzie reszta jest historią.

http://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx

http://en.wikipedia.org/wiki/Windows_NT_startup_process

http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/bios-parameter-block.html

UEFI / GPT

Po pierwsze pozwól mi stwierdzić, że nie mam zbyt dużego doświadczenia z UEFI / GPT. Jednakże, ponieważ użyłem go i rozumiem, że działa - duża różnica (związana z naszą rozmową) polega na tym, że kontrola wykonywalna nie jest przekazywana do MBR.

Zamiast tego oprogramowanie układowe UEFI zawiera własnego menedżera rozruchu. Ten menedżer rozruchu skanuje dyski i nośniki, - przegląda ochronny MBR dysków w formacie GPT, dociera do nagłówka GPT, a następnie nurkuje w partycji systemowej EFI (ESP), w której szuka programów wykonywalnych EFI - które powinny System operacyjny można startowych ładowarki uruchamiania systemu operacyjnego bezpośrednio, jednak jak widzieliśmy z najnowszymi MS i Apple wykonywalnych EFI, w rzeczywistości są one menedżerów startowych dodając kolejną warstwę do XX procesu i złożoności.

http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html

http://msdn.microsoft.com/en-us/windows/hardware/gg463525#X-201104111922443

Wniosek / TL; DR

Należy odrzucić to, że istnieje oczekiwane środowisko, w którym menedżer rozruchu systemu operacyjnego i moduł ładujący spodziewają się uruchomienia. Dostępne usługi na poziomie oprogramowania układowego (przerwania BIOS / UEFI), struktury danych (zmienne, konwencje stosu itp.), A nawet konwencje formatowania dysku. Nie można go zmienić w czasie wykonywania - przynajmniej nie tak, jak to rozumiem.

Twoje opcje?

Przed instalacją można kontrolować instalację za pomocą systemu BIOS / MBR lub UEFI w starszym systemie BIOS z MBR lub UEFI z GPT.

Po instalacji - może istnieć kilka interesujących możliwości zmiany formatu dysku (MBR na GPT i GPT na MBR) w trybie offline, a następnie rozruchu do konsoli odzyskiwania (w odpowiednim trybie UEFI lub BIOS) i pracy z programami bcdboot i bcdedit w celu uzyskania systemu Windows menedżer rozruchu ustawiony prosto.

Aktualizacja 2011.09.09

@MikeyB

Lista opcji, jakie rozumiem, bez formalnych sugestii.

Niemniej jednak, po przeprowadzeniu nieco więcej badań na temat UEFI (pamiętam, że nie mam z tym dużego aktywnego doświadczenia) odkryłem kilka ciekawych ciekawostek na temat menedżera rozruchu UEFI i obsługi uruchamiania CD / DVD.

Specyfikacja rozruchowa El Torito z '95 jest nadal dostępna i jest używana z bootowalnymi płytami CD / DVD. Pojedyncza płyta CD / DVD może wymagać rozruchu na kilku architekturach - i chociaż ISO 9660 jest raczej niezależna od platformy, kod wykonywalny tak nie jest. Jako taka, specyfikacja rozruchowa El Torito pozwala na wiele pozycji rozruchowych / obrazów.

Te wpisy / obrazy zawierają identyfikator platformy , który ma wskazywać, czy wpis dotyczy komputerów PC, PowerPC i innych architektur, aby system BIOS (lub oprogramowanie układowe) architektury mógł wybrać odpowiedni wpis rozruchu.

Standardowe komputery PC x86 z systemem BIOS mają identyfikator platformy El Torito 0x00. Identyfikator platformy obsługujący UEFI to 0xEF - raczej kreatywny.

Standardowe BIOS komputera PC x86 ignorują wszystkie inne wpisy oprócz 0x00. Oprogramowanie układowe UEFI, które ma starszą obsługę BIOS (znane jako Moduł Wspierania Kompatybilności (CSM)) - chociaż jest w stanie uruchomić 0x00, będzie preferowało natywną pozycję rozruchową 0xEF z katalogu.

Nośniki DVD z systemem Windows 2008, 2008 R2 i 7 zawierają katalog El Torito z wieloma obrazami o wartościach 0x00 i 0xEF. Wartość domyślna to 0x00, ale UEFI będzie nad nią połyskiwać, jeśli istnieje wartość 0xEF i wybierze pozycję 0xEF - ponieważ jest rodzima.

Możliwe jest stworzenie nośnika, który zawiera tylko preferowany identyfikator platformy w katalogu rozruchowym El Torito. Zamiast katalogu z wieloma pozycjami utwórz katalog z pojedynczymi wpisami o identyfikatorze platformy 0x00. Powinno to zmusić oprogramowanie układowe UEFI, jeśli w rzeczywistości obsługuje starsze uruchamianie systemu BIOS, do wybrania identyfikatora platformy 0x00 i uruchomienia starszego wpisu rozruchu systemu BIOS na nośniku systemu Windows.

Jak to zrobić?

Korzystanie z Oscdimg jest możliwe. Poniżej znajduje się kilka przykładów osób tworzących wyłącznie media UEFI, aby obejść ograniczenia w implementacji UEFI firmy Apple. Zauważ, że jest to przeciwieństwo tego, co próbujemy zrobić - chcemy stworzyć tylko BIOS, pomijając pozycję rozruchową UEFI z katalogu.

Tylko UEFI (przeciwny) 1

Tylko UEFI (przeciwny) 2

Proces tworzenia nośnika zawierającego tylko system BIOS jest podobny ze zmianami argumentów -bi -pargumentami na następujące

-bC:\path\to\Etfsboot.com -p0x00

Świetnym źródłem, który rzucił nieco światła na wybrane przez firmę Microsoft szaleństwo na nośniku instalacyjnym Windows, jest dokument Wsparcie i wymagania UEFI dla systemów operacyjnych Windows .

Tkacz
źródło
1
„Przed instalacją można kontrolować instalację za pomocą systemu BIOS / MBR lub UEFI w starszym systemie BIOS z MBR lub UEFI z GPT.” OK, więc jak powiedzieć systemowi Windows: „Zainstaluj na tablicy partycji w stylu MSDOS.”?
MikeyB
@MikeyB Uruchom nośnik instalacyjny systemu Windows w systemie komputerowym z tradycyjnym systemem BIOS. Lub - uruchom nośnik instalacyjny systemu Windows w systemie komputerowym z ustawionym UEFI w starszym trybie uruchamiania systemu BIOS. Pamiętaj, że interfejs UEFI musi obsługiwać starszy tryb uruchamiania systemu BIOS.
Weaver,
Sugerujesz, aby zainstalować system Windows na zupełnie innym komputerze, a następnie przenieść dyski? To wcale nie jest dobry pomysł. Ponadto, gdy ustawisz komputer UEFI na „starszy tryb BIOS”, po prostu włączy on starsze zaczepy BIOS do uruchamiania starszych dysków MBR. Nie wyłącza UEFI , więc Windows wciąż mówi „Czy to system UEFI? Tak.”
MikeyB
@MikeyB Dodano aktualizacje do oryginalnej odpowiedzi.
Weaver,
1
Widziałem coś podobnego z serwerem 2008, w trakcie nauki o limitach wielkości BIOS i MBR. Zbudowałem serwer z 2008 R2 i włączyłem starszy tryb BIOS ze względu na fakt, że nie można go zainstalować z nośnikiem USB (błąd MS), ale znalazłem, że użyłem MBR zamiast GPT, ponieważ BIOS nie jest w stanie załadować GPT (chyba że masz jakiś moduł ładujący). Krótko mówiąc, przejście do starszego trybu zdecydowanie instaluje się w starszym trybie, dowodem będzie menedżer dysków, w którym zobaczysz MBR, a nie dyski GPT.
Alex Berry,
3

Jedną z prostych metod byłoby po prostu wykonanie podstawowej instalacji systemu Windows na komputerze, który nie obsługuje EFI, przechwycenie go za pomocą oprogramowania do obrazu i przywrócenie go na prawdziwym sprzęcie.

Dobrym wyborem może być zbudowanie podstawowej instalacji na maszynie wirtualnej. We wcześniejszych wersjach (wer. <6) system Windows nie dostosowywał się dobrze do przenoszenia z jednego rodzaju sprzętu na inny. W najnowszych wersjach systemu Windows, o ile kontroler pamięci jest obsługiwany na obrazie, system Windows wykona całkiem dobrą robotę, dostosowując się do nowego sprzętu.

Dysk instalacyjny systemu Windows (wersja> = 6) zazwyczaj zawiera plik wim , który jest po prostu obrazem systemu operacyjnego.

Zoredache
źródło
Właśnie to zamierzałem zasugerować. Uruchom instalację systemu Windows na innym systemie (BIOS / MBR), a następnie przenieś dysk lub jego obraz na serwer docelowy. Jeśli się uruchomi, uruchomi się PnP i będzie z radością działał na innym sprzęcie.
Massimo,