【问题标题】:USB programming as MBR ProgramUSB 编程作为 MBR 程序
【发布时间】:2011-03-18 00:11:41
【问题描述】:

我想知道 MBR 是否可以从 USB 端口读取数据?

我希望它根据从 USB 端口读取的值来加载 windows 或 linux

【问题讨论】:

    标签: mbr


    【解决方案1】:

    您应该从/自定义 GRUB 开始。就目前而言,在 MBR 中,您几乎没有设备支持,因此您要么必须编写自己的代码,要么尝试构建 BIOS 的 USB 设备支持(如果它作为 API 公开的话)。

    GRUB 具有内置的 OHCI 和 UHCI USB 驱动程序http://grub.enbug.org/USBSupport。我怀疑它是否会完全按照您的要求开箱即用,但定制它会比从头开始更容易。

    【讨论】:

    • 我如何知道我的 bios 是否有它的 USB 设备支持作为 API 公开?我的主板是支持 USB3 的 Asus M4A88TD-V Evo。这是基于 American Megatrends Inc 的主板,因为当我禁用华硕的自定义徽标时,我得到了 AMI 徽标。在 bios 中的 usb 部分中,我找到了以下行 Module version@ ​​2.24.5-13.4。虽然我自己的开发更难,但它更原生,并且占用空间(就使用的部件而言,I.E no grub)更小。另外,我确实喜欢挑战。
    • 是的,我的意思是您可能必须编写 grub 代码来连接您打算使用的任何 USB 设备,并将其输入启动逻辑。 USB BIOS API:我从来没有听说过,AFAIK 没有标准的 API,但是如果 BIOS 包含用于键盘等的 USB 代码,我会感到惊讶,而且即使以无证的方式也没有以某种方式暴露出来。如果不在 Google 上,我不知道从哪里开始寻找。
    【解决方案2】:

    您是否可以将其放入 512 字节的 MBR 本身是非常值得怀疑的,但没有技术原因不能以其他方式完成 - 您只需要引导一个可以读取该值的 mini-OS,然后采取行动作为链式加载器来启动正确操作系统的引导加载器:GRUB 和 Vista 引导加载器都能够链式加载到另一个,所以你没有理由不能这样做。

    话虽如此,编写所说的迷你操作系统很可能证明是麻烦多于其价值。自定义现有的引导加载程序(如 GRUB)可能是您最好的选择。

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多