1

我目前正在玩 mkisofs、dd 和程序集。我创建了简单的引导加载程序:

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.

有谁知道我做错了什么,我怎样才能让它工作?请帮忙。

4

1 回答 1

1

这是其他人致力于在SO上开发引导加载程序。您可能想查看OSDev以获得更多想法,并加入一个从头开始构建它的社区。至于为什么您的努力无法启动,我想知道您是否需要检查Using Virtualbox as a bootloader testing environment。正如我之前所说,你已经有了一个很好的开始,一切顺利。干杯!

于 2013-02-07T18:37:25.063 回答