Заставить 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, - это метод, который использовался для загрузки установочного компакт-диска.

Сочетание этого с предложением Уивера создать изображение .iso без записи загрузочного каталога 0xEF (кстати, гораздо проще сделать с помощью шестнадцатеричного редактирования, а не повторного создания образа), дает нам хороший, краткий ответ:

Принудительно загрузите установочный носитель через BIOS, а не через UEFI, поскольку это единственный дифференциатор, используемый установщиком Windows для определения используемой схемы загрузки.

MikeyB
источник
Это будет зависеть от оборудования. Это может помочь, если вы упомянули оборудование и модель. Некоторые производители предоставляют опцию для режима совместимости с BIOS на экране настройки или в качестве опции загрузки.
Том Уиллверт
Причиной, по которой я не упомянул оборудование в этом вопросе, был осознанный выбор. Я хочу внести это изменение на стороне Windows, сказав, чтобы он использовал другой загрузчик. В моем IBM x3690X5 уже включена совместимость с BIOS, поэтому все загрузчики BIOS будут работать. Проблема в том, что W2K8 не использует свой загрузчик UEFI.
MikeyB
2
@MikeyB: почему бы просто не использовать GPT?
Тегбейнс
@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 на диск. разделена по старой схеме разбиения PC / AT MBR. К сожалению, если установочный диск Windows NT загружен новым EFI способом, установщик подумает, что есть встроенное программное обеспечение EFI, и объявит, что его нельзя установить на разделенные жесткие диски без EFI.

Как указал Уивер, и как объясняет документация Microsoft , установочный компакт-диск фактически является двойной загрузкой. Как далее объясняет Род Смит , можно вручную создать установочный диск Windows NT 6.1, который загружается по старому способу PC98. Затем установщик Windows NT 6.1 разрешит установку на старый жесткий диск PC / AT MBR.

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

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

JdeBP
источник
О, в моей системе нет режима совместимости, это не проблема. Итак, вы говорите, что единственный способ, которым установщик Windows определяет, является ли система EFI, - это метод, который использовался для начальной загрузки? Это новая и важная информация - я попробую это.
MikeyB
Ах ах! Оно работает! Это критически важная информация, которая мне понадобилась: «Принудительно загрузите установочный носитель через BIOS, а не через UEFI, поскольку этот метод используется установщиком Windows для определения используемой схемы загрузки».
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 - довольно креативный.

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

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

Что возможно - это создать носитель, который содержит только предпочтительный идентификатор платформы в каталоге загрузки El Torito. Вместо каталога с несколькими записями создайте каталог с одной записью с идентификатором платформы 0x00. Это должно заставить прошивку UEFI, если она фактически поддерживает устаревшую загрузку BIOS, выбрать идентификатор платформы 0x00 и загрузить устаревшую загрузочную запись BIOS на носителе Windows.

Как это сделать?

Используя Oscdimg это возможно. Ниже приведено несколько примеров людей, создающих только носители UEFI, чтобы обойти ограничения в реализации Apple UEFI. Обратите внимание, что это противоположно тому, что мы пытаемся сделать - мы хотим создать только BIOS, исключая загрузочную запись UEFI из каталога.

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

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

Процесс создания носителя только для BIOS аналогичен изменениям аргументов -band -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, захватить его с помощью программного обеспечения для образов и восстановить его на реальном оборудовании.

Хорошим выбором может быть сборка базовой установки на виртуальной машине. В более ранних версиях (версия <6) Windows плохо адаптировалась для перехода с одного типа оборудования на другой. В последних версиях Windows, если на образе поддерживается контроллер хранилища, Windows выполнит довольно хорошую работу по адаптации к новому оборудованию.

Установочный диск Windows (ver> = 6) обычно включает в себя wim- файл, который представляет собой просто образ операционной системы.

Zoredache
источник
Это именно то, что я собирался предложить. Запустите программу установки Windows в другой системе (BIOS / MBR), затем переместите диск или его образ на целевой сервер. Если он загрузится, то появится PnP, и он с радостью будет работать на другом оборудовании.
Массимо