Создание простого мультизагрузочного ядра, загруженного с помощью 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 похоже на работу ...

Ответы на вопрос(1)

Ваш ответ на вопрос