Как загрузить загрузку ядра с помощью загрузчика EFI stub (efistub)?

У меня Ubuntu 14.04 работает в режиме UEFI как только операционная система, без двойной загрузки. Версия ядра - 3.13.0-24-generic. Существует раздел EFI. В этом случае раздел EFI не имеет значения по умолчанию /dev/sda1, а в /dev/sda3, потому что я действительно преобразовал режим BIOS в режим EFI. Я использовал пакет grub-efi-amd64, хотя на самом деле загружает меню загрузки GRUB из меню загрузки прошивки UEFI (загрузочные загрузки UEFI \EFI\ubuntu\grubx64.efi).

Я хочу пропустить этот шаг загрузки загрузки с двойной загрузкой и быстрее загружаться непосредственно из UEFI в ядро. преобразует режим BIOS в режим EFI .

Я знаю, что мне нужно скопировать ядро ​​Ubuntu в раздел EFI (возможно, переименовать) и создать запись в меню загрузки UEFI ( например, используя efibootmgr). Какие именно команды терминала необходимы для этого?

1
задан 13 April 2017 в 15:23

1 ответ

Согласно вики Debian, это можно сделать несколькими простыми шагами, которые выйдут из обновления ядра.

Примечание: это предполагает, что у вас есть раздел EFI, установленный на /boot/efi.

Создайте /etc/kernel/postinst.d/zz-update-efistub со следующим содержимым:
#!/bin/sh
cp /vmlinuz /initrd.img /boot/efi/EFI/ubuntu/
Это крючок, который будет запущен при обновлении ядра, чтобы скопировать последний образ ядра и initrd в соответствующее место. Затем сделайте его исполняемым и запустите:
sudo chmod +x /etc/kernel/postinst.d/zz-update-efistub
sudo /etc/kernel/postinst.d/zz-update-efistub
Добавьте загрузочную запись:
sudo efibootmgr -c -d /dev/sdb -p 1 -L "Ubuntu (efistub)" -l /EFI/ubuntu/vmlinuz -u "root=/dev/sdb2 rw initrd=/EFI/ubuntu/initrd.img quiet splash"
Не забудьте изменить аргументы -d и -p в зависимости от того, где находится системный раздел EFI. В моем случае это / dev / sdb1, но это, вероятно, будет отличаться для вас. Вероятно, вам также придется изменить значение root= в ядре cmdline на ваш корневой раздел. (Вы можете изменить метку на все, что хотите, изменив параметр -L.) Добавленная запись загрузки станет записью по умолчанию. И он не сломается после обновления ядра, так как крючок будет уверен, что vmlinuz и initrd.img всегда обновляются.
5
ответ дан 24 May 2018 в 04:40
  • 1
    Любой способ заставить его работать с безопасной загрузкой, так как на моем ноутбуке HP, когда я пытаюсь это сделать, он дает безопасную ошибку загрузки (конечно, я могу отключить и безопасную загрузку) – Suici Doga 3 February 2018 в 17:19
  • 2
    Похоже, вам нужно будет использовать cryptboot и некоторые инструменты для подписи ядра сначала . Это немного хлопот, особенно если вы не используете Arch (поскольку нет готового к использованию инструмента), поэтому я бы просто отключил безопасную загрузку. – Léo Lam 5 February 2018 в 15:08
  • 3
    Как насчет копирования ядра .signed? – Suici Doga 6 February 2018 в 08:17

Другие вопросы по тегам:

Похожие вопросы: