Как воссоздать раздел начальной загрузки EFI?

Вы не можете сделать этого, потому что /tmp/A/Blink на самом деле /tmp/B. Так, ls ../A/foo действительно работает.

Можно вместо этого найти полезным смочь к CD к реальному /tmp/B каталог, а не искаженный /tmp/A/Blink. Чтобы сделать это, можно использовать следующую функцию вместо cd (который можно поместить в .bashrc),

lcd() { cd $(readlink -f "$1"); }

lcd, конечно, работы для bothe нормальных и символьно связанных каталогов.
Примечание: readlink -f действия на заключительной цели ссылки (когда ссылки объединяются в гирляндную цепь)..

10
26.12.2013, 22:44
2 ответа

Я сделал это!

В первую очередь, я удалил все ненужные записи загрузки:

efibootmgr -b <entry_hex_number> -B

Затем Переформатировав раздел ESP с FAT32 файловая система.

mkfs.vfat -F32 /dev/sda1

Затем установленная личинка к /dev/sda НЕТ /dev/sda1

grub-install /dev/sda
2
27.01.2020, 20:03
  • 1
    , Вам не нужна установка личинки, которая пишет MBR. Я не знаю, необходимо ли, личинка дистрибутива делает эти две вещи вместе, но в чем Вы нуждаетесь, скопировать grubx64.efi (или shim.efi) к/boot/efi/EFI/$distro/и efibootmgr-c-l/boot/efi/EFI/$distro/grubx64.efi. –  Lingzhu Xiang 21.07.2013, 11:37
  • 2
    училась grok EFI (можно вызвать его к с - target=x86_64-efi, но efivars.ko должен быть загружен к тому времени так или иначе). –  Michael Shigorin 04.09.2013, 13:50

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

Вы упоминаете, Вы установили элементарную ОС вместо Fedora, что означает, что только необходимо загрузить одну операционную систему. Здесь я представляю способ сделать это, не используя личинку. Ядро должно быть скомпилировано с EFI_STUB, если это так, можно свериться

grep EFI_STUB /boot/config-<version>

Скопируйте ядро и initramfs к ESP (системный раздел EFI)

cp /boot/vmlinuz-<version> /boot/efi/EFI/elementary/vmlinuz-<version>.efi
cp /boot/initrd.img-<version> /boot/efi/EFI/elementary/initrd.img-<version>

Ядро регистра как параметр загрузки в UEFI

echo "root=UUID=<disk_uuid> ro quiet rootfstype=ext4 add_efi_memmap initrd=\\EFI\\elementary\\initrd.img-<version>" |
  iconv -f ascii -t ucs2 |
  efibootmgr \
    --create --gpt \
    --disk /dev/<disk> --part <partition_number> \
    --label "Elementary OS" \
    --loader "\\EFI\\elementary\\vmlinuz-<version>.efi" \
    --write-signature --append-binary-args -

--disk аргумент берет имя устройства диска, например. --disk /dev/sda, --part аргумент берет количество раздела ESP, например, 4. Можно найти число раздела ESP со следующей командой:

gdisk -l /dev/sda | awk '$6=="EF00" {print $1}'

Удостоверьтесь, чтобы Вы повторили шаги после каждого обновления ядра

Любой Вы это вручную (просто повторяют шаги выше) или Вы пишете маленький сценарий, который делает задание. Чтобы полностью автоматизировать его сценарий мог быть сцеплен в процедуру постустановки ядра в процедуру постобновления initramfs и в ядро postrm процедура (для удаления записи загрузки UEFI). На самом деле я не знаю, почему это не сделано по умолчанию в дистрибутивах, это - всего несколько строк кода.

5
27.01.2020, 20:03
  • 1
    Хм, я сделал grep EFI_STUB /boot/config-3.2.0-49-generic но ничего не получил. –  Rafael Adel 19.07.2013, 23:59
  • 2
    3.2 слишком старо (это с января 2012) поддерживать EFI_STUB. Вам нужно, по крайней мере, ядро 3.3. –  Marco 20.07.2013, 01:01
  • 3
    @RafaelAdel, Если Вы не хотите создавать свое собственное ядро, можно проверить на более новую версию ядра в репозиториях программного обеспечения. Элементарный, кажется, основан на Ubuntu, и ядро 3.5 или 3.8 должно быть доступным. Более новые, более вероятно, будут иметь включенный EFI_STUB. –  Marco 20.07.2013, 01:55
  • 4
    На самом деле существует ядро 3.10.1 теперь. Собираясь давать ему попытку. –  Rafael Adel 20.07.2013, 04:18
  • 5
    Marco, советуя тупиковому использованию является безответственным, если Вы не стремитесь направить каждого пользователя через то, что не поддерживается его распределением, и не передают его как, "делают после каждого обновления ядра". Хорошо иметь, но не столь прекрасное для автоматизации, я говорю Вам это как парень, который ответственен за поддержку UEFI в ALT Linux. –  Michael Shigorin 20.07.2013, 14:00

Теги

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