Como o kernel é carregado a partir da imagem .vmdk?

Como o kernel é carregado a partir da imagem .vmdk?

Estou usando poky no ramo guerreiro para gerar imagens raiz. Yocto pode gerar a imagem final em vários formatos. Um deles é .hddimg, que fica assim quando extraído:

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

Seguindo este link:http://embeddedguruji.blogspot.com/2018/11/run-your-intels-yocto-hddimg-in-virtual.html, eu converto o arquivo .hddimg em arquivo .vmdk. Quando uso o 7zip para visualizar o conteúdo do arquivo .vmdk, é igual ao anterior. Fiquei curioso para saber como funciona o processo de inicialização e como o kernel é carregado. E como posso mudar os kernels padrão quando vários kernels estão instalados no rootfs.

Baseio esta pergunta na minha pergunta anterior sem resposta:https://stackoverflow.com/questions/57611557/switch-kernel-in-yocto-root-image

Responder1

Tanto .hddimg quanto .vmdk são imagens de disco, então inicializamexatamente como HDDs comuns (físicos).Ou seja, eles não contêm apenas um sistema de arquivos raiz, mas todo um layout de disco particionado.

(Observe que o 7zip mostrará apenas oprimeiropartição que ele reconhece.)

Como discos reais, essas imagens possuem um setor de boot (para BIOS) e/ou uma partição de sistema EFI (para UEFI), e há um bootloader instalado (no seu caso, ésyslinux). O software da máquina virtual emula um BIOS completo, que inicia o syslinux a partir do disco virtual, que então lê a configuração do menu (syslinux.cfg) e inicia o kernel configurado nesse arquivo.

informação relacionada