Начну немного с предисловия. Понадобилось мне, значит, переустановить ОС на новеньком ноутбуке. Установщик запустился, да не дал продолжить - не буду, мол, ставиться на GPT-разметку, т.к. загружен в режиме MBR. При попытке загрузиться в режиме UEFI (тыканием в устройство с припиской UEFI в меню загрузки) ничего не происходило. Почесал я репу и понял, что надо это дело довести до конца. Погуглив, столкнулся тем, что информации по этой теме чрезвычайно мало (особенно в рунете), но кое-какой материал, который меня натолкнул на дальнейшую работу, нашелся. Ну что же, постараюсь привести собранную и полученную информацию в более-менее понятную и удобную инструкцию, дабы другие не наступали на те же грабли.
Из семейства Windows Vista и 7 на UEFI можно поставить только 64-битную редакцию. В 32-битной версии просто-напросто отсутствуют необходимые для загрузки файлы. Попытки взять их от x64-версии ни к чему, кроме ошибок загрузчика, не привели, что логично. Учитывая то, что современные UEFI-устройства оснащаются обычно 4 и более гигабайтами ОЗУ, проблем здесь не должно быть. Работает данный метод, понятное дело, только для 64-битных версий EFI (все современные устройства на рынке). Не пытайтесь грузить 32-битный boot.wim, это бесполезно, он просто не запустится. В Windows 8 появилась поддержка UEFI32, таких устройств на рынке мало, в основном это планшеты с 1-2гб озу. UEFI32 и UEFI64 между собой несовместимы, поэтому и файлы разные применяются - BOOTX86.EFI и BOOTX64.EFI соответственно.
Данный материал применим ко всем редакциям Windows Vista SP2 и Windows 7 RTM/SP1, а также их серверных собратьев - Windows Server 2008/2008 R2, вне зависимости от локализации. В Windows 8 и выше все аналогично, кроме того, что там появилась поддержка UEFI32.
Что нам понадобится: 1.Прямые руки. 2.USB-флешка/хард (тем не менее, инструкция подойдет и для установки с SATA/IDE-харда) с FAT32-разделом. Инструкция предполагает, что туда уже залит дистрибутив Windows NT 6.x. 3.Устройство с UEFI.
1.По умолчанию, на диске отсутствует самый главный файл, которому UEFI должно передать управление - \EFI\BOOT\BOOTX64.EFI. Поэтому, нам надо выковырять его из дистрибутива. Лежит он в install.wim по адресу Windows\Boot\EFI\bootmgfw.efi. Просто копируем его в \EFI\BOOT и переименовываем в BOOTX64.EFI. Естественно, надо создать папку \EFI\BOOT. В DVD-дистрибутиве этот загрузчик находится в специальном EFI-разделе, поэтому он и отсутствует в UDF/ISO9660, видимо.
2.Убедитесь, что в папке \EFI\MICROSOFT\BOOT есть необходимые для загрузки файлы (при необходимости, их можно взять с дистрибутива Windows Vista/7 x64 на DVD):
3.При необходимости, мы можем поправить загрузочное меню, если у вас вдруг несколько boot.wim и 64-битный \source\boot.wim лежит в другом месте, иначе данный шаг можно пропустить. Тут все просто.
Вместо \source64\boot.wim укажите свои пути, и убедитесь, что GUID образа совпадает (я использовал дистрибутив Windows 7 Enterprise x64 SP1, в случае с Windows Vista, GUID могут отличаться), иначе получите BSOD 0x7B сразу после загрузки образа. Узнать это можно командой
Код
bcdedit /store efi\microsoft\boot\bcd /enum
Командная строка во всех примерах была запущена из корня дистрибутива (где лежат папки sources и efi), для удобства.
Загрузочное меню до правки:
И после:
4.Ну вот и все. Втыкаем флешку в UEFI-устройство, вызываем загрузочное меню, тыкаем на UEFI USB Device и радуемся загрузке.
Работоспособность проверена на ASUS K45A и VMware 9 (в последнем случае, установщик Windows не видел USB-хард и не мог продолжить установку, по всей видимости, это связано с кривой реализацией EFI, в VirtualBox даже bootmgr не запускался). На Apple MacBook Pro Sandy Bridge загрузка происходит, но какой-то глюк с видеорежимом, видно что установщик запускается, но все сжато в полоску, отображаемую поверх меню загрузки EFI. Отключение графической загрузки в bootmgr не помогло.
Если вдруг выкинуло в EFI Shell и загрузка не пошла, не отчаивайтесь. Обычно, в таком случае, высвечивается список доступных устройств и дисков (первые идут как blk, вторые как fs). Просто находим нужный нам диск (в моем случае - fs1:, т.к. он Removable USB), убеждаемся, что это точно наш диск (делам ls /EFI/BOOT/BOOTX64.EFI) и запускаем установщик - /EFI/BOOT/BOOTX64.EFI. Обычно, EFI Shell отключен, в реальности я его видел только на виртуалках. Однако, никто не мешает использовать тот же rEFIt. Скриншот для примера:
И, напоследок, небольшой комментарий. Если нет острой необходимости в UEFI и GPT-разметке (а в настоящее время это, пожалуй, только загрузка ОС с жесткого диска больших объемов, то бишь >2.2 ТБ, для эксплуатации этого жесткого диска как второго/третьего/и так далее, т.е. не системного, UEFI не является необходимым!), лучше использовать Compatibility Support Mode (CSM)/Legacy Boot/эмуляцию BIOS. Иначе просто наживете себе, на пустом месте, лишние проблемы, не получив ничего существенного взамен. В режиме UEFI сейчас работают только ОС от Microsoft (начиная с NT 6.x), Mac OS X, ну и линуксы (обычно на базе GRUBv2, однако, Fedora долго время использовала GRUB 0.97 с костылями, это было в 16-17 версии, сейчас не скажу). Все досы, хайрены, мемтесты, 32-битные WinPE, 64-битные WinPE (основанные на WinXP x64), ранние версии Windows - включая XP и Server 2003, прочее реанимационное добро, просто-напросто не запустится. В моем случае, причиной не ставить Windows 7 в MBR-режиме послужила необходимость сохранить восстановительный раздел. А Windows 7 на GPT-разметку ставится только в UEFI режиме.
нашел дистрибутив где эти файлы есть уже. выполнил первый пункт. Проверил наличие файлов по второму. Все ок. Вставляю флешку в ноут гружусь с флешки появляется ошибка 0xc000000d и ругается на \EFI\Microsoft\Boot|BCD. нажимаю эскейп появляется загрузка файлов для установки. далее starting windows и на этом все. Где зарыта собака???