我试图通过一些教程来编写操作系统,并且可以在Qemu虚拟机上运行该程序。
但是,当我尝试在真实计算机上运行时,由于计算机不认为操作系统在磁盘上,因此计算机将永远无法成功启动。
我执行了以下步骤:1。 hello.asm
mov ah, 0x0e
mov al, 'A'
int 0x10
jmp $
times 510 - ($ - $$) db 0
dw 0xaa55
编译程序集文件
nasm -f bin hello.asm -o hello.bin
我可以通过运行
来启动bin文件。 qemu-system-x86_64 hello.bin
,但是如果我用dd if=hello.bin of=/dev/sdb
将文件刻录到USB磁盘(USB磁盘可能刻录其他系统并正常运行),它将无法在真实计算机上运行。
插入USB并选择从USB磁盘引导后。计算机只是从USB磁盘跳过我的操作系统,而从我的硬盘引导。这与USB磁盘上没有任何东西一样。
但是,如果我像qemu-system-x86_64 /dev/sdb
一样运行,则模拟器可以从USB成功启动。
我是该领域的新手。任何人都可以帮助我解决这个困扰我很长时间的问题。
非常感谢您。