我在汇编中创建了一个非常小的引导加载程序,并且想在我的物理硬件上对其进行测试,因此我使用 USB 驱动器来执行此操作。我已将程序集转换为机器代码和 .bin 文件,我在我的 bin 文件上运行了 file 命令,得到:
DOS/MBR 引导扇区
所以我知道它是可启动的,而且我也能够在模拟器中正确运行它。
我在谷歌上搜索这个问题超过 4 小时,我找不到任何有效的东西,很多人说要使用 Rufus,但我在 Rufus 3.3 中没有看到任何将 bin 文件闪存到 USB 驱动器的设置。
我有一台 Unix 和 Windows 机器,所以任何方法都可以。
我一直未能弄清楚如何将 .bin 引导加载程序刻录到 USB 并从中引导,如果有人知道该怎么做,那就太好了。
作为参考,这里是代码:
BITS 16
start:
mov ax, 07C0h
add ax, 288
mov ss, ax
mov sp, 4096
mov ax, 07C0h
mov ds, ax
mov si, helloText
call printStr
jmp $
helloText db "Hello, World!", 0
printStr:
mov ah, 0Eh
.repeat:
lodsb
cmp al, 0
je .done
int 10h
jmp .repeat
.done:
ret
TIMES 510 - ($ - $$) db 0
dw 0xAA55
我使用以下 NASM 命令组装了代码:
nasm -f bin -o bootLoad.bin bootLoad.asm
从这里我需要将 bin 刻录到 USB 驱动器并从它启动。有没有人有任何工具或有关如何实际执行此操作的信息?
先感谢您!
在 linux 下,通常会使用 dd 将图像“刻录”到驱动器。尝试:
sudo dd if=/path/to/bootloader.bin of=/path/to/drive bs=1M
'if' 是输入文件的缩写,'of' 是输出文件的缩写,通常指向 /dev/sda。如果你不知道你驱动的是什么,首先输入'sudo fdisk -l'。
@murderbaer 有正确的答案。