Немного про то, как формируется grub64.efi, можно понять из моей древней статьи. Про встроенный конфиг там есть хороший комментарий. Загрузчик действительно формируется grub-install динамически и включает в себя модули, которые ему нужны для того, чтобы найти ядро и собственные модули в дебрях LVM, RAID и прочих файловых систем. Причем, когда вы находитесь в целевой системе, grub-install сам выберет модули, необходимые для загрузки модулей grub и ядра, и не включит лишние модули. Это сломает загрузку если вы, например, перенесете root-раздел из раздела диска на LVM - модуля в GRUB не будет и свои модули и ядро он не найдет. Часто, для установки загрузчика удобно загрузится в целевую систему с другого носителя с, например, SuperGRUB, примонтировать нужные /boot и /boot/efi и выполнить grub-install - он пересоберет GRUB с нужными модулями и станет возможна загрузка с основного диска. Этот же способ помогает перейти с legacy на UEFI.
Сообщения про флопы это, вроде, фича OVMF. После ковыряния в BIOS виртуалки на EFI разделе появится файлик NvVars, в котором хранится настроеная последовательность загрузки. Пока его нет, OVMF грузится в захардкоженой последовательности — первые два флоповода и потом существующие диски. При этом параметр libvirt <boot dev='hd'/> в OVMF не работает. Сообщения про первые два флопа появляются и у меня, хотя рут никуда не съезжает и флопов в системе нет.
Не понятно, откуда у вас еще пара винтов взялась. Можно конфиг libvirt посмотреть?
Это отличный вариант, но мне не подошел. В Ubuntu, например, образы ядер содержат в своем названии версию, а символьная ссылка со стандартным именем на актуальную версию делается в корне файловой системы, т. е. вне /boot. В связи с этим, после обновления, нужно будет что-то править на гипервизоре, например, изменять имя файла ядра в конфиге гостя. Ну и параметры ядра задаются вне гостя, что тоже, иногда, не удобно.
Я использую этот метод для того, чтобы не вытаскивать руками обновленные версии ядра из гостей на гипервизор и не управлять параметрами загрузки ядер самому, а доверять это конфигам гостевых систем.
Немного про то, как формируется grub64.efi, можно понять из моей древней статьи. Про встроенный конфиг там есть хороший комментарий.
Загрузчик действительно формируется grub-install динамически и включает в себя модули, которые ему нужны для того, чтобы найти ядро и собственные модули в дебрях LVM, RAID и прочих файловых систем. Причем, когда вы находитесь в целевой системе, grub-install сам выберет модули, необходимые для загрузки модулей grub и ядра, и не включит лишние модули. Это сломает загрузку если вы, например, перенесете root-раздел из раздела диска на LVM - модуля в GRUB не будет и свои модули и ядро он не найдет.
Часто, для установки загрузчика удобно загрузится в целевую систему с другого носителя с, например, SuperGRUB, примонтировать нужные /boot и /boot/efi и выполнить grub-install - он пересоберет GRUB с нужными модулями и станет возможна загрузка с основного диска. Этот же способ помогает перейти с legacy на UEFI.
УВАЖАЕМЫЕ СТРАХОВАТЕЛИ! ДАННОЕ ПИСЬМО ИМЕЕТ ОСОБУЮ ВАЖНОСТЬ!
Не понятно, откуда у вас еще пара винтов взялась. Можно конфиг libvirt посмотреть?
С меткой диска решение очень удачное, спасибо.