Uefi win 7: Установка Windows 7 на UEFI
Содержание
Диспетчер загрузки Windows 7 не локализован в системах UEFI
Первоначально я опубликовал это в SuperUser, потому что обнаружил такое поведение на своем домашнем компьютере, но, похоже, это общая проблема в системах UEFI, поэтому я также публикую здесь; Я также надеюсь, что кто-то здесь может пролить свет на то, что происходит.
Итальянская версия Windows 7 x64 SP1, один и тот же установочный носитель используется в обоих случаях.
При работе в системах с BIOS диспетчер загрузки полностью локализован как для экрана загрузки, так и для меню загрузки F8. При работе в системах UEFI диспетчер загрузки всегда работает на английском языке, даже если он правильно настроен для использования языкового стандарта it-IT, как BCDEDIT
ясно показывает:
Диспетчер загрузки Windows -------------------- идентификатор {bootmgr} раздел устройства =\Device\HarddiskVolume1 путь \EFI\Microsoft\Boot\bootmgfw.efi описание Диспетчер загрузки Windows локаль it-IT наследовать {глобальные настройки} по умолчанию {текущий} объект резюме {9ef36aa6-4188-11e3-909d-d32f0c3871c8} порядок отображения {текущий} инструменты displayorder {memdiag} тайм-аут 30 Caricatore di Avvio di Windows -------------------- идентификатор {текущий} раздел устройства = C: путь \Windows\system32\winload. efi описание виндовс 7 локаль it-IT наследовать {настройки загрузчика} последовательность восстановления {9ef36aa8-4188-11e3-909d-d32f0c3871c8} восстановление включено Да раздел устройства = C: системный корень \виндовс объект резюме {9ef36aa6-4188-11e3-909d-d32f0c3871c8} nx согласие
Я тоже заметил здесь кое-что странное; в настройках материнской платы в качестве основного варианта загрузки отображается «Диспетчер загрузки Windows», а фактический загрузочный диск указан как второй . Похоже, что диспетчер загрузки Windows на самом деле загружается откуда-то еще, а не из первого раздела первого диска… что здесь происходит?
Я также проверил диспетчер загрузки EFI, используя bcdedit /enum FIRMWARE
. Этот тоже выглядит правильно локализованным:
Boot Manager для каждой прошивки --------------------- идентификатор {fwbootmgr} порядок отображения {bootmgr} {9ef36aa4-4188-11e3-909d-d32f0c3871c8} {a30e8550-47e4-11e3-9ad1-806e6f6e6963} тайм-аут 1 Менеджер загрузки для Windows -------------------- идентификатор {bootmgr} раздел устройства =\Device\HarddiskVolume1 путь \EFI\Microsoft\Boot\bootmgfw. efi описание Диспетчер загрузки Windows локаль it-IT наследовать {глобальные настройки} по умолчанию {текущий} возобновить объект {9ef36aa6-4188-11e3-909d-d32f0c3871c8} порядок отображения {текущий} инструменты displayorder {memdiag} тайм-аут 30 Прикладная прошивка (101ffffff) ------------------------------- идентификатор {9ef36aa4-4188-11e3-909d-d32f0c3871c8} описание CD/DVD-привод Прикладная прошивка (101ffffff) ------------------------------- идентификатор {a30e8550-47e4-11e3-9ad1-806e6f6e6963} описание Жесткий диск
Я могу подтвердить такое же поведение на виртуальной машине VMware (Workstation 10); используя тот же ISO для установки, когда прошивка виртуальной машины настроена для BIOS, диспетчер загрузки полностью локализован, а когда он настроен для EFI, он настроен для локализации (все локали установлены на it-IT
), но на самом деле он работает на английском языке.
Установка системы
. Что нужно сделать перед двойной загрузкой Windows 7 и Debian на EFI?
РЕДАКТИРОВАТЬ: Когда я писал этот ответ, очень мало дистрибутивов поставлялось с настроенным ядром EFI_STUB, поэтому приходилось создавать собственное ядро. В настоящее время большинство дистрибутивов поставляются с соответствующим образом сконфигурированным ядром, и пользовательская сборка больше не требуется. В этом случае разделы «Настройка разделов» и «Настройка вещей» самые интересные, «Требования» и «Сборка ядра» можно пропустить.
Я не знаю, как Windows обрабатывает UEFI, но со стороны Debian это довольно
простой.
Настройте разделы
Используйте схему разделов GPT, а не MBR.
Для загрузки с раздела GPT с UEFI требуется выделенный загрузочный раздел,
называется СИСТЕМНЫЙ РАЗДЕЛ EFI (ESP). Это не обязательно, но наиболее
совместимый способ — использовать раздел FAT32. Размер 200 МБ должен быть в порядке
для большинства случаев.
Чтобы зарегистрировать раздел как ESP, он должен быть помечен флагом загрузки
.
В отличие от схем MBR, флаг загрузки используется только для обозначения ESP,
а не разделы, с которых можно загрузиться.
UEFI использует структуру каталогов \EFI\
для хранения
UEFI-приложения. Разделитель каталогов обозначается обратной косой чертой , даже на
Линукс. может быть именем дистрибутива, фактическое значение не имеет значения
к УЕФИ.
Приложения могут быть системными утилитами, такими как средства проверки памяти или оболочка UEFI. Это
также может быть загрузчиком ОС или самой операционной системой. Эти приложения
необходимо зарегистрировать в UEFI, чтобы иметь возможность запускаться во время загрузки.
Требования
Ядро Linux версии >=3.3 можно загрузить напрямую через UEFI. Ядро может действовать как собственный загрузчик. Это называется EFISTUB . Необходимы следующие конфигурации ядра.
CONFIG_EFI=у CONFIG_EFI_PARTITION=y CONFIG_EFI_STUB=y CONFIG_RELOCATABLE=y CONFIG_FB_EFI=у CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_EFI_VARS=м
Ядро с этой конфигурацией в настоящее время еще не находится в стабильной версии Debian. Вы также можете
запеките свое собственное ядро или используйте ядро из экспериментального дерева, в этом случае вы можете пропустить следующий абзац.
Компиляция ядра
(вероятно, больше не нужно, см. правку)
Если вы решите скомпилировать ядро, вот краткие инструкции, как это сделать. Если у вас возникнут проблемы, есть много доступной информации о том, как скомпилировать ядро.
Получение источника
git-клон git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Проверить конкретную версию
Git-касса v3.6
Настройка ядра
сделать менюконфигурации
Сделайте настройки, которые необходимы в вашей системе, или оставьте как есть
если вам нечего настраивать. Это пишет ядро
конфигурации в файл .config
.
Убедитесь, что установлены настройки из предыдущего параграфа. Это также
имеет смысл выбрать CONFIG_INPUT_EVBUG=n
. В противном случае ваши журналы
будет заполнен ГиБ хлама.
Сборка ядра
INSTALL_MOD_STRIP=1 make-kpkg --uc --us бинарный-архив
Пакеты создаются в родительском каталоге.
Установка ядра
dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb
Сборка initramfs
mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0
3.6.0 — это версия ядра. По умолчанию это работающее ядро,
что не является хорошим выбором, так как вы все еще используете старую
ядро.
Настройка
Чтобы иметь возможность загрузить ядро Linux, его необходимо вместе скопировать в ESP
с инитрамфс. Учитывая, что ESP смонтирован по адресу /boot/efi
/загрузка/efi/EFI/дебиан/vmlinuz-3.6.0.efi /boot/efi/EFI/debian/initrd.img-3.6.0
ПРИМЕЧАНИЕ. Для обеспечения совместимости с большинством систем расширение efi
должно
добавить в ядро.
Теперь ядро можно зарегистрировать в UEFI. Мы используем инструмент efibootmgr
для
что.
echo "root=UUID=3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype=ext4 add_efi_memmap initrd=\\EFI\\debian\\initrd.