Permitiendo que GRUB arranque automáticamente desde el kernel
-
03-07-2019 - |
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?
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.