Как загружается ядро ​​из образа .vmdk?

Как загружается ядро ​​из образа .vmdk?

Я использую poky в ветке warrior для генерации корневых образов. Yocto может генерировать конечный образ в различных форматах. Один из них — .hddimg, который выглядит так после извлечения:

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

Перейдя по этой ссылке:http://embeddedguruji.blogspot.com/2018/11/run-your-intels-yocto-hddimg-in-virtual.html, я конвертирую файл .hddimg в файл .vmdk. Когда я использую 7zip для просмотра содержимого файла .vmdk, оно такое же, как и выше. Мне было интересно узнать, как работает процесс загрузки и как загружается ядро. И как я могу переключать ядра по умолчанию, когда в rootfs установлено несколько ядер.

Я основываю этот вопрос на своем предыдущем вопросе, на который не было ответа:https://stackoverflow.com/questions/57611557/switch-kernel-in-yocto-root-image

решение1

Оба файла .hddimg и .vmdk являются образами дисков, поэтому они загружаютсяточно так же, как обычные (физические) жесткие диски.То есть они содержат не просто корневую файловую систему, а целую структуру разделов диска.

(Обратите внимание, что 7zip покажет толькопервыйраздел, который он распознает.)

Как и настоящие диски, эти образы имеют загрузочный сектор (для BIOS) и/или системный раздел EFI (для UEFI), а также установленный загрузчик (в вашем случае этосислинукс). Программное обеспечение виртуальной машины эмулирует полноценный BIOS, который запускает syslinux с виртуального диска, который затем считывает его конфигурацию меню (syslinux.cfg) и запускает ядро, настроенное в этом файле.

Связанный контент