Что я должен сделать перед двойной загрузкой Windows 7 и Debian в EFI?

Я собираюсь приобрести материнскую плату Asus с прошивкой EFI и хотел бы подготовиться к установке Windows и Debian после поступления оборудования. Я надеялся, что тот, кто пошел по этой дороге, может дать мне несколько указателей.

Какие подготовительные действия следует предпринять перед попыткой установить Windows 7 и Debian на новую систему на базе UEFI?

4 Solutions collect form web for “Что я должен сделать перед двойной загрузкой Windows 7 и Debian в EFI?”

EDIT: Когда я написал этот ответ, очень мало дистрибутивов, поставляемых с настроенным ядром EFI_STUB, поэтому нужно было создать пользовательский. В настоящее время большинство дистрибутивов отправляют подходящее настроенное ядро, и пользовательская сборка больше не требуется. В этом случае разделы «Настройка ваших разделов» и «Настройка вещей» являются интересными, «Требования» и «Компиляция ядра» могут быть пропущены.

Я не знаю, как Windows обрабатывает UEFI, но со стороны Debian это довольно просто.

Настройте свои разделы

Используйте схему разделов GPT, а не MBR.

Для загрузки из раздела GPT с UEFI предусмотрен специальный раздел загрузки, называемый ESP SYSTEM PARTITION (ESP). Это не обязательно, но наиболее совместимым способом является использование раздела FAT32. В большинстве случаев размер 200 MiB должен быть хорошим.

Чтобы зарегистрировать раздел как ESP, он должен быть отмечен флагом boot . В отличие от схем MBR, флаг загрузки используется только для указания ESP, а не для разделов, с которых можно загрузиться.

UEFI использует структуру каталогов \EFI\<vendor>\<application>.efi для хранения приложений UEFI. Разделитель каталогов обозначается обратным слэшем , даже в Linux. может быть именем распространения, фактическое значение не относится к UEFI.

Приложениями могут быть системные утилиты, такие как проверки памяти или оболочка UEFI. Он также может быть загрузчиком ОС или самой операционной системой. Эти приложения должны быть зарегистрированы в UEFI, чтобы их можно было запускать во время загрузки.

Требования

Версия ядра Linux> = 3.3 может загружаться непосредственно UEFI. Ядро может действовать как собственный загрузчик. Это называется EFISTUB . Необходимы следующие конфигурации ядра.

 CONFIG_EFI = у
 CONFIG_EFI_PARTITION = у
 CONFIG_EFI_STUB = у
 CONFIG_RELOCATABLE = у
 CONFIG_FB_EFI = у
 CONFIG_FRAMEBUFFER_CONSOLE = у
 CONFIG_EFI_VARS = т

Ядро с этой конфигурацией пока не находится в Debian. Вы можете либо испечь свое ядро, либо использовать его из экспериментального дерева, в этом случае вы можете пропустить следующий абзац.

Компиляция ядра

(возможно, больше не нужно, см. править)

Если вы решили скомпилировать ядро, здесь приведены краткие инструкции, как это сделать. Если у вас возникают проблемы, есть много информации о том, как скомпилировать ядро.

Получение источника

 git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Проверьте одну конкретную версию

 git checkout v3.6

Настройка ядра

 make menuconfig

Внесите необходимые настройки в вашу систему или оставьте их как есть, если вам нечего настраивать. Это записывает конфигурацию ядра в файл .config .

Убедитесь, что установлены настройки из предыдущего абзаца. Также имеет смысл выбрать CONFIG_INPUT_EVBUG=n . В противном случае ваши журналы будут заполнены GiB нежелательной.

Построение ядра

 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 вместе с initramf. Учитывая, что ESP монтируется в /boot/efi

 /boot/efi/EFI/debian/vmlinuz-3.6.0.efi
 /boot/efi/EFI/debian/initrd.img-3.6.0

ПРИМЕЧАНИЕ. Чтобы обеспечить совместимость с большинством систем, extenstion efi необходимо добавить в ядро.

Теперь ядро ​​может быть зарегистрировано в UEFI. Для этого мы используем инструмент efibootmgr .

 echo "root = UUID = 3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype = ext4 add_efi_memmap initrd = \\ EFI \\ debian \\ initrd.img-3.6.0" |
   iconv -f ascii -t ucs2 |
   efibootmgr \
     --Создайте \
     --gpt \
     --disk / dev / sda \
     --part 4 \
     --label "Debian Linux kernel 3.6.0" \
     --loader "\\ EFI \\ debian \\ vmlinuz-3.6.0" \
     --write-signature \
     --append-binary-args -

Аргумент --disk – это устройство, в котором находится ядро, а не ESP. --part – номер раздела, в котором находится ядро. --label – это запись в меню загрузки UEFI.

Чтобы просмотреть список доступных записей, просто запустите efibootmgr без аргументов. Синтаксис для удаления определенной записи

 efibootmgr -b запись (hex) -B

например:

 efibootmgr -b 001a -B

Эти инструкции не обрабатывают обновление ядра. Ядро и initramfs автоматически не копируются в ESP. Это можно сделать, используя короткий скрипт, который копирует ядро ​​и initramfs в ESP и запускает efibootmgr . Этот сценарий можно поместить в /etc/kernel/postinst.d для запуска автоматически после обновления ядра.

Примечание. Менеджер загрузки, такой как GRUB, не нужен, UEFI сам действует как менеджер загрузки.

Это все, что вам нужно со стороны Linux, я не знаю, что нужно для добавления Windows.

Убедитесь, что UEFI не собирается блокировать Linux из вашей машины; возможно, в этом случае будет установлен этот параметр в BIOS. Проверьте и убедитесь в этом. Я бы дважды проверял этот вопрос с руководством и с изготовителем, если вам нужно.

Об этом шла довольно широкая дискуссия; У ZDNet было несколько статей. Вот статья от 21 сентября 2011 года и одна с 23 сентября .

Во-вторых, на основе исторических данных вы можете сначала установить Windows. Традиционно Windows просто предполагает, что это единственная ОС на машине – таким образом, она вытирает любые загрузочные данные, связанные с Linux. Это может быть иначе для UEFI, я не знаю.

Для UEFI вам необязательно использовать двойную загрузку Windows и Linux. Следуйте руководству, чтобы преобразовать UEFI в MBR-BIOS без потери данных.

Это руководство было сделано мной. Кроме того, упомянутый блог никогда не будет снят. Хотя я использовал его как 10 раз без потери данных, я бы рекомендовал вам сделать резервную копию данных перед использованием моей процедуры.

Я могу сердечно рекомендовать серию статей UEFI Род Смит . В частности, он упоминает, что «гибридный» GPT-MBR является «опасным взломом» из-за опасностей десинхронизации.

  • Самый эффективный способ развертывания ОС на нескольких компьютерах?
  • Определите, какая программа находится в моем MBR-коде
  • Как создать загрузочную флешку для «efi-shell»
  • Обновление версий ядра при загрузке из rEFInd
  • Как использовать пользовательскую подпись для безопасной загрузки (Fedora)?
  • Длительная загрузка на экран пароля для зашифрованного диска
  • Не удалось завершить работу Windows после установки GRUB
  • Создание загрузочного GPT-раздела EFI с помощью gdisk на предыдущем MBR, поврежденный GPT
  • Arch Linux не загружается в MacBook Air в режиме UEFI
  • Как загружать ядро ​​EFI с помощью QEMU (kvm)?
  • Grub - Неверный путь к файлу EFI для Windows
  • Linux и Unix - лучшая ОС в мире.