Я могу переустановить личинку с помощью идентификатора загрузчика по умолчанию "человечность"
Но если я использую пользовательское имя как "MyUbuntu", я не могу сделать успешную установку личинки.
Тестовая установка на хорошо загружающейся Ubuntu 18.04:
1: Удалите существующую личинку:
rm -r /boot/efi/EFI/*
2: Установите новую личинку:
grub-install --target=x86_64-efi --bootloader-id=MyUbuntu /dev/sda
2: Личинка обновления:
update-grub
Система теперь загружается в консоль Grub. EFI видел новую запись загрузки в меню начальной загрузки очень хорошо.
Просто взял пик в /boot/grub/grub.cfg
, это все еще говорит: menuentry 'Ubuntu' --class ubuntu.....
После того, как я столкнулся с systemd-начальной-загрузкой как с загрузчиком, я никогда не оглядывался назад на GRUB. systemd-загрузитесь, по моему мнению, более стабильный путь и имеет намного лучший способ конфигурации. И "стабильным" я подразумеваю, что это не столь уязвимо как GRUB. GRUB настолько легко повредить. Просто добавление нового диска к Вашему полю может дать Вам большую проблему (из-за, возможно, идентичного идентификатора загрузчика, который Вы не можете изменить и т.д.),
Единственный недостаток systemd-начальной-загрузки является отсутствием поддержки безопасной начальной загрузки, но это не проблема для меня, и что Ваше ядро должно быть расположено в разделе EFI вместо корневого раздела, поскольку это имеет место с GRUP.
С systemd-начальной-загрузкой я возвратил полный контроль над процессом начальной загрузки... ДА
Это должен быть загрузчик по умолчанию вместо GRUB.
ОБНОВЛЕНИЕ, Как сделать (Debian/Ubuntu):
(Это скорее поверхностно руководство, но я надеюсь, что это запустит Вас. Другие источники: Arhlinux.., freedesktop.. и readme..)
1: Сначала скопируйте файлы ядра от Вас корневой раздел, например. /boot/vmlinuz-4.9.0-8-amd64
и /boot/initrd.img-4.9.0-8-amd64
, к Вашему разделу EFI. Можно разместить их в подпапку по Вашему выбору или даже в корневую папку, если Вам нравится.
2: Во многих руководствах говорится, что Вам нужен доступ к переменным EFI, но я не уверен, необходимо ли это. Но протестировать, если Вы имеете, работать efivar --list
.
Устанавливать при пропавших без вести: apt install efivar
3: Установите systemd-загрузчик на разделе EFI: bootctl --path=/mnt/efi install
(используйте Вас собственный путь к Вашему смонтированному разделу EFI),
4: Отредактируйте файл /mnt/efi/loader/loader.conf
к чему-то как:
timeout 5
# default 6a9857a393724b7a981ebb5b8495b9e-*
(не выяснили, как использовать автодобавленный UUID в файле, таким образом, я просто разметил его),
5: Каждый файл в /mnt/efi/loader/entries/*.conf
соответствуйте в записи загрузки в systemd-меню-начальной-загрузки. Таким образом для добавления текущей ОС делают файл, смотрящий что-то как:
title Debian 9 :-)
linux /debian9/vmlinuz-4.9.0-6-amd64
initrd /debian9/initrd.img-4.9.0-6-amd64
options root=UUID=084917b7-8be2-4e86-838d-f771a9902e08`
(Измените путь к файлам ядра, которые Вы скопировали на шаге 1. Измените UUID к UUID файловой системы Вас корневой раздел (используйте команду Linux lsblk -o name,uuid
)
Общая информация:
bootctl установит два файла загрузчика в Вашем разделе EFI:
../BOOT/BOOTX64.EFI
../systemd/systemd-bootx64.efi
Эти файлы идентичны. Ваша BIOS EFI на Вашей материнской плате moust загружает/указывает одному из них. Или сделайте это в BIOS непосредственно или используйте команду Linux efibootmgr....
Для добавления, новые записи загрузки просто создают новое /mnt/efi/loader/entries/*.conf
файлы, которые указывают на правильные файлы ядра и корневой раздел.
Файлы ядра ДОЛЖНЫ быть расположены на разделе EFI (FAT32).
Раздел EFI должен быть измерен соответственно. Я думаю, файлы ядра для, например, Debian/Ubuntu о 50-60MB. Таким образом, если у Вас есть две установки, Вам нужны 120 МБ.
Я использую простой обходной путь. После запуска grub-install
с --bootloader-id
запустите grub-install
без аргументов. Это создаст запись Ubuntu. Удалите его, если хотите, но теперь ваш идентификатор будет работать «волшебным образом». Очень раздражает, кажется, старый баг. Надеюсь, я помогу.