Pregunta

Estoy desarrollando un kernel para un sistema operativo. Para ejecutarlo, he decidido utilizar GRUB. Actualmente, tengo un script adjunto al stage1 , stage2 de GRUB, un archivo de almohadilla y el kernel juntos, lo que hace que sea de arranque. El único problema es que cuando lo ejecuto, debes informar a GRUB dónde está el kernel y su tamaño manualmente y luego iniciarlo, de esta forma:

kernel 200+KERNELSIZE
boot

KERNELSIZE es el tamaño del kernel en bloques. Esto está bien y está bien para empezar, pero ¿es posible obtener estos valores en el binario y hacer que GRUB arranque el kernel automáticamente? ¿Alguna sugerencia sobre cómo lograr eso?

¿Fue útil?

Solución

Me imagino que podría crear su propio archivo de configuración menu.lst, cargarlo en el shell de grub con " configfile /path/to/menu.lst" y luego haga " configuración (hd0) " reemplazar los valores según sea necesario. Sin embargo, solo estoy adivinando ... no sé cuáles son las diferencias en tu configuración personalizada.

Otros consejos

http://www.gnu.org/software/grub/manual/grub.html#Embedded -data proporciona información general sobre el almacenamiento de listas de bloqueo en GRUB. Lo más importante es que menciona que las listas de bloqueo se almacenan en ubicaciones bien definidas en la etapa 2.

Probablemente querrá mirar el código fuente de GRUB para averiguar la ubicación exacta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top