Включение автоматической загрузки GRUB из ядра
-
03-07-2019 - |
Вопрос
Я разрабатываю ядро для операционной системы.Чтобы выполнить это, я решил использовать GRUB.В настоящее время у меня есть скрипт, прикрепленный к GRUB's stage1
, stage2
, файл pad и само ядро вместе взятые, что делает его загрузочным.Единственная проблема заключается в том, что когда я запускаю его, вы должны сообщить GRUB, где находится ядро и насколько оно большое, вручную, а затем загрузить его, вот так:
kernel 200+KERNELSIZE boot
KERNELSIZE
это размер ядра в блоках.Для начала это нормально, но возможно ли получить эти значения в двоичном файле и заставить GRUB автоматически загружать ядро?Есть какие-нибудь предложения о том, как этого добиться?
Решение
Я бы предположил, что вы могли бы просто создать свой собственный файл menu.lst conf, загрузить его в оболочку grub с помощью "configfile / path/to/menu.lst", а затем выполнить "setup (hd0)", заменяя значения по мере необходимости.Хотя я просто предполагаю..неизвестно, в чем заключаются различия в вашей пользовательской настройке.
Другие советы
http://www.gnu.org/software/grub/manual/grub.html#Embedded-data дает некоторую общую информацию о хранении списка блоков в GRUB.Самое главное, в нем упоминается, что списки блоков хранятся в четко определенных местах на этапе 2.
Вероятно, вы захотите взглянуть на исходный код GRUB, чтобы определить точное местоположение.