6

ここの指示に従って、単純な OS カーネルを構築しようとしています: http://mikeos.sourceforge.net/write-your-own-os.html

ただし、フロッピーから起動する代わりに、grub ベースの ISO イメージを作成し、エミュレータでマルチブート 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うまくいくようです...

4

1 に答える 1