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

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

kernel 200+KERNELSIZE
boot

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


person Cristián Romo    schedule 19.10.2008    source источник
comment
Обычный подход состоит в том, чтобы поместить само ядро ​​в файловую систему, которую может прочитать grub; какая-то конкретная причина, по которой вы этого не делаете?   -  person Charles Duffy    schedule 19.10.2008
comment
Я согласен с Чарльзом здесь. Поместите вашу ОС в существующую файловую систему, пока у вашей ОС не появится собственная файловая система.   -  person Jason Dagit    schedule 19.10.2008
comment
Что ж, для тестирования у нас есть окончательный двоичный файл (включая GRUB) в виде файла на диске для использования в эмуляторе. Как мне создать образ диска с файловой системой?   -  person Cristián Romo    schedule 05.12.2008


Ответы (2)


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

person Community    schedule 20.10.2008
comment
Оказывается, мы использовали старый учебник, который подсказал нам, как это было. С тех пор мы последовали совету Чарльза и переместили загрузочный образ в ISO. - person Cristián Romo; 27.05.2009

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

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

person user29480    schedule 20.10.2008