我想知道 MBR 是否可以从 USB 端口读取数据?
我希望它根据从 USB 端口读取的值来加载 Windows 或 linux
您应该从/自定义 GRUB 开始。就目前而言,在 MBR 中您几乎没有设备支持,因此您要么必须编写自己的代码,要么尝试构建 BIOS 的 USB 设备支持(如果它作为 API 公开的话)。
GRUB 具有内置的 OHCI 和 UHCI USB 驱动程序http://grub.enbug.org/USBSupport。我怀疑它会完全按照您想要的方式开箱即用,但定制它会更容易,而不是从头开始。
您是否可以将其放入 512 字节的 MBR 本身是非常值得怀疑的,但没有技术原因不能以其他方式完成 - 您只需要引导一个可以读取值的迷你操作系统,然后充当链loader 来启动正确操作系统的引导加载程序:GRUB 和 Vista 引导加载程序都能够链式加载到另一个,所以你没有理由不能这样做。
话虽如此,编写所说的迷你操作系统很可能证明比它的价值更麻烦。自定义像 GRUB 这样的现有引导加载程序可能是您最好的选择。