поясните за grubx64.efi

Почему то был уверен, что груб при старте ищет конфиги на всех разделах начиная с текущего, каталог /boot/grub/ с конфигами и их уже отрабатывает

недавно сломал загрузку, в итоге при старте grub переходил в grub rescue
был удивлён, что груб смог вывеcти листинг только раздела esp(fat), но не смог прочесть ext4 и соответственно он не видел в упор конфиги на ext4:/boot/grub/
ls (hd0,gpt1)/boot/grub/

и только после переустановки его как grub-install –boot-directory=/boot он смог грузиться с ext4:/boot/grub/

как так то?

з.ы.
в виртуалке почему -то grub rescue удалось просмотреть ext4 , и указать грубу где конфиги лежат и загрузиться
а на реальной машине нет.. что за колдунство

в любом случае остаётся вопрос, а откуда груб знает где лежат его конфиги? путь вшивается в бинарник grubx64.efi ?
grayich
в любом случае остаётся вопрос, а откуда груб знает где лежат его конфиги?
Всё просто, grub-install - это умный скрипт, который по умолчанию размешает конфиги и модули grub в /boot/grub, по дефолту ищет /boot/efi и записывает туда grubx64.efi.
Если тебе нужны другие пути каталогов, то указываешь ключи –boot-directory= и --efi-directory=
Этот же скрипт, grub-install, запускает утилиту сборки образа загрузчика, в твоём случае grubx64.efi, где прописывается UUID раздела, где находится каталог /boot/grub
https://t.me/arch_linuxru
Все верно. Дополню.
grubx64.efi поумолчанию генерируется для текущей системы с минимумом необходимого для доступа к префиксу с остальными драйверами и утилитами. Например если префикс граба расположен на fat32 разделе, то в grubx64.efi будет добавлен только драйвер для fat32.
При смене uuid этого раздела grub теряет доступ к своим модулям и имеет доступ только к fat разделам. В таком случае можно вручную переназначить переменную prefix на на нужный раздел. Например.
prefix=(hd0,gpt5)/boot/grub
В таком случае все модули станут доступны и можно будет загрузить систему из любого раздела или передать управление нужному конфигу.
Lupus pilum mutat, non mentem.
Как уже упоминалось grub-install фактически просто скрипт. Автоматизирует сборку и установку граба "для чайников". Естественно все сценарии использования в нём предусмотреть невозможно, поэтому используются самые популярные.

Для генерации загрузочного образа на низком уровне используется grub-mkimage. С ним конечно придётся досконально разобраться, но и круг возможностей неограничен.
Lupus pilum mutat, non mentem.
jim945
grubx64.efi поумолчанию генерируется для текущей системы с минимумом необходимого для доступа к префиксу с остальными драйверами и утилитами.
значит всё таки генерится
почему не поддерживать хотя бы самые распространённые фс (fat ext ntfs) непонятно .. получается безполезный grub rescue в случае другой фс
grayich
почему не поддерживать хотя бы самые распространённые фс (fat ext ntfs) непонятно .. получается безполезный grub rescue в случае другой фс
В 1024 кбайт (2048*512) вы никак не впихнёте поддержку нескольких файловых систем. А раньше вообще было 32k (63*512)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
136K /boot/efi/EFI/arch/grubx64.efi
так что напихать ещё много можно

а почему 1024? откуда это ограничение?
grayich
а почему 1024? откуда это ограничение?
Оттуда, Сёмён Семёныч ©)

Если вы отрезаете системе EFI-раздел, откуда она должна понять-то, что и откуда грузить?
Нет EFI - вэлком в дебри совместимости и MBR.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
grayich
значит всё таки генерится
почему не поддерживать хотя бы самые
Это вопрос к разработчикам. Думаю осталось как наследие от биос версии. Там сэкономили на всем.
Никто этим вопросом не заморочился и не предложил. Ты можешь быть первым. Разработка открыта же.

alien175
В 1024 кбайт (2048*512) вы никак не впихнёте поддержку нескольких файловых систем.
И кстати максимально возможный образ граба для биос может быть около 455кб. Проверено экспериментально.

Но в ефи версии ограничений нет! Загрузочный образ может весить гигабайты.

Я себе давно собираю универсальный граб со всеми модулями внутри. Ефи версия весит что-то около 5 - 7 мегабайт.
Lupus pilum mutat, non mentem.
Такая хрень эта efi,одни костыли.Раздел Fat ей создавай,нахрена он нужен и почему именно Fat?Милое дело обычный grub,установил ,сгенерировал конфиг и загрузит все что установлено без проблем.До десятка OS у меня на жестких одновременно бывало и никаких проблем с загрузкой любой .И никаких костылей в виде отдельного ненужного раздела,да еще и FAT.Красота.
Linux Forever!
 
Зарегистрироваться или войдите чтобы оставить сообщение.