Примушуйте Windows Server 2008 використовувати застарілий завантажувач BIOS замість EFI


12

У нас є сервери UEFI, і ми натрапили на ситуацію, коли нам потрібно змусити Windows Server 2008 завантажуватися за допомогою застарілого методу BIOS, а не через UEFI.

Чи є спосіб сказати Windows Server 2008 (під час встановлення чи після встановлення) ігнорувати факт його встановлення на машину EFI і замість цього встановити та використовувати застарілий завантажувач BIOS?


Я спробував кілька пропозицій, які не допомогли:

  • Відформатуйте диски як розділи MBR перед встановленням Windows

    Ні, Windows відмовляється встановлювати:У системах EFI Windows можна встановлювати лише на диски GPT

  • Встановіть Windows, перенесіть розділ на диск MBR, відновіть систему

    Ні, консоль ремонту системи відмовляється завантажувати. Він скаржиться, що не розпізнає версію Windows, яку я намагаюся відновити.

  • Вимкнути UEFI

    Якби я міг відключити UEFI і зробити застарілу систему лише я, я мав би це зробити. Однак конкретні системи, які я використовую (IBM HS22, x3690X5), є лише UEFI з підтримкою застарілих. Ви не можете просто відключити UEFI на них. Це вимагало б повної реалізації BIOS.


Рішення!

Як вказує JdeBP, єдиний метод, який Windows використовує, щоб визначити, чи використовувати завантажувач EFI / GPT або BIOS / MBR - це метод, який використовувався для завантаження встановленого CD.

Поєднання цього з пропозицією Weaver створити зображення .iso без запису завантажувального каталогу 0xEF (набагато простіше це зробити шляхом шістнадцяткового редагування, а не ремастеризацію зображення, до речі), приводить нас до приємної, стислої відповіді:

Примушуйте встановити носій для завантаження через BIOS, а не через UEFI, оскільки це єдиний диференціатор, який Windows Installer використовує, щоб визначити, яку схему завантаження використовувати.


Це буде специфічно для обладнання. Це може допомогти, якщо ви згадаєте обладнання та модель. Деякі виробники пропонують можливість для режиму сумісності з BIOS на екрані налаштування або як варіант завантаження.
Том Вілверт

Причиною, в якій я не згадував апаратне забезпечення, був навмисний вибір. Я хочу внести цю зміну на сторону Windows, сказавши їй використовувати інший завантажувач. У моєму IBM x3690X5 вже включена сумісність BIOS, тому будь-які завантажувачі BIOS працюватимуть. Проблема полягає в тому, щоб сказати W2K8 не використовувати його завантажувач UEFI.
MikeyB

2
@MikeyB: Чому б не просто використовувати GPT?
tegbains

@tegbains: $ BIGCUSTOMER має середовище візуалізації, яке використовує продукт, який належним чином не підтримує GPT.
MikeyB

1
Якби не пройшло півтори тижня, щоб винести з тебе цю дуже важливу інформацію, ми могли б врятувати Уїверу багато горя. Я пропоную вам відредагувати своє запитання так, щоб відображати фактичну мету, адже те, що зазначено в заголовку, - це крок X, на який ви не можете приступити до роботи, і ваше запитання є дуже оманливим.
JdeBP

Відповіді:


6

Microsoft не дозволить вам досягти свого кроку; тому замість цього звертайтеся до своєї мети.

Microsoft помилково конфалює, має жорсткий диск із розділеним EFI та має прошивку EFI . Це, звичайно, явно неправильно. Цілком можливо - і в даний час стає все більш бажаним - мати диск з розділеним EFI на машині зі старою прошивкою, що не стосується EFI. Ви насправді, хоча люди, які перебувають тут, на цілий тиждень, щоб вирвати з вас мету, а не крок, хочете, навпаки. Ви хочете мати старий диск із розміщенням MBR у форматі PC / AT на машині, що має вбудовану програму EFI. (Прошивка EFI сама по собі не має жодних проблем з будь-яким форматом таблиці розділів, і вона дійсно вимагає специфікацією EFI, щоб зрозуміти і те й інше. Саме ця помилка робить Microsoft.) І ви цього хочете, оскільки чуже програмне забезпечення не може зрозуміти таблицю розділів EFI.

Одним з декількох наслідків помилки Microsoft є те, що інсталятор Windows NT 6.1 повинен викликати інсталяційний носій, який, у свою чергу, завантажився зі старої прошивки PC98, щоб він прийняв ідею встановлення Windows NT 6.1 на диск розміщений за допомогою старої схеми розподілу ПК / AT MBR. На жаль, якщо диск встановлення Windows NT завантажується в новому способі EFI, інсталятор подумає, що є вбудована програма EFI, і так заявить, що він не може бути встановлений на жорсткі диски, що не мають EFI.

Як зазначав Вівер, і як пояснює документація Microsoft , інсталяційний компакт-диск насправді є двозавантаженим. Як далі пояснює Род Сміт , тому можна вручну сконструювати диск для встановлення Windows NT 6.1, який завантажується в старий спосіб PC98. Потім інсталятор Windows NT 6.1 дозволить встановити на старий жорсткий диск з розділеним ПК / AT MBR.

Однак у системах, у яких відсутній модуль підтримки сумісності , як ви кажете, це не допоможе . Вашій системі буде потрібна версія EFI Microsoft Boot Manager, встановлена ​​на системному розділі EFI, оскільки саме так ваша прошивка спробує завантажувати операційну систему. Але коли інсталятор Windows NT 6.1 запускається на програмному забезпеченні, що не є EFI, він встановлює не-EFI версію програми завантаження Microsoft і не створюватиме системний розділ EFI. Така установка насправді не завантажиться на вашу машину, і ви навіть не зможете завершити процедуру встановлення. Дійсно, оскільки вам не вистачає CSM, ви навіть не зможете початипроцедура встановлення, тому що ви навіть не зможете завантажувати інсталяційний диск старим способом PC98. Microsoft не дозволить вам досягти свого кроку в два рази.

Тому зосередьтеся на своїй меті. Ваша мета - дозволити своєму клієнту розгортати Windows Server 2008 на машини, які мають вбудовану програму EFI із зображення системи. Тому правильним питанням, яке вам слід задати - постачальнику програмного забезпечення - є те, як виправити це старе / зламане програмне забезпечення для візуалізації дисків, щоб у нього не було проблем із таблицею розділів EFI.


О моїй системі не вистачає режиму сумісності, це не проблема. Отже, ви говорите, що єдиний спосіб, коли інсталятор Windows визначає, чи є система EFI, за допомогою методу, який використовувався для завантаження? Це нова важлива інформація - я спробую це випробувати.
MikeyB

Ах ах! Це працює! Ось найважливіша інформація, яка мені потрібна: "Змусити інсталяційний носій завантажуватися через BIOS, а не через UEFI, оскільки це метод, який Windows Installer використовує, щоб визначити, яку схему завантаження використовувати".
MikeyB

@JdeBP +1 вам за чудову відповідь.
Вівер

7

Словом, так і ні з кількох різних причин. Якщо Windows завантажується з диска GPT, він повинен бути з UEFI. Диспетчер завантажувачів Windows і завантажувач не можуть завантажуватися на диск MBR з рідного UEFI. Однак якщо UEFI налаштований на застарілий режим завантаження BIOS, то для завантаження може використовуватися диск MBR. Це пов'язано з тим, що режим завантаження Windows (BIOS з MBR або UEFI з GPT) залежить від середовища, в якому він використовується.

Читайте трохи про техніку -

Фізичне обладнання (або віртуальне обладнання, але все-таки апаратне забезпечення) мікропрограмне забезпечення (BIOS / UEFI) забезпечує початкове робоче середовище (пов'язані з завантаженням структури даних і конвенції) та послуги програмного забезпечення, доступні для наступних етапів процесу завантаження операційної системи.

BIOS / MBR

У випадку завантаження BIOS / MBR перший сектор першого завантажувального диска - головний завантажувальний запис (LBA 0) містить кілька складання x86 (16 біт 8088), потім таблицю розділів, потім підпис). BIOS завантажує цей сектор в пам'ять і починає виконувати - BIOS відмовляється від власного управління програмним кодом, як тільки MBR включається.

http://mbr.adamsatoms.com/

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

x86 збірка (Intel 8088 у більшості MBR) у MBR аналізує таблицю розділів, шукає активний розділ та переходить до першого сектора цього розділу - називається записом завантаження гучності. Запис завантажувального об'єму містить jmp збірки x86, блок параметрів BIOS (взагалі не використовується системним BIOS, настільки заплутане ім'я), і ще безліч збірок x86, що врешті-решт завантажує завантажувач операційної системи (NTLDR або BOOTMGR в середовищах Windows ) з самого обсягу завантаження / розділу.

NTLDR або BOOTMGR переверніть процесор у захищеному режимі, зверніться до їх конфігурації часу завантаження (boot.ini або BCD відповідно, як на об'єм завантаження / розділ завантаження), так і завантажте NTOSKRNL там, де решта - історія.

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

Спершу дозвольте мені зазначити, що я не маю багато активного досвіду роботи з UEFI / GPT. Однак, як я використовував його і розумію, що він функціонує - велика різниця (як це стосується нашої розмови) полягає в тому, що виконуваний елемент управління не передається до MBR.

Натомість програмне забезпечення UEFI містить власний менеджер завантаження. Цей диспетчер завантаження сканує диски та носії інформації, - переходить на захисний MBR дисків, відформатованих GPT, потрапляє до заголовка GPT, а потім занурюється в системний розділ EFI (ESP), де він шукає виконувані програми EFI - які, як передбачається, буде функціонувати система завантаження завантажувачі завантаження операційної системи безпосередньо, проте , як ми вже бачили з останніми MS і Apple , EFI виконуваних файлів, вони менеджери завантаження фактично додаючи ще один шар до - го процесу і складності.

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

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

Висновок / TL; DR

Сенс, який потрібно відмовляти від цього, полягає в тому, що існує очікуване середовище, в якому менеджер завантаження операційної системи та завантажувач очікують працювати. З доступних служб рівня мікропрограмного забезпечення (переривання BIOS / UEFI), структур даних (змінні, конвенції стека тощо) і навіть форматування формату диска. Не можна змінити під час виконання - принаймні, не так, як я це розумію.

Ваші варіанти?

Попередню інсталяцію ви можете керувати встановленням, використовуючи BIOS / MBR або UEFI у застарілому завантаженні BIOS з MBR або UEFI з GPT.

Після встановлення - можливо, є кілька цікавих можливостей зі зміною формату диска (MBR на GPT і GPT на MBR) в режимі офлайн, потім завантаження на консоль відновлення (у відповідному режимі UEFI або BIOS) та робота з bcdboot та bcdedit для отримання Windows менеджер завантаження встановлений прямо.

Оновлення 2011.09.09

@MikeyB

Перелічуючи варіанти, як я їх розумію, насправді не роблячи жодних офіційних пропозицій.

Тим не менш, провівши трохи більше досліджень щодо UEFI (нагадайте, що я не маю багато активного досвіду з цим), я виявив кілька цікавих примх про менеджер завантаження UEFI та підтримку завантаження CD / DVD.

Специфікація завантаження El Torito, починаючи з 95 року, існує і сьогодні, і використовується для завантажувальних CD / DVD-дисків. Один CD / DVD може завантажуватися в декількох архітектурах - і, хоча ISO 9660 є досить незалежним від платформи, виконуваний код - ні. Таким чином, специфікація завантаження El Torito дозволяє проводити кілька записів / зображень для завантаження.

Ці записи / зображення містять ідентифікатор платформи , призначений для вказівки, чи є запис для ПК, PowerPC та інших архітектур, щоб BIOS (або прошивка) архітектури міг вибрати правильний запис для завантаження.

У стандартних комп'ютерах x86, що мають BIOS, є ідентифікатор платформи El Torito 0x00. Ідентифікатор платформи, який відповідає UEFI, є 0xEF - досить креативний.

Стандартний x86 PC BIOS ігнорує всі інші записи, крім 0x00. Прошивки UEFI, які мають застарілу підтримку BIOS (відомий як модуль підтримки сумісності (CSM)) - при змозі завантажувати 0x00, віддадуть перевагу вхідному завантажувальному запису 0xEF з каталогу.

Носії DVD для Windows 2008, 2008 R2 та 7 містять у собі каталог El Torito з декількома зображеннями з 0x00 та 0xEF. За замовчуванням 0x00 є замовчуванням, але UEFI промальовує його, якщо існує 0xEF, і вибере запис 0xEF - як він є рідним.

Що можливо - це ремісничі ЗМІ , що тільки містить переважну Platform ID в каталозі завантаження El Torito. Замість каталогу з декількома записами створіть єдиний каталог з ідентифікатором платформи 0x00. Це повинно змусити програмне забезпечення UEFI, якщо воно насправді підтримує застаріле завантаження BIOS, вибрати ідентифікатор платформи 0x00 та завантажити старий запис завантаження BIOS на носії Windows.

Як це зробити?

За допомогою Oscdimg можливо. Нижче наведено кілька прикладів того, як люди створюють засоби масової інформації UEFI, щоб подолати обмеження в застосуванні Apple UEFI. Зауважте, що це протилежне тому, що ми намагаємось зробити - ми хочемо створити лише BIOS, не випускаючи завантажувальний запис UEFI з каталогу.

Тільки UEFI (навпаки) 1

Тільки UEFI (навпроти) 2

Процес створення носія лише BIOS схожий зі змінами -bта -pаргументами наступного

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

Чудовим ресурсом, який проливає чудове світло на вибране Microsoft з розуму на носії встановлення Windows, є документ Підтримка UEFI та вимоги до операційних систем Windows .


1
"Перед встановленням ви можете керувати встановленням, використовуючи BIOS / MBR або UEFI у застарілому завантаженні BIOS з MBR або UEFI з GPT." Гаразд, то як сказати Windows: "Встановити в таблицю розділів у стилі MSDOS."?
MikeyB

@MikeyB Завантажте інсталяційний носій Windows у комп'ютерній системі із традиційною BIOS. Або - завантажте інсталяційний носій Windows в комп'ютерній системі з встановленим UEFI в застарілому режимі завантаження BIOS. Зауважте, що ваш UEFI повинен підтримувати застарілий режим завантаження BIOS.
Вівер

Ви пропонуєте встановити Windows на зовсім інший комп'ютер, а потім перемістити диски? Не зовсім гарна ідея. Крім того, коли ви встановите комп’ютер UEFI на "застарілий режим BIOS", він просто дозволяє застарілим гакам BIOS для завантаження застарілих дисків MBR. Він не вимикає UEFI , тому Windows все ще каже "Це система UEFI? Так".
MikeyB

@MikeyB Додано оновлення до оригінальної відповіді.
Вівер

1
Щось подібне я бачив із сервером 2008, коли я дізнався про обмеження розміру диска BIOS та MBR. Я створив сервер з 2008 R2 та ввімкнув застарілий режим BIOS через те, що він не встановлюватиметься із USB-носіями (помилка MS), проте я виявив, що він використовував MBR, а не GPT, оскільки BIOS не здатний завантажувати GPT (якщо тільки у вас є якийсь завантажувач). Коротше кажучи, перехід у застарілий режим безумовно встановлюється в застарілому режимі, доказ буде в диспетчері дисків, де ви побачите диски MBR, а не GPT.
Алекс Беррі

3

Одним з простих методів було б просто виконати базову установку Windows на машині, яка не підтримує EFI, захопити її за допомогою свого програмного забезпечення для зображення та відновити його до реального обладнання.

Хорошим вибором може стати побудова базової установки в VM. У попередніх версіях (ver <6) Windows не пристосовувалась до переміщення з одного типу апаратного забезпечення на інший. З останніми версіями Windows, поки контролер пам’яті підтримується на зображенні, Windows зробить досить непогану роботу з адаптації до нового обладнання.

В основному диск встановлення Windows (ver> = 6) зазвичай містить файл wim, який в основному є зображенням операційної системи.


Саме це я і запропонував. Запустіть інсталяцію Windows в іншій системі (BIOS / MBR), після чого перемістіть диск або його зображення на цільовий сервер. Якщо він завантажиться, тоді настане PnP, і він із задоволенням працюватиме на іншому обладнання.
Массімо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.