MBRがUSBポートからデータを読み取ることができるかどうか疑問に思っていましたか?
USBポートから読み取った値に応じて、WindowsまたはLinuxをロードしたい
GRUB から始めて / GRUB をカスタマイズする必要があります。現状では、MBR ではデバイス サポートがほとんどないため、独自にコーディングするか、API として公開されている場合は BIOS の USB デバイス サポートに基づいて構築する必要があります。
GRUB には組み込みの OHCI および UHCI USB ドライバーhttp://grub.enbug.org/USBSupportがあります。すぐに使用できるとは思えませんが、ゼロから始めるよりもカスタマイズする方が簡単です。
それを 512 バイトの MBR 自体に収めることができるかどうかは非常に疑わしいですが、そうでなければできないという技術的な理由はありません。値を読み取ることができるミニ OS をブートストラップし、チェーンとして機能する必要があるだけです。ローダーを使用して、適切な OS のブート ローダーを開始します。GRUB と Vista のブートローダーの両方が、他方へのチェーン ロードが可能であるため、同じことができない理由はありません。
そうは言っても、書いたミニOSは、価値があるよりも多くの問題であることが非常によく証明される可能性があります. GRUB のような既存のブートローダーをカスタマイズするのがおそらく最善の策です。