显然,使用 可以非常轻松地为 Windows 7/8(用于双启动)创建新的启动项bcdboot
。例如(参见这里):
bcdboot D:\windows
现在,通过阅读论坛,我发现人们使用bcdedit
更复杂的启动,比如从 VHD 启动等。
bcdedit
因此,我假设for中有一个等效命令bcdboot D:\windows
,但我不确定是哪一个。了解bcdboot
for 中的内容bcdedit
肯定有助于我bcdedit
更好地理解。
答案1
已经过去好几年了,即使现在有了 Windows 10,BCDEDIT 程序仍然像以前一样神秘。一年多以前,我不得不艰难地学习 BCDEDIT,我完全不知道 BCDEDIT 或 BCDBOOT 应该如何工作。回答你的问题,如果 BCDBOOT 可用于创建模板以在 BCD 中创建可启动的 Windows 条目,那么 BCDEDIT 可能可以用更多的命令和输入来做同样的事情,如下所示:-
C:\>bcdedit /create /application OSLOADER The entry {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} was successfully created.
如果您检查 BCD 内部以查找已创建的特定 {ID},那么您将看到以下内容:-
C:\>bcdedit /enum {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} Windows Boot Loader identifier {43083ab0-6bcd-11e8-a9c7-9cb70d586adc}
您的想法是正确的,BCD 中似乎缺少大量有关正确 Windows 引导加载程序条目的信息。完整条目应类似于首次安装 Windows 时创建的条目,如下所示:-
C:\>bcdedit /enum {current} Windows Boot Loader identifier {current} device boot path \WINDOWS\system32\winload.exe description Windows 10 Pro 64-bit locale en-US inherit {bootloadersettings} recoverysequence {d3150567-fac9-11e7-a6a0-d6a823273fc8} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice boot systemroot \WINDOWS resumeobject {fbe9c9e8-fa42-11e7-a9a1-9cb70d586adc} nx OptIn bootmenupolicy Legacy
因此,在这种情况下,您现在需要输入大量内容,因为我认为至少您的 Windows 引导加载程序条目必须具有“标识符”、“设备”、“路径”、“描述”、“操作系统设备”和“系统根”。因此,您现在必须输入以下内容:-
C:\>bcdedit /set {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} device <whichever partition this particular Windows installation is located> C:\>bcdedit /set {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} path <wherever the WINLOAD.EXE file for this particular Windows installation is located in> C:\>bcdedit /set {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} description "<give a name here, if you use spaces then the entire phrase must be enclosed in quotes>" C:\>bcdedit /set {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} osdevice <whichever partition this particular Windows installation is located> C:\>bcdedit /set {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} systemroot <whichever folder the particular Windows installation is located in>
最后,您需要修改 {bootmgr} 条目以允许选择操作系统,方法是输入以下命令:-
C:\>bcdedit /set {bootmgr} timeout 5 C:\>bcdedit /set {bootmgr} displaybootmenu Yes C:\>bcdedit /displayorder {43083ab0-6bcd-11e8-a9c7-9cb70d586adc} /addlast
更多信息请点击这里:-
答案2
扩展我在评论中所说的内容,bcdboot
和bcdedit
是略有不同的工具。它们的用途不同,并且由于它们仅依赖于存储在 BCD(引导配置数据)中的内容,因此它们是独立的。
bcdboot
可以最好地描述为“引导加载程序安装程序”。它可以用来设置引导加载程序为了现存的Windows 分区(无论是要安装、从 VHD 运行还是已安装)。
这是通过将/Windows
目录中存在的某些文件复制到特定位置并更新主引导记录以使其指向引导加载程序来完成的。
bcdedit
是一个更复杂的工具,用于编辑 BCD 信息。可以将其视为“编辑器”。互联网上许多人使用它而不是 bcdboot 的可能原因之一是大多数双启动或多启动系统都不是线性的,并且可能存在通用工具bcdboot
未涵盖的几种不同场景。
一个很好的例子是双启动 Windows XP 和 7。由于 XP 没有 BCD 文件,因此bcdboot
无法在其上运行。它也可能不会被最新系统的开机引导程序识别。
bcdedit
是一个相当繁琐的工具,所以有些人制作了一些工具来编辑 Windows 中的 BCD 数据。其中一个是易BCD,它使您能够手动查看和编辑 BCD 配置并轻松添加新分区。到目前为止,免费版本已经可以很好地满足大多数用户的需求。
他们还制作了教程关于如何从 Windows 安装磁盘恢复基于 BCD 的引导加载程序,这也是我提到该产品的原因之一。如果您阅读它,就会发现有一种方法(核大屠杀)可用于bcdedit
恢复引导加载程序。bcdedit
只需将正确的条目写入引导加载程序,这样您就可以真正启动到您的系统中。
答案3
谢谢@Turkey。我试着跟着做,搜索了一下,得到了所需的全部信息,并成功创建了一个新的启动项。
bcdedit /create /application osloader
我得到的 ID 是 {a93a2702-2134-11ed-8dca-60f262a3ce32} 我假设我将使用与我的正常 Windows 条目相同的条目
这对我有用
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} device partition=C:
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} path \Windows\system32\winload.efi
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} description "Windows 10 but self-made"
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} osdevice partition=C:
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} systemroot \Windows
bcdedit /set {a93a2702-2134-11ed-8dca-60f262a3ce32} detecthal yes
bcdedit /displayorder {a93a2702-2134-11ed-8dca-60f262a3ce32} /addlast
答案4
BCDedit 是一个比 CMD 中的 bcdboot 更强大的程序。您只应在紧急情况下使用 BCDedit,即在安装另一个 windows2(反之亦然)后 windows1 无法启动,因为它对您的计算机启动系统的作用比 BCDboot 命令大得多。尽管如果您要安装 windows 8 和任何 windows(以任何顺序,但最好先安装 windows 8,然后再安装您想要的其他 windows),但如果您的 wwindows 8 设置为默认操作系统以启动,直到您做出选择,然后 windows 8 会提供一个菜单来启动您硬盘上存在的其他 windows(可以超过 1 个)。因此,您在使用两个窗口双重启动 PC 时不会遇到任何问题。