¿Cómo se carga el kernel desde la imagen .vmdk?

¿Cómo se carga el kernel desde la imagen .vmdk?

Estoy usando poky en warrior branch para generar imágenes raíz. Yocto puede generar la imagen final en varios formatos. Uno de ellos es .hddimg, que se ve así cuando se extrae:

EFI
bzImage
initrd
libcom32.c32
libutil.c32
rootfs
startup.nsh
syslinux
vesamenu.c32

Siguiendo este enlace:http://embeddedguruji.blogspot.com/2018/11/run-your-intels-yocto-hddimg-in-virtual.html, Convierto el archivo .hddimg al archivo .vmdk. Cuando uso 7zip para ver el contenido del archivo .vmdk, es igual que arriba. Tenía curiosidad por saber cómo funciona el proceso de arranque y cómo se carga el kernel. Y cómo puedo cambiar los kernels predeterminados cuando hay varios kernels instalados en rootfs.

Baso esta pregunta en mi pregunta anterior sin respuesta:https://stackoverflow.com/questions/57611557/switch-kernel-in-yocto-root-image

Respuesta1

Tanto .hddimg como .vmdk son imágenes de disco, por lo que arrancanexactamente como los discos duros (físicos) normales.Es decir, no sólo contienen un sistema de archivos raíz sino todo un diseño de disco particionado.

(Tenga en cuenta que 7zip solo mostrará elprimeropartición que reconoce.)

Al igual que los discos reales, estas imágenes tienen un sector de arranque (para BIOS) y/o una partición del sistema EFI (para UEFI), y hay un gestor de arranque instalado (en su caso, ese essyslinux). El software de la máquina virtual emula un BIOS completo, que inicia syslinux desde el disco virtual, que luego lee su menú de configuración (syslinux.cfg) e inicia el kernel configurado en ese archivo.

información relacionada