Включение GRUB для автоматической загрузки из ядра

Я разрабатываю ядро ​​для операционной системы. Чтобы выполнить его, я решил использовать GRUB. В настоящее время у меня есть script, прикрепленный к GRUB stage1, stage2, файл пэда и сам ядро, что делает его загрузочным. Единственная проблема заключается в том, что когда я запускаю ее, вы должны сообщить GRUB, где находится ядро, и насколько он велик, а затем загружать его, например:

kernel 200+KERNELSIZE
boot

KERNELSIZE - размер ядра в блоках. Это нормально и хорошо для начала, но возможно ли получить эти значения в двоичном формате и заставить GRUB автоматически загружать ядро? Любые предложения о том, как это сделать?

Ответы

Ответ 1

Я бы предположил, что вы можете просто создать свой собственный файл conf.list conf, загрузите его в оболочку grub с помощью "configfile/path/to/menu.lst", а затем выполните "setup (hd0)", заменив значения по мере необходимости. Я просто догадываюсь, но не знаю, какие отличия от вашей пользовательской настройки.

Ответ 2

http://www.gnu.org/software/grub/manual/grub.html#Embedded-data дает некоторую общую информацию о хранении списка блоков в GRUB. Самое главное, он упоминает, что списки блоков хранятся в четко определенных местах на этапе2.

Вы, вероятно, захотите посмотреть исходный код GRUB, чтобы выяснить точное местоположение.