В настоящее время я работаю над системой с тройной загрузкой с Ubuntu 18.04, macOS и Windows. Стандартный загрузчик, который должна запускать прошивка (ASUS Impact VII, EFI на базе APTIO), — это Clover. Затем Clover запускает GRUB 2, загрузчик EFI от Apple или загрузчик Windows.
Проблема в том, что когда я обновляю пакет grub-efi в моей системе Ubuntu 18.04 через apt/dpkg, прошивка EFI при следующей перезагрузке продолжит загружать GRUB вместо Clover.
Я понимаю, что это происходит из-за того, что настройка GRUB изменяет переменные EFI, чтобы сделать себя загрузчиком по умолчанию. А точнее, он не проходит --no-nvram
в grub-install.
Как мне сделать пакеты GRUB EFIнетизменить переменные загрузки EFI через grub-install, чтобы Clover остался загрузчиком по умолчанию?
решение1
Отвечая на свой собственный вопрос: скрипт postinst grub-efi-amd64 имеет функцию, о которой я просил. Он перейдет --no-nvram
к двоичному файлу grub-install, когда переменная debconf grub2/update_nvram
имеет значение false.
Запустите dpkg-reconfigure grub-efi-amd64
и ответьте «Нет» на вопрос о том, следует ли автоматически сохранять записи nvram.
решение2
В grub-efi-amd64-signed есть ошибкаhttps://bugs.launchpad.net/ubuntu/+source/grub2-signed/+bug/1969845поэтому предотвратить это поведение невозможно без ручного изменения скрипта postinst grub-efi-amd64-signed.