我正在开发一个在实时USB Linux上运行的系统。为了方便用户使用,我们需要开发一个Windows可执行文件。执行时,此可执行文件应在Windows上检测我们的USB记忆棒,并在下次启动时进行准备,计算机将从中启动。
我们希望使用以下行为重现此过程(https://askleo.com/how_do_i_boot_from_cddvdusb_in_windows_8/):
但我们希望自动执行此操作,而不是强迫用户重新按下shift并选择“使用设备”。
我搜索了很多,发现了BCDedit。在其中,有一个命令/ bootsequence(https://technet.microsoft.com/en-us/magazine/ff700231.aspx) 声明:
BCD Edit使用/ bootsequence命令可以轻松完成。
在提升的命令提示符下,输入以下命令: bcdedit / bootsequence {975a8204-9658-11dd-993e-9aea7965e9da}
只需将标识符(在此示例中为{975a8204-9658-11dd-993e-9aea7965e9da})更改为重新启动计算机时要引导的操作系统的标识符。
但是,我没有发现如何检测Linux上的启动分区(/ boot位于flashdrive内的ext2分区)并使用/ bootsequence从它启动。
有关如何操作的任何想法/ API或指南?
我真的很想找到并解决这个问题。
此致
答案 0 :(得分:1)
您将很难从Windows启动加载程序启动Linux。当它是BIOS选择的引导加载程序时,linux USB驱动器将最容易启动。您可以通过以编程方式修改BIOS来实现您的目标。您将面临的挑战是必须为每个BIOS制造商提供代码,而不是所有代码都支持从其菜单外部进行编辑。