我正在玩mkisofs,dd和汇编。我创建了简单的bootloader:
BITS 16
;-------------------
;SIMPLE BOOTLOADER
;-------------------
start:
mov ax, 0x07C0
mov ds, ax
mov si, welcmsg
call printstr
mov ah, 0Eh
mov al, 65
int 10h
cli;
hlt;
printstr:
pusha
mov ah, 0Eh
.loop:
mov al, byte [ds:si]
cmp al, 0
jz .end
int 10h
inc si
jmp .loop
.end:
popa
ret
;-------------------
;DATA
;-------------------
welcmsg: db "Welcome!", 0x0D, 0x0A, 0
;-------------------
;FILL
;-------------------
times 510-($-$$) db 0
dw 0xAA55
我使用NASM在linux上编译了它。编译成功后,我复制了512字节.bin文件的内容,并用Okteta十六进制编辑器将其粘贴到空的.img文件中。
dd if=/dev/zero of=boot.img bs=512 count=2880
然后我使用mkisofs创建.iso文件。
mkisofs -U -D -floppy-boot -b boot.img -c boot.catalog -hide boot.img -hide boot.catalog -V "test" -iso-level 3 -L -o test.iso content
我已将此.iso映像添加到虚拟机设置中,我启动了它。 面对我的问题是VirtualBox错误信息:
FATAL: No bootable medium found.
有人知道我做错了什么,我怎么能让它发挥作用?请帮忙。
答案 0 :(得分:1)
以下是其他正在SO开发启动加载程序的人。您可能想查看OSDev以获取更多想法,并与从头开始构建它的社区联系起来。至于为什么你的努力没有启动,我想知道你需要查看Using Virtualbox as a bootloader testing environment。正如我之前所说,你已经做了一个很好的开始,一切顺利。干杯!