Создание простого мультизагрузочного ядра, загруженного с помощью grub2
Я пытаюсь следовать инструкциям здесь, чтобы собрать простое ядро ОС:http://mikeos.sourceforge.net/write-your-own-os.html
За исключением того, что вместо загрузки с дискеты я хочу создать ISO-образ на основе grub и загрузить мультизагрузочный CD в эмуляторе. Я добавил следующее к источнику, указанному на этой странице, для заголовка мультизагрузки:
MBALIGN equ 1<<0 ; align loaded modules on page boundaries
MEMINFO equ 1<<1 ; provide memory map
FLAGS equ MBALIGN | MEMINFO ; this is the Multiboot 'flag' field
MAGIC equ 0x1BADB002 ; 'magic number' lets bootloader find the header
CHECKSUM equ -(MAGIC + FLAGS) ; checksum of above, to prove we are multiboot
section .multiboot
align 4
dd MAGIC
dd FLAGS
dd CHECKSUM
и я делаю следующее, чтобы создать изображение:
nasm -felf32 -o init.bin init.s
cp init.bin target/boot/init.bin
grub2-mkrescue -o init.iso target/
Затем я запускаю qemu для загрузки:
qemu-system-x86_64 -cdrom ./init.iso
После выбора «myos» из меню загрузки я получаю сообщение об ошибке
error: invalid arch-dependent ELF magic
Что это значит, и как я могу это исправить? Я пробовал возиться с форматом эльфов, но только-felf32
похоже на работу ...