У нас есть серверы UEFI, и мы столкнулись с ситуацией, когда нам нужно заставить Windows Server 2008 загружаться с помощью устаревшего метода BIOS, а не через UEFI.
Есть ли способ указать Windows Server 2008 (во время установки или после установки) игнорировать тот факт, что он устанавливается на машину EFI, и вместо этого установить и использовать устаревший загрузчик BIOS?
Я пробовал несколько предложений, которые не помогли:
Отформатируйте диски как разделы MBR перед установкой Windows
Нет, Windows отказывается устанавливать:
Установить Windows, перенести раздел на MBR диск, восстановить систему
Нет, консоль восстановления системы не загружается. Он жалуется, что не распознает версию Windows, которую я пытаюсь восстановить.
Отключить UEFI
Если бы я мог отключить UEFI и сделать систему только устаревшей, я бы это сделал. Однако конкретные системы, которые я использую (IBM HS22, x3690X5), поддерживают только UEFI с устаревшей поддержкой. На них нельзя просто отключить UEFI. Для этого потребуется полная реализация BIOS.
Решение!
Как указывает JdeBP, единственный метод, который Windows использует для определения, использовать ли загрузчик EFI / GPT или BIOS / MBR, - это метод, который использовался для загрузки установочного компакт-диска.
Объединяя это с предложением Уивера создать образ .iso без записи в загрузочном каталоге 0xEF (кстати, гораздо проще сделать шестнадцатеричным редактированием, чем переделывать изображение) приводит нас к красивому и лаконичному ответу:
Заставьте установочный носитель загружаться через BIOS, а не через UEFI, поскольку это единственное отличие, которое использует установщик Windows для определения того, какую схему загрузки использовать.
Короче говоря, да и нет по нескольким причинам. Если 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://www.ata-atapi.com/hiwmbr.html
Сборка x86 (Intel 8088 в большинстве MBR) в MBR анализирует таблицу разделов, ищет активный раздел и переходит к первому сектору в этом разделе, который называется загрузочной записью тома. Загрузочная запись тома содержит сборку x86 jmp, блок параметров 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 допускает несколько загрузочных записей / образов.
Эти записи / изображения содержат ID платформы, предназначенный для указания того, предназначена ли запись для ПК, PowerPC и других архитектур, чтобы BIOS (или прошивка) архитектуры мог выбрать правильную загрузочную запись.
Стандартный компьютер x86 с BIOS имеет El Torito ID платформы из 0x00. С поддержкой UEFI ID платформы есть 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, чтобы обойти ограничения в реализации UEFI от Apple. Обратите внимание, что это противоположно тому, что мы пытаемся сделать - мы хотим создать только BIOS, исключая загрузочную запись UEFI из каталога.
Процесс создания носителя, содержащего только BIOS, аналогичен изменениям в -b
и -p
аргументы в пользу следующих
-bC:\path\to\Etfsboot.com -p0x00
Отличным ресурсом, который проливает прекрасный свет на безумие, выбранное Microsoft в отношении установочного носителя Windows, является Поддержка UEFI и требования для операционных систем Windows документ.
Microsoft ошибочно объединяет имеет жесткий диск с разделами EFI с участием есть прошивка EFI. Это, конечно, явно неверно. Вполне возможно - и действительно становится все более желательным в наши дни - иметь диск с разделами EFI на машине со старой прошивкой, отличной от EFI. На самом деле вы - хотя людям здесь потребовалось больше двух недель, чтобы выжать из вас цель, а не шаг - хотите обратного. Вы хотите иметь старый разделенный MBR-диск в стиле PC / AT на машине с прошивкой EFI. (Сама прошивка EFI не имеет проблем ни с одним из форматов таблицы разделов, и она действительно требуется спецификацией EFI для понимания обоих. Это Microsoft делает эту ошибку.) И вы хотите этого, потому что чужое программное обеспечение не может понять таблицу разделов EFI.
Одним из нескольких последствий ошибки Microsoft является то, что установщик Windows NT 6.1 должен быть вызван с установочного носителя, который, в свою очередь, был загружен со старой прошивки PC98, чтобы он принял идею установки Windows NT 6.1 на диск. разделены по старой схеме разделения MBR PC / AT. К сожалению, если установочный диск 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.
Одним из простых способов было бы просто выполнить базовую установку Windows на машине, которая не поддерживает EFI, захватить ее с помощью программного обеспечения изображения и восстановить на реальном оборудовании.
Хорошим выбором может быть создание базовой установки на виртуальной машине. В более ранних версиях (версия <6) Windows плохо адаптировалась для перехода с одного типа оборудования на другой. В последних версиях Windows, пока контроллер хранилища поддерживается в образе, Windows неплохо справляется с адаптацией к новому оборудованию.
Установочный диск Windows (ver> = 6) обычно включает в себя слабак файл, который в основном представляет собой просто образ операционной системы.