如何从 USB (ARM x86) 引导 512 字节引导加载程序

How To Boot 512byte bootloader from USB (ARMx86)

这是一个简单的非 OS 特定的汇编程序,旨在与我的 PC 架构一起使用。由 NASM 的 Linux 版本编译。

我试图将它放入 USB,当我在 BIOS 中选择从 USB 启动时,它确实尝试从 USB 启动。和沉默。硬件保持 运行 但我的程序应该将字符打印到屏幕上。只是黑屏,左上角有一个闪烁的白色光标(我认为它属于BIOS)。

也许 BIOS 没有将我的 "file" 算作引导扇区。

U盘内容如下(Win7截图,非英文,但你可以很容易理解是什么):

属性

我需要一些东西来使 USB 驱动器可启动吗?我需要像主引导记录一样对其进行分区吗?

几年前,我成功地创建了一个可启动的 shell 模拟器,它应该从 USB 驱动器启动,我也被卡住了很多次来解决这个问题,但为了让它发生,你需要将作为引导程序的 MBR 放在驱动器的第一个扇区,具有特殊的引导签名,它必须有 512 字节长,从那里你可以引导驱动器上的任何其他扇区,其中将包含你的其余可引导程序程式。因此请确保您的引导加载程序代码正确并且位于驱动器的第一个扇区。

http://wiki.osdev.org/Bootloader

http://forum.osdev.org/viewtopic.php?f=1&t=20561

还要确保你的系统支持 USB 启动功能,你可以很容易地从 BIOS 启动设置中找出它。