如何使用BCDEdit來雙引導Windows安裝?
设置不同安装的 Windows 之间的双启动所需的 bcdedit
命令是什么?5
背景
我最近将 Windows 8 安装到一个单独的硬盘上1。现在安装了 Windows 8,我想双启动回到 Windows 7。
我有两个硬盘。
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-US
inherit {globalsettings}
integrityservices Enable
default {current}
resumeobject {ce153eb7-3786-11e2-87c0-e740e123299f}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.exe
description Windows 8
locale en-US
inherit {bootloadersettings}
recoverysequence {ce153eb9-3786-11e2-87c0-e740e123299f}
integrityservices Enable
recoveryenabled Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {ce153eb7-3786-11e2-87c0-e740e123299f}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Auto
所以你可以看到我有两个硬盘,其中有Windows的分区。
- Windows 7 。
\PhysicalDisk0
(分区 03) - Windows 8 。
\PhysicalDisk2
(分区1)
我想弄明白的是,如何使用bcdedit
来指示启动Windows的东西,外面还有另一个Windows安装。
现在运行bcdedit
,它显示当前配置。
>bcdedit /create /d "The old Windows 7" /application osloader
我找不到任何关于Windows Boot Manager和Windows Boot Loader的区别的[文档](http://technet.microsoft.com/en-us/library/cc709667(v=ws.10).aspx)。
文档
有一些关于Bcdedit
的文档。
- Technet: Command Line Reference - Bcdedit
[ Technet:
[Technet: Command Line Reference - BCDedit ](http://technet.microsoft.com/en-us/library/cc709667(v=ws.10)
Technet: Windows Automated Installation Kit - BCDEdit Command Line Options.aspx)
Whitepaper - BCDEdit Commands for Boot Environment (Word Document)
但他们没有解释如何编辑二进制引导配置数据。
如果要我猜的话,我会认为Windows Boot Manager指示BIOS应该运行什么_程序。该程序会给用户提供一组启动选择。那就剩下Windows Boot Loader是一个特定的启动选择,它代表了Windows的特定安装。
如果是这样,我需要创建一个新的Windows Boot Loader条目。
这意味着我可能需要使用 /create
参数:
/create
创建一个新的引导条目。
bcdedit [/ store filename] / create [id] / d description [/ application apptype | / inherit [apptype] | / inherit DEVICE | / device ] 。
所以我假设语法为:
Apptype Description
BOOTSECTOR The boot sector application
OSLOADER The Windows boot loader
RESUME A resume application
其中application
可以是以下类型之一。
>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"
不幸的是,关于osloader
的唯一文档是“Windows引导加载器”。我不明白这如何区分一个硬盘上的Windows 8和另一个硬盘上的Windows 7。
当/create
一个启动加载器时,另一个可能的参数是
不幸的是,/device
的文档缺失。
/device
可选。如果id没有被设置为一个众所周知的标识符,那么这个选项就会被用来指定新的引导条目作为一个额外的设备选项条目。
由于我没有将 id
设置为众所周知的标识符,我必须将 /device 设置为 “用于指定新的启动项作为额外设备选项项的选项”。我知道所有这些单词,它们都是英文的。但我不知道它在说什么;这些词的顺序似乎是无意义的。
所以我有点受阻。我不想像 微软的 Dan Stolts,他为了使用 BCDEdit 而毁掉了自己的硬盘 。
当我用BCDEdit玩弄我的机器时,我没有找到特别有用的内容。如果这个帖子能有更多的细节,特别是在/set命令OSDevice等方面,那就可以了。所以,一旦我把我的机器修好了,我就把解决方法记录下来,信息是 这里…。
我的意思是,如果一个微软的家伙连如何使用BCDEdit编辑他的BCD都搞不清楚,那我还有什么机会?
Bonus Reading
- BCDEdit命令行选项
- Bcdedit
- Server 2008 R2 or Windows 7 System Will NOT Boot After Making Changes To Boot Manager Using BCDEdit
- Visual BCD Editor4
- [Windows 7和Windows 8 RTM双启动设置]0x3&
脚注
- 1 由于Windows 8安装程序会破坏我的Windows 7安装。我决定在安装过程中拔掉我的“主”硬盘的插头。这是一个长篇大论的解释,为什么Windows 8安装程序没有检测到现有的Windows 7安装。通常情况下,安装程序会自动创建双启动所需的条目。并不是说我问这个问题的原因很重要。
- 2 真的有三个硬盘,但第三个只是大容量存储。第三块硬盘的存在与问题无关。我只是为了防止有人想知道为什么截图有3个硬盘,而我只提到了两个。
- 3 我随意地从“0”开始给分区编号;并不是暗示分区从0开始编号。我之所以提到分区,是因为我不明白,如果不知道Windows的安装在哪个分区和哪个文件夹里,任何一个启动加载器都无法完成它的工作。
- 4 我问的是BCDEdit。我试过Visual BCD Editor。它似乎是一个视觉BCD编辑器。這也就是說,它是一個 GUI,但是 仍然使用和 BCDEdit 相同的术语,并且需要相同的知识,而 BCD 没有记录。
- 5 為了簡單起見,我們假設所有我想要雙開機的 Windows 都是 Windows Vista 或更高版本,使它們都能與 BCDEdit 和二進位開機載入器相容。另一种选择则需要深入研究旧的
ntloader
的复杂性。我也不是在问双启动到Linux;或者如何启动到虚拟硬盘(vhd)镜像。只是在同一台机器的现有硬盘上安装现代版本的Windows。