我有 2 个旧式 MBR 分区(非 GPT、非 EFI):
- 一个“活动”分区,包含
Windows 7 OS
Windowsbootmgr
启动管理器及其 BCD。 - 第二个分区包含一个奇特的非 Windows 操作系统,其内部有自己的引导加载程序代码分割引导记录(PBR/VBR)-第二个分区的第一个扇区(512 字节)。
我可以通过以下步骤创建启动菜单项,通过 Windows7 的启动管理器 (bootmgr) 成功启动 Exotic OS:
Copy the first sector of the Exotic OS' partition into the file named `exotic.bin` in the Windows7's filesystem.
Execute:
bcdedit /create /d ExoticOS /application bootsector
bcdedit /set {**guid**} device partition=c:
bcdedit /set {**guid**} path \exotic.bin
然而,这种启动方法并不完善,因为 Exotic OS 经常更新其自己的启动扇区(在其自己分区的第一个扇区中),然后该文件exotic.bin
就会变得过时。
我试过:
bcdedit /create /d ExoticOS /application bootsector
bcdedit /set {**guid**} device partition=\Device\HarddiskVolume2
...这些命令已成功执行,但我不知道如何指定第一个扇区号在此分区上。
问题:如何指示 Windows 启动管理器 (bootmgr) 加载并执行 Exotic OS 的启动扇区,直接地来自第二个分区的第一个扇区 - 而不是来自过时的副本exotic.bin
?
答案1
在命令提示符下执行以下命令Windows 7
:
bcdedit /create /d ExoticOS /application bootsector
bcdedit /set {**guid**} device partition=\Device\HarddiskVolume2
bcdedit /set {**guid**} path :512
bcdedit /displayorder {**guid**} /addlast
其中表示命令返回的花括号中的{* * guid * *}
32 个字符,是安装 的分区的标识符。请参阅GUID
bcdedit /create ...
\Device\HarddiskVolume2
Exotic OS
这个答案了解如何找出此分区标识符的指南。
该字符串:512
表示“加载指定分区的前 512 个字节...并执行它”。
为了实现此功能,您必须使用bootmgr
可用bootmgr
的这里。